ログ監視¶
Zabbix-Agentを利用して、ログファイルの監視を行う。
前提条件¶
- Zabbix-Agentのインストールを行っていること
 - ログファイルおよび監視仕様は以下の仕様であること
	
- 「/var/log/messages」を監視する
 - ログファイルは週次でローテーションされる
 - 1分ごとに監視を行う
 - 5分間再度キーワードマッチングがなければ復旧と判断する
 - 特定のキーワード(エラーコード)の有無を監視する
 - 警告のトリガーのみ発生させ、通知メールは別途アクションで送信する
 
 
Zabbix-Agentの設定¶
- ログの読み取りに際しroot権限が必要となるため、以下の設定と再読み込みを行う。
# vi /etc/zabbix/zabbix_agentd.conf # AllowRoot=0 ↓ AllowRoot=1 # systemctl restart zabbix-agent
 
設定¶
正規表現プリセットの設定¶
複数の文字列をマッチングする場合に作成する。
単一の文字列とのマッチングのみでいい場合はスキップする。
- WebUIにログインする
 - 「管理」をひらく
 - 「一般設定」をひらく
 - 右上のプルダウンメニューから「正規表現」を選択する
 - 「正規表現の作成」ボタンを押す
 - 以下の内容を設定する
	
- 名前「log-error」
 - 条件式の形式「いずれかの文字が含まれる」
 - 条件式「error,warn,fail,fatal,ERROR,WARN,FAIL,FATAL」
 - 区切り文字「,」
 - 大文字小文字を区別「チェックしない」
 
 - 「テスト」リンクをクリックし、「テスト文字列」に入力した文字列が正しくマッチするか確認する。
「テスト条件式」ボタンを押し、未検出時が「偽(false)」、検出時が「真(true)」となるように設定する。 - 「追加」ボタンを押す
 
アイテムの作成¶
任意のテンプレートまたはホストに新規「アイテム」を作成する。
- 任意のテンプレートまたはホストの「アイテム」ページを表示する。
 - 「アイテムの作成」ボタンを押す
 - 以下の内容を設定する
	
- 名前「messagesログ監視」
 - タイプ「Zabbixエージェント(アクティブ)」
 - キー「log[/var/log/messages,@log-error]」
	
- 単一の文字列でいい場合「log[/var/log/messages].str(error)」
 
 - データ型「ログ」
 - 更新間隔「60s」
 - ヒストリ保存期間「90d」
 - ログの時間の形式「%b dd hh:mm:ss」
 - アプリケーションの作成「log-messages」
 - アプリケーション「-なし-」
 - 説明「」
 - 有効「チェック」
 
 
トリガーの作成¶
- 上記アイテムを追加したテンプレートまたはホストの「トリガー」ページを表示する
 - 「トリガーの作成」ボタンを押す
 - 以下の内容を設定する
	
- 名前「messagesログ監視 {HOST.NAME}」
 - 深刻度「重度の障害」
 - 条件式
({テンプレート名:log[/var/log/messages,@log-error].iregexp(@log-error)})<>0 and ({テンプレート名:log[/var/log/messages,@log-error].nodata(300)})=0- 単一の文字列でいい場合「{テンプレート名:log[/var/log/messages].str(error)}=1」
 
 - 正常イベントの生成「条件式」
 - 障害イベントの生成モード「単一」
 - 正常時のイベントクローズ「すべての生涯」
 - タグ「」
 - 手動でのクローズ許可「チェック」
 - URL「」
 - 説明「」
 - 有効「チェック」
 
 - 「追加」ボタンを押す
 
動作確認¶
- 監視対象のサーバで次のコマンドを発行し、意図的に警告ログを検知させる
logger -p user.warn -t [ZABBIX] "zabbix test \"warn\""
 - /var/log/messagesに上記のログが発生したことを確認し、監視のタイミングまで待つ
 - 障害を検知すれば成功
 
- 監視対象のサーバで次のコマンドを発行し、意図的にログレベルのみ警告でマッチしないログを出力する
logger -p user.warn -t [ZABBIX] "zabbix test \"test\""
 - /var/log/messagesに上記のログが発生したことを確認し、監視のタイミングまで待つ
 - 障害を検知しなければ成功