AutoScalingも怖くない、Zabbix自動登録

記事タイトルとURLをコピーする

4月から劇団サーバーワークスに加わりました。伊藤です。
社内ではくりゅーと呼ばれております。 AWS環境では、わずか数クリックでサーバーができたり、AutoScalingで自動的にサーバーが増えたり、
オンプレミスの監視運用のスピードでは全く追いつけません。 そこで、今回はAuto Scalingなどで監視対象のインスタンスが自動で増えたり減ったりしても、Zabbixで常に対象インスタンスを自動登録し、監視対象にする方法をご紹介します。
自動構成ツールなどには依存しないので、どんな方法で(マネージメントコンソール、SDK、CLI、API、Elastic Beanstalk等々)構築、運用していても適用できます。

監視対象インスタンスのAgent側設定

zabbix_agentd.confにおいて、以下の点を設定します。

Server=127.0.0.1 #Zabbix-serverのIPもしくはFQDNを設定、カンマ区切りで複数を指定することが可能(agent-polling監視に対するアクセスリストとして機能します。)
ServerActive=127.0.0.1 #Zabbix-serverのIPもしくはFQDNを設定、カンマ区切りで複数を指定することが可能(agent-active監視における接続先リストとして機能します。)
#Hostname=Zabbix server #自動登録ではHostname設定は使用しないので、コメントアウトしてください。
HostnameItem=system.hostname #自動登録では、Hostnameを自動的に設定するため、HostnameItemのコメントアウトを外して有効化してください。
HostMetadata=hogehoge #自動登録の際に、テンプレート割り付けや、ホストグループを設定するためのキーワードになります。 構成に合わせて任意の文字列を設定してください。

この設定を行ったEC2インスタンスからAMIを作成し、Auto Scalingや自動デプロイで使用するAMIとして指定します。

サーバ側設定

  1. [設定]-[アクション]の画面でイベントソースに[自動登録]を選択し、[アクションの作成]をクリックします。
    screenshot_01
  2. [アクションの設定]画面の[アクション]タブでアクションの[名前]を設定します。
    screenshot_02
  3. [アクションの実行条件]タブで新規条件で[ホストメタデータ]を指定し、zabbix_agentd.confでHostMetadataに指定した文字列を設定します。
    この設定により、Agentの設定ごとに、アクションを分けることができるようになります。
    ※忘れずに[追加]メニューをクリックして、[アクションの実行条件]ボックスに登録してください。
    screenshot_03
  4. [アクションの実行内容]を設定します。
    [ホストの追加]設定を登録します。
    screenshot_05
  5. 所属させるホストグループを指定します。(指定しない場合:自動的にDiscovered hostsに登録されます。)
    screenshot_08
  6. リンクさせたいテンプレートを指定します。
    screenshot_09
  7. [アクション]タブ、[アクションの実行条件]タブ、[アクションの実行内容]タブの設定が完了したらアクション設定を[保存]します。
    screenshot_07

以上でAgent自動登録の設定は完了です。リンクさせるテンプレートを分けたい、
登録するホストグループを分けたい等の場合は分岐の分だけ、自動登録の設定を作成します。

おすすめ!

Zabbix2.2から新たに追加された「HostMetadata」を活用することで、AutoScalingやElastic Beanstalkによるデプロイの際に自動的にアプリケーションに合わせた監視を始めたり、
既存環境にZabbix-Agentをインストールするだけで、Zabbixサーバ側での新たな設定をせずに自動的に監視が開始されるシステムを構築することができます。
先日リリースされたZabbix2.3.0 (Zabbix2.4に向けての開発版アルファリリース)ではディスカバリーによる自動削除機能の強化も発表されており
スケールインも想定した監視自動化にさらに夢が広がりますね。