監視中の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]ボタンを押す
  • 動作確認
    • 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]ボタンを押し、しばらくすると、通知が消えることを確認する