さくらのナレッジをご覧の皆様、はじめまして!
さくらインターネットで開発を担当している伊東と申します。
今回は統合監視ツールであるZabbixをさくらのクラウド上で便利に利用してみたいと思います。
なお、Zabbixの基礎については当サイトの 統合監視ツール「Zabbix」によるサーバー監視 で紹介されていますので、割愛させて頂きます。

1 自動登録機能の紹介

1.1 自動登録とは?

Zabbixには監視対象を自動で登録する機能が備わっており、Zabbixサーバーに事前にその設定をしておくことで、手動で監視対象を登録する手間を省くことができます。
さくらのクラウド上に準備したZabbixサーバーに、新規で立ち上げたサーバーを自動で監視対象に登録したいと思います。

1.2 クラウド環境で活きる自動登録

さくらのクラウドでは、その時々の状況に合わせてサーバーのスケールイン・スケールアウトを簡単に行うことができます。ですが、サーバーが増えた際その都度Zabbixの監視対象として手動で登録するのは面倒ですよね。
そこで登場するのが自動登録です。
自動登録を使えば新規に追加したサーバーを自動で監視対象に登録することができるので、余計な手間が省けます。今回はこのような状況を想定して自動登録を利用してみたいと思います。

1.3 自動登録の仕組み

監視対象を自動登録するには、二通りの方法があります。
ネットワークディスカバリーとアクティブエージェントの二つの方式です。
最新の情報は英語となりますが、詳細については下記公式サイトからご覧いただけます。

Zabbix Documment 2.4
ネットワークディスカバリー(Network discovery
アクティブエージェント(Active agent auto-registration

ネットワークディスカバリーはZabbix Serverが指定されたIPアドレスの範囲に対して定期的にスキャンして、未登録のサーバーを発見すると、そのサーバーを自動で登録する方式となります。

<ネットワークディスカバリーのイメージ>

 

ネットワークディスカバリーが定期的なポーリングであることに対して、アクティブエージェントの場合は、Zabbix Agent起動時にZabbix Serverに対してキックを行うため、自動登録までのタイムラグがありません。

<アクティブエージェントのイメージ>

 

また、アクティブエージェントの場合、後述するホストメタデータによって登録時のZabbix Serverの挙動も細かく指定できるため何かと便利です。

ということで、今回は後者のアクティブエージェントを使って自動登録をしてみます。

2 自動登録をしてみよう

2.1 検証用環境の紹介

検証用環境は、Zabbix Server, DB Server, Web Serverの3台のサーバーがあり、それぞれのサーバーがZabbixの監視対象に登録されている状態とします。

 

その環境に対してサーバーを追加する際に、自動で Zabbix の監視対象に登録したいと思います。

2.2 Zabbix Server の設定

まずはZabbix Serverの設定をします。

[設定] から [アクション] を開き、イベントソースから自動登録を選択します。
そこで [アクションの作成] を選択します。

 

[アクション] タブでアクションの名前を設定します。

 

[アクションの実行条件] タブで、どういった条件でホストが自動登録されるかを設定します。

今回はホストメタデータにlinuxが含まれる場合、自動登録をするようにします。
ホストメタデータを細かく設定することによって、監視対象のOSの種類や、本番稼働用のサーバーなのかテスト用サーバーなのかなど、様々な条件で自動登録するかどうかを判断することができます。
ホストメタデータの設定方法は【2.3 Zabbix Agent の設定】でご紹介します。

 

[アクションの実行内容] タブで、アクションの実行条件に一致したホストが発見された時に、Zabbix Server にどのような動作をさせるかを設定します。
まずは実行内容のタイプから [ホストを追加] を選択して追加します。この設定をしないと監視対象として追加されませんのでご注意ください。

また、今回作成するアクションではlinuxがインストールされているサーバーを対象としているので、linux用のテンプレートであるTemplate OS Linux を自動的にリンクさせておきます。
実行内容のタイプから、[テンプレートとのリンクを作成] を選択して、Template OS Linuxを追加します。

 

これでZabbix Serverの設定は完了です。

2.3 Zabbix Agent の設定

次にZabbix Agentの設定をします。
zabbix_agentd.confに以下のような設定をします。

Server=127.0.0.1 #Zabbix Server の IP アドレスもしくは FQDN を設定します。
ServerActive=127.0.0.1 #Zabbix Server の IP アドレスもしくは FQDN を設定します。
HostnameItem=system.hostname #コメントアウトして有効化します。
HostMetadata=linux #前述したホストメタデータです。任意の値を設定します。

また、これらは手動で設定しても良いのですが、さくらのクラウドでは スタートアップスクリプト を利用すればZabbix Agentのインストールと上記の設定をサーバーの作成と同時に自動で行うことも可能です。

2.4 自動登録をしてみる

これでZabbix Server, Zabbix Agent共に設定は完了しました。監視対象のZabbix Agent を起動して、Zabbix Server に監視対象として追加されているか確認しましょう。
追加されていれば成功です。お疲れ様でした。

4 おわりに

いかかでしたでしょうか?
Zabbix は使いこなせば便利で強力なインフラ監視ツールです。いざ障害に直面してみないと監視はおざなりになりがちですが、備えあれば憂いなしです。 この秋、ぜひトライしてみてくださいね!