ザビックス コメント付きでトリガーを送信

ご挨拶!

Zabbixで通知を送信する際に、ユーザーのコメントとともに小さなきしみ音(わずかに修正されたオリジナル)を共有することにしました。

問題の本質:職場では、Zabbixは主にリモートネットワークの監視に使用されます(可用性、少し品質)。 ジョブの説明に従ってリモートネットワークとの通信がない場合、これについて特定の部門に通知する必要があります。 通常のメール送信を設定することは難しくありませんでしたが、そのような送信では、部門にとってあいまいさで十分でした。 そのため、トリガーを確認するときに、送信されたレターにコメントをダッシュ​​ボードに挿入することにしました。

実際、これは、Zabbixの公式ドキュメントにあるスクリプトと同じものですが、1つの小さな挿入物があります。



#! /bin/bash to=$1 #  subject=$2 #  body=$3 #  status="$(echo $body | cut -d\; -f3)" # ,   if text0='   ,  : ' text1='   30 .' text2=':' text3=':' text4=':' text5='    :' text6='        : ' text7='Original event ID:' text8='  :' text9='    :' ack=`echo "select message FROM acknowledges WHERE eventid='$(echo $body | cut -d\; -f1)'" | mysql -uuser -ppassword -Dzabbix` #     if [[ $status = "PROBLEM" ]]; then #if- ,               cat <<EOF | mail -s "$subject" "$to" $text0 $(echo $body | cut -d\; -f2) $text1 $text2 $(echo $body | cut -d\; -f3) $text3 $(echo $body | cut -d\; -f4) $text4 $text5 $(echo $body | cut -d\; -f5) $(echo $body | cut -d\; -f6) $text6 $text8 $ack $text7 $(echo $body | cut -d\; -f1) EOF else cat <<EOF | mail -s "$subject" "$to" $text0 $(echo $body | cut -d\; -f2) $text1 $text2 $(echo $body | cut -d\; -f3) $text3 $(echo $body | cut -d\; -f4) $text4 $text9 $(echo $body | cut -d\; -f5) $(echo $body | cut -d\; -f6) $text6 $text8 $ack $text7 $(echo $body | cut -d\; -f1) EOF fi
      
      







アクションの設定について:









私の場合、ネットワークへのアクセス不能とその排除の理由に関する情報を明確にするのに時間がかかるという事実により、トリガーが発生してから30分後にメッセージの送信が発生します。 30分後、問題が解決しない場合、通知グループ内のユーザーに通知されます。



スクリプトの欠陥:

1)スクリプトは複数行のコメントを理解しません。 この場合、彼は添付ファイルにテキストを送信します。 それを修正する方法を知っている人-あなたの考えを共有してください。

2)なぜなら 私は、Zabbixのフロントエンドと対話する唯一の人と言うことができますが、コメント作成者を挿入しませんでした。 しかし、これは原則として実行可能です。

 userid=`echo "select userid FROM acknowledges WHERE eventid='$(echo $body | cut -d\; -f1)'" | mysql -uuser -ppassword -Dzabbix` user=`echo "select alias [   name  surname -     ] FROM users WHERE userid=$userid" | mysql -uuser -ppassword -Dzabbix`
      
      





3)標準メールで作成し、muttでやり直してhtmlを追加し、すべてを美しくすることができます。



次に機能について説明します。 ホストの場所は「インベントリデータ」から取得されます-「場所」

区切り文字-「;」

アクションで規定されているテキスト:

{EVENT.ID}; {INVENTORY.LOCATION1}; {TRIGGER.STATUS}; {TRIGGER.SEVERITY}; {EVENT.DATE}; {EVENT.TIME}




原則として、あなたは何でも変更できます。主なことは、対応するマクロを見つけることです。



これはあまりにも小さな修正であると理解していますが、誰かが役に立つかもしれません。



UPD:フォーラムで、1週間後、彼らは私が自転車を発明したことを提案しました。標準出力方法に{EVENT.ACK.HISTORY}を追加するだけで十分でした。



All Articles