Zabbixでログ監視


Zabbixでログ監視を行います。また、3.0からはログファイルから正規表現を利用して数値を取得できるようになったようです。

前提

Zabbixでログ監視を行うためには、エージェントのアクティブチェック関連の設定をする必要があります。
zabbix_agentd.confServerActiveに、「hostname:port」の形式でアクティブ監視を許可するZabbixサーバを指定します。

また、ログ監視するためにはzabbixユーザの権限が足りません。root権限で実行できるようにするためには、zabbix_agentd.conf# AllowRoot=0AllowRoot=1に変更すればよいですが、セキュリティ上よろしくありません。
そこで、ファイルのパーミッションを変更することで、zabbixユーザでもログを読めるようにします。

# chown root:zabbix /var/log/messages
# chmod 640 /var/log/messages

logrotateしても大丈夫なように設定を変更します。以下のようにcreate 0640 root zabbixを追加しておきます。

/etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    sharedscripts
    postrotate
    /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
    create 0640 root zabbix
}

テンプレートの作成

テンプレートがない場合はあらかじめ作成しておきます。
Zabbixの「設定」->「テンプレート」でテンプレートの一覧が表示され、右上のテンプレートの作成から作成できます。

テンプレート名と適切なグループを設定し、追加します。

アイテム

作成したテンプレートの「アイテム」を選択しアイテムの作成から作成します。
下記以外の設定は状況に応じて設定してください。
ログ監視のキーにはlog[], logrt[], eventlog[]が使用できます。詳細は6 Log file monitoring [Zabbix Documentation 3.0]などを確認してください。

例 (Postfix/LMTPの遅延を検出する)

  • 名前:*任意*
  • タイプ:Zabbixエージェント(アクティブ)
  • キー:logrt[/var/log/maillog,"^.postfix/lmtp.*delay=([0-9.]), delays=.*$",,,,\1]
  • データ型:数値(浮動小数)
  • 単位:sec

トリガー

障害感知できるように設定します。

グラフ

必要であれば設定します。

参考