監視中のsyslogにキーワード”Error"が含まれたらMS Teamsに通知する - aktnk/til GitHub Wiki
syslog監視中のsyslogメッセージ中にキーワード"Error"が含まれていたらMS Teamsに通知させる。
前提条件
- Media typesのMS Teamsに通知したいチャネルにZabbix WebhookもしくはIncoming Webhookコネクタを設定していること
- 通知を実行するユーザのMediaに上記MS TeamsのMedia typeを設定していること
- syslog監視を設定していること
- ブラウザを開きZabbix Serverにsuper admin role権限をもつユーザでサインインしていること
設定手順
- 通知したい現象を規定するTriggerを設定する
- Configuration > Hosts を選択し、syslog監視済みホスト欄に表示されたTriggerへのリンクを選択する
- 表示されたウィンドウの右上にある[Create trigger]ボタンを押す
- 表示されたtrigger設定ウィンドウで下記項目を入力する
- Name:(トリガーを説明する名前)
- Severity:(設定したいseverityを指定)
- Expression:(syslog監視アイテムのメッセージ中に"Error"の文字が含まれる)もしくは(syslog監視アイテムのメッセージ中に"ERROR"の文字が含まれる)ことをあ表す式を入力する
find(/host-A/logrt[/var/log/syslog,"test:",,,skip,,,,],,"regexp","Error")=1 or find(/host-A/logrt[/var/log/syslog,"test:",,,skip,,,,],,"regexp","ERROR")=1
- Expression:(syslog監視アイテムのメッセージの最初に"Error"の文字が含まれる)もしくは(syslog監視アイテムのメッセージの最初に"ERROR"の文字が含まれる)ことをあ表す式を入力する
find(/host-A/logrt[/var/log/syslog,"test:",,,skip,,,,],,"regexp","test:\sError")=1 or find(/host-A/logrt[/var/log/syslog,"test:",,,skip,,,,],,"regexp","test:\sERROR")=1
- OK event generation:None(補足:今回trigger検知した項目は手動でクローズするため、ここはNoneを指定)
- PROBLEM event generation mode:Multiple(補足:先にtrigger検知した項目がクローズしていなくても、通知できるようにする)
- Allow manual close:Checked(補足:今回trigger検知した項目は手動でクローズするため、ここはチェックする)
- Teamsに通知するTrigger actionを設定する
- Configration > Actions > Trigger actionsを選択する
* 表示された"Trigger actions"のウィンドウの右上にある[Create action]ボタンを押す
* 表示された"Actions"のウィンドウのActionタブで下記項目を入力する
- Name:(設定したいアクション名)
- Conditions:[Add]ボタンを押し、"New condition"のウィンドウで下記項目を入力する
- Type:Trigger
- Operator:equals
- Triggers:[Select]ボタンを押し、上記で定義したTriggerを選択し、[Add]ボタンを押す
- Operationsタブを選択し、下記項目を入力する
- Default operation step duration:(実行間隔を設定)
- Operations:[Add]ボタンを押し、表示された"Operation details"のウィンドウで下記項目を入力する
- Send to users:[Add]ボタンを押し、Media Typeに定義したTeamsの通知を設定したユーザを選択し、[Select]ボタンを押す
- Send only to:(Media Typeに定義したTeams通知を選択)
- [Add]ボタンを押す
- [Add]ボタンを押す
- Configration > Actions > Trigger actionsを選択する
* 表示された"Trigger actions"のウィンドウの右上にある[Create action]ボタンを押す
* 表示された"Actions"のウィンドウのActionタブで下記項目を入力する
- 動作確認
- Ubuntu ServerにSSHでサインインする
logger
コマンドを使い、先に指定したsyslog監視内容に合わせてsyslogにメッセージを送る# logger -t test Error for test1 # logger -t test ERROR for test2
- Monitoring > Dashboard に設定したtrigger名の通知が表示されていることを確認する
- Teamsの指定したチャネルにメッセージが投稿されるていることを確認する
- クローズの仕方
- Monitoring > Dashboardに表示された通知のAck欄の[No]のリンクを選択する
- 開いたウィンドウに下記項目を入力する
- Message:(テストのためクローズ)
- Acknowledge:checked
- Close problem:checkd
- [Update]ボタンを押し、しばらくすると、通知が消えることを確認する