ZABICOM / Zabbixの機能活用

2010年12月28日(火)
福島 崇八久保 洋一

第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: マクロの優先順位と相関図

図1のように、ホストで定義したマクロが優先されるので「テンプレートのマクロ定義でデフォルトの値を定義しておき、ホストのマクロ定義で実際の環境に合わせた値に上書きする」という柔軟な運用が可能です。

ここで[グローバルマクロ]という機能が初出しましたが、これはZABICOMのシステム単位で設定できるユーザー定義マクロのことです。[管理]→[一般設定]からプルダウン・メニューで[マクロ]を選択し、定義できます。

[グローバルマクロ]は[管理]メニューの機能なので、Zabbix特権管理者にしか定義できません。Telnet監視用のユーザー名とパスワード、SSH監視用のユーザー名とパスワードなど、設定項目に直接記述することがはばかられる値を隠ぺいしたい場合に使用するとよいでしょう。

NTTコムテクノロジー株式会社 NMSイノベーションシステム室 主任 Zabbix認定トレーナー

サーバー構築、アプリケーション開発を経験後、現在はNTTコムテクノロジー(株)のZABICOM開発チームにて、ZABICOM / Zabbixの仕様策定および性能・品質向上を担当する傍ら、Zabbix公式研修の講師を務めるなど、ZABICOM/Zabbixのエキスパート。現在、次々期バージョン ZABBIX 2.2 の仕様策定を実施中。
 

NTTコムテクノロジー株式会社 サービス企画本部NMSイノベーションシステム室 室長

システム開発、ネットワーク及びサーバの運用を経験後、現在はNTTコムテクノロジー(株)において、ZABICOM / Zabbixチームを統括。主にZABICOMの開発チームのマネージメントを担当。ZABBIX1.4 初期より、運用現場が求めるZABBIXへの機能追加をZABBIX社とともに推進。特にZabbix1.8における仕様追加及び品質向上には大きく寄与した。現在次々期バージョンZABBIX 2.2の仕様策定を実施中。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています