dshimizu/blog

アルファ版

Zabbix 3.2 で監視対象ホストの自動登録

はじめに

Zabbixはサーバとエージェントから構成される監視ツールです。 VMwareKVMに加えて、DockerやLXCなど様々な仮想化技術やAWS,GCP,Azureなどのクラウド環境が進歩している昨今、簡単に増やすことが可能なサーバに対して、逐一Zabbixエージェントの設定を行っていては監視設定の手間がかかって仕方ありません。

今回は監視対象のインスタンスが自動で増えたとしても、Zabbix 3.2 のZabbixサーバで常に監対象インスタンスを自動登録して監視対象にする方法を記載します。

環境

Zabbixバージョン Zabbix 3.2

Zabbixエージェントの設定

zabbix_agentd.conf に以下のパラメータを設定します。 Ansibleなどであらかじめ設定ファイルが以下のようになるようにしておくと良いと思います。

# Zabbix Server のホスト名 FQDN または IP アドレスを設定する。
Server=ZabbixServerHostName
# Zabbix Server のホスト名 FQDN または IP アドレスを設定する。
ServerActive=ZabbixServerHostName
# Zabbixサーバがホストを登録する際に、ホストの名称を設定するのに使われる。コメントアウトして有効化する。
HostnameItem=system.hostname
# ホストメタデータ。自動登録する際に使われる。任意の値を設定する。
# ここでは、“Linux”はプラットフォームを、続く文字列は推測困難な文字列を示す。
HostMetadata=Linux xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Zabbixサーバの設定

Zabbix サーバの設定をします。

画面上部メニューの[設定] タブ -> [アクション] タブを押下して画面遷移します。 その画面右上メニューのイベントソースから [自動登録] を選択し、 [アクションの作成] を押下します。

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

今回はホストメタデータ(Zabbix Agentの HostMetadata パラメータの値)に Linux と特定のランダム文字列(ここでは xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) が含まれる場合、自動登録されるようにします。 ホストメタデータの値を細かく設定することによって、監視対象のOSの種類や、本番環境のホストか開発環境のホストかなどを判別できます。

[アクションの実行内容] タブの画面では、ホストの自動登録が行われた場合に Zabbix サーバにどのような動作をさせるかを設定します。

以下では、[アクション]タブ画面で設定した条件のホストが登録された場合に所定のメールアドレス宛にメールを送信し、指定したホストグループへ所属させ、指定したテンプレートへリンクさせるようにしています。

対象サーバの Zabbix エージェントを起動して自動登録

監視対象のZabbix エージェントの起動させた後、Zabbix サーバに登録されているか、 [アクションの実行条件] で設定した通りの動作が行われてるか確認します。 いずれも正常に処理されていれば成功です。

おわりに

以上が監視対象ホストを自動登録するための一連の流れです。 AWS の AutoScaling などで自動でホストが追加された場合でも、監視も自動で行われるようになり、運用の手間が減らせると思います。

参考