#Zabbixでのログ監視の自分的設定メモ
すぐに忘れてしまうのでこちらに残しておきます。
アプリ系のログは通常はfluentdを使ってログをゴニョゴニョしてメールを飛ばしているが
システム系ログをZabbixで監視設定した時のメモ。テンプレートにすれば楽なので。
ポイントは普通に設定してしまうと監視対象のログの全メッセージが
Zabbixに格納されてしまい、無駄に容量食うので必要なキーワードだけを監視対象にしたい。
#前提
前もってZabbixがroot権限で実行できるように/etc/zabbix/zabbix_agentd.conf内の# AllowRoot=0をコメントインしておく。
AllowRoot=0
↓↓↓
AllowRoot=1
#メモ
- GUIでZabbixサーバへログインし、管理 -> 一般設定 -> GUIの設定 -> 正規表現 -> 正規表現の作成
- 条件式を下記のように設定
名前 :messages ※任意
条件式 :error|warn|fail|fatal|ERROR|WARN|FAIL|FATAL ※任意
条件式の形式 :結果が真
大文字小文字を区別 :いいえ ※この条件だと「いいえ」にしても大文字小文字が区別されないので注意
3.2で設定した条件式をテスト
テスト文字列へ条件式で設定した文言のうち例として「error」を入力し、テスト条件式をクリックし確認する
最終結果が真であれば動作OK
4.アクションの設定、
設定 -> テンプレート -> <任意のテンプレート>アイテム -> アイテムの作成
名前 :ログ監視(/var/log/messages)
タイプ :Zabbixエージェント(アクティブ)
キー :log[/var/log/messages,@messages]
データ型 :ログ
更新間隔(秒) :30 ※任意
ヒストリ保存期間:90 ※任意
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
6.loggerでテスト
logger -p user.warn -t [TEST] "logger test "warn""
監視データのヒストリに格納され、アクションでメールが飛べば想定通りの動き
logger -p user.warn -t [TEST] "logger test "hoge""
これは正規表現にマッチしないのでヒストリに格納されない。想定通りの動き