Edited at

Zabbixでログ監視

More than 5 years have passed since last update.


Zabbixでのログ監視の自分的設定メモ

すぐに忘れてしまうのでこちらに残しておきます。

アプリ系のログは通常はfluentdを使ってログをゴニョゴニョしてメールを飛ばしているが

システム系ログをZabbixで監視設定した時のメモ。テンプレートにすれば楽なので。

ポイントは普通に設定してしまうと監視対象のログの全メッセージが

Zabbixに格納されてしまい、無駄に容量食うので必要なキーワードだけを監視対象にしたい。


前提

前もってZabbixがroot権限で実行できるように/etc/zabbix/zabbix_agentd.conf内の# AllowRoot=0をコメントインしておく。

# AllowRoot=0

↓↓↓

AllowRoot=1


メモ


  1. GUIでZabbixサーバへログインし、管理 -> 一般設定 -> GUIの設定 -> 正規表現 -> 正規表現の作成

  2. 条件式を下記のように設定

名前 :messages ※任意

条件式 :error|warn|fail|fatal|ERROR|WARN|FAIL|FATAL ※任意

条件式の形式 :結果が真

大文字小文字を区別 :いいえ ※この条件だと「いいえ」にしても大文字小文字が区別されないので注意

zabbix-server- 正規表現の設定.png

3.2で設定した条件式をテスト

テスト文字列へ条件式で設定した文言のうち例として「error」を入力し、テスト条件式をクリックし確認する

最終結果が真であれば動作OK

正規表現のテスト.png

4.アクションの設定、

設定 -> テンプレート -> <任意のテンプレート>アイテム -> アイテムの作成

名前 :ログ監視(/var/log/messages)

タイプ :Zabbixエージェント(アクティブ)

キー :log[/var/log/messages,@messages]

データ型 :ログ

更新間隔(秒) :30 ※任意

ヒストリ保存期間:90 ※任意

zabbix-server- アイテムの設定.png

5.トリガーの設定、

アイテム -> ログ監視(/var/log/messages)右側メニューから「トリガーの作成」を選択

名前 :ログ監視(/var/log/messages) on {HOST.NAME}

条件式:({Template OS Linux:log[/var/log/messages,@messages].iregexp(@messages)})#0&({Template OS Linux:log[/var/log/messages,@messages].nodata(300)})=0

zabbix-server- トリガーの設定追加.png

6.loggerでテスト

logger -p user.warn -t [TEST] "logger test \"warn\""

監視データのヒストリに格納され、アクションでメールが飛べば想定通りの動き

logger -p user.warn -t [TEST] "logger test \"hoge\""

これは正規表現にマッチしないのでヒストリに格納されない。想定通りの動き