ZABICOM / Zabbixの機能活用
第4回では、第1回で触れたユーザー定義マクロのより詳しい解説と、ZABICOM / Zabbixと外部ツールとの連携方法、監視継続のための冗長化について解説します。外部ツールとの連携例では、一般的な連携手法のほかに、NTTコムテクノロジーが開発した「仮想化基盤監視ツール(VMZ)」や「レポート作成支援機能(RAZ)」も紹介します。
ユーザー定義マクロ
テンプレートにアイテムを設定する際には、複数の監視対象で共通して使うものを設定します。サーバー監視用のテンプレートであれば、CPUの監視、メモリーの監視、ログの監視などです。しかし、ログ・ファイルのパスなどは、システムごとに異なる可能性が大いにあります。
例えば、ZABICOMエージェントのログを取得するためのアイテム・キーは、Linuxでは「 log[/var/log/zabbix/zabbix_agentd.log] 」 、Windowsでは「 log[c:\zabbix_agentd.log] 」です。ここで、Linux用とWindows用で別々にテンプレートを作成する必要があるのでしょうか。答えは否です。
第1回で軽く触れましたが、ZABICOM 1.8からは、ユーザーが定義したマクロを使えるようになりました。アイテム・キーやトリガー条件式にこのマクロを使用することで、従来と比べてより汎用的なテンプレートを作成できます。
ZABICOMエージェントのログを監視するアイテムを作成する場合は、以下のようなアイテム・キーを作成します。
本来、監視対象のログ・ファイルをフルパスで記述するべき場所に、見慣れない文字列「{$AGENT_LOG}」が記述されています。これがユーザー定義マクロです。
ユーザー定義マクロを記述する個所は2カ所あります。ホストの設定画面と、テンプレートの設定画面です。まずはホストの設定画面からマクロを定義してみましょう。
[マクロ]欄には、新たに定義するユーザー定義マクロの名前を記述します。名前に使用可能な文字種は英大文字と、.(ピリオド)、 _(アンダー・バー)です。また、名前は必ず「{$」で始まり、「}」で終わる必要があります。今回の例では「{$AGENT_LOG}」とします。[マクロ]は、ホスト(テンプレート)内で一意である必要があります。
[値]欄には、定義したマクロと置き換える文字列(または数値)を記述します。Linuxのホストには「/var/log/zabbix/zabbix_agentd.log」、Windowsのホストには「c:\zabbix_agentd.log」(どちらも実際の環境にパスを合わせてください)と記述します。
実際に監視が行われるときは、ZABICOM内部でマクロが展開されます。
Linuxホスト | log[{$AGENT_LOG}] → log[/var/log/zabbix/zabbix_agentd.log] |
Windowsホスト | log[{$AGENT_LOG}] → log[c:\zabbix_agentd.log] |
ユーザー定義マクロをトリガー条件式に使用する例として、第3回で設定したCPU使用率のトリガーを例に説明します。
しきい値として「80」を入力していた場所を「{$CPU_HIGH}」マクロで置き換え、しきい値として「60」を入力していた場所を「{$CPU_LO}」マクロで置き換えます。
ホスト設定のマクロに{$CPU_HIGH}と{$CPU_LO}を設定します。
この機器は、前回の機器よりも若干CPU使用率が高いので、しきい値を5%ずつ増やしてみました。また、テンプレートに設定する場合もホストと同じ手順で設定することが可能です。
ここまでの説明で首をかしげる方もいるかもしれません。なぜなら「[マクロ]は、ホスト(テンプレート)内で一意である必要があります」と説明したからです。では、ホストとテンプレートで同じ[マクロ]を作成した場合はどうなるのでしょう。この場合、同じ[マクロ]は上書きされます。マクロ同士の優先順位は、以下に示す図1の通りです。
図1: マクロの優先順位と相関図 |
図1のように、ホストで定義したマクロが優先されるので「テンプレートのマクロ定義でデフォルトの値を定義しておき、ホストのマクロ定義で実際の環境に合わせた値に上書きする」という柔軟な運用が可能です。
ここで[グローバルマクロ]という機能が初出しましたが、これはZABICOMのシステム単位で設定できるユーザー定義マクロのことです。[管理]→[一般設定]からプルダウン・メニューで[マクロ]を選択し、定義できます。
[グローバルマクロ]は[管理]メニューの機能なので、Zabbix特権管理者にしか定義できません。Telnet監視用のユーザー名とパスワード、SSH監視用のユーザー名とパスワードなど、設定項目に直接記述することがはばかられる値を隠ぺいしたい場合に使用するとよいでしょう。