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
を実行して該当チャンネルに書き込まれると成功
参考:
携帯メール(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:
以上