nagiosとslackの連動設定 携帯メールの余分なデータを削除

利用する物 slack webhook URL https://api.slack.com/incoming-webhooks

nagios の commands.cfg への記述

define command {
     command_name notify-service-by-slack
     command_line $USER1$/slack_service_notify.sh "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTADDRESS$" "$SERVICEDESC$" "$SERVICESTATE$" "$SERVICEOUTPUT$" "$LONGDATETIME$"
}

define command {
     command_name notify-host-by-slack
     command_line $USER1$/slack_host_notify.sh "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTADDRESS$" "$HOSTSTATE$" "$HOSTOUTPUT$" "$LONGDATETIME$"
}

---

contacts.cfg に上記の追加 (notify-host-by-slack,notify-service-by-slak)
host_notification_commands notify-host-by-epager,notify-host-by-slack
service_notification_commands notify-service-by-epager,notify-service-by-slack

---

プログラム URL /usr/lib64/nagios/plugins/ に設置

https://github.com/obaarne/Nagios2Slack/blob/master/slack_host_notify.sh
https://github.com/obaarne/Nagios2Slack/blob/master/slack_service_notify.sh

vi等で開いて

SLACK_URL=

を自分のwebhook アドレスに変更して保存

 

動作確認:

slack_host_notify.sh

slack_service_notify.sh

を実行して該当チャンネルに書き込まれると成功

 

参考:

github.com 

exchange.nagios.org

 

携帯メール(notify-*-by-epager)で余分なデータを削除

notify-host-by-epager ホスト関連の通知

 define command{
     command_name notify-host-by-epager
     command_line /usr/bin/printf "%b" "Host '$HOSTALIAS$' is $HOSTSTATE$\nInfo: $HOSTOUTPUT$\nTime: $LONGDATETIME$" | /usr/bin/mail -s "$NOTIFICATIONTYPE$ alert - Host $HOSTNAME$ is $HOSTSTATE$" $CONTACTPAGER$
}

これを

define command{
     command_name notify-host-by-epager
     command_line /usr/bin/printf "%b" "'$HOSTALIAS$' is $HOSTSTATE$\n$HOSTOUTPUT$\n$LONGDATETIME$" | /usr/bin/mail -s "$NOTIFICATIONTYPE$ alert - Host $HOSTNAME$ is $HOSTSTATE$" $CONTACTPAGER$
}

削るデータは

Host

Time:

 

notify-service-by-epager サービス関連の通知

define command{
     command_name notify-service-by-epager
     command_line /usr/bin/printf "%b" "Service: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nInfo: $SERVICEOUTPUT$\nDate: $LONGDATETIME$" | /usr/bin/mail -s "$NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" $CONTACTPAGER$
}

これを

define command{
     command_name notify-service-by-epager
     command_line /usr/bin/printf "%b" "$SERVICEDESC$\n$HOSTNAME$\n$HOSTADDRESS$\n$SERVICESTATE$\n$SERVICEOUTPUT$\n$LONGDATETIME$" | /usr/bin/mail -s "$NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" $CONTACTPAGER$
}

削るデータは先頭の

Service:

Host:

Address:

Info:

Date:

 

以上