先ほど紹介したポート監視は、監視結果として「0(ポートが閉じている)」もしくは「1(ポートが開いている)」という値を返します。ZABBIXではこの値を利用して障害判定を行いますが、人間の目で見た場合、即座に現在の状態を把握することが困難です。
ZABBIXでは、このポート監視のように、現在のステータスとして数値を返すアイテムも多く存在します。そのようなアイテムを利用するときは、値のマッピングという機能を利用すると、状態を一目で把握しやすくなります。値のマッピングは数字に意味を与える機能です。
例えば、ポートが開いている場合は1、閉じている場合は0を返すような監視設定では、
1→UP |
のように、より分かりやすく表示させることができます。
値のマッピングは、インストール直後でも複数のマッピングが登録されています。ポート監視では初期状態から登録されているService stateを利用します。
最後にログ監視の設定を行います。Apacheの標準のログファイルは/var/log/httpdに置かれます。ここではerror_logを監視します。
ログ監視を行う際は、監視対象となるログファイルをOS上のzabbixユーザーが読み取ることができる必要があります。そこで、監視を行う前にerror_logの権限を確認します。
# ls -l /var/log/httpd/error_log |
上記ログファイルはzabbixユーザーから読み取ることができるため、特に変更は必要ありません。また、zabbix_agentd.confにパラメータDisableActiveが設定されていないことを確認してください。
ログ監視を行う際は以下のように設定をします。
項目 設定例
名前 :Log of $1
タイプ :ZABBIXエージェント(アクティブ)
キー :log[/var/log/httpd/error_log]
データ型:ログ
アプリケーション:Apache
この結果、/var/log/httpd/error_logが更新されると、更新内容をZABBIXで取得することができます。
以上でアイテムの設定は終了です。
次にトリガーを設定します。[設定]→[トリガー]のホストプルダウンメニューより作成した[Template_App_httpd]を選択します。[トリガーの作成]ボタンを押し、先ほど登録したアイテムに対して障害判定の設定を行います。
トリガーは以下のように設定します。
名前 :httpd process is not running on {HOSTNAME}
条件式 :{Template_App_httpd:proc.num[httpd].last(0)}
上記設定では起動中のhttpdプロセスが1個未満になった場合に障害と判断します。トリガー名中の{HOSTNAME}はマクロと呼ばれる変数で、トリガーが登録されているホスト名を動的に挿入します。
名前 :httpd service is down on {HOSTNAME}
条件式 :{Template_App_httpd:net.tcp.service[tcp,,80].last(0)}=0
上記設定では、80番ポートが開放されていない状態(アイテムで0を取得した場合)に障害と判定します。
名前 :error found in /var/log/httpd/error_log on {HOSTNAME}
条件式 :{Template_App_httpd:log[/var/log/httpd/error_log].str(error)}=1
上記設定では/var/log/httpd/error_logに「error」が含まれる行が追加された際に障害と判断します。
以上でトリガーの登録は終了です。
テンプレートに監視設定をしたら、実際にホストと関連付けていきます。
[設定]→[ホスト]より右上のプルダウンメニューから[ホスト]を選択します。テンプレートとのリンクの項目にある[追加]ボタンを押し、新たに設定したTemplate_App_httpdを選択し、保存します。
以上でテンプレートとのリンク設定は完了です。同様の手順で複数サーバに対してTemplate_App_httpdをリンクさせ、監視することができます。
Copyright © ITmedia, Inc. All Rights Reserved.