- blogs:
- cles::blog
2016/12/28

snmptrapd の通知を Slack に飛ばす




最近使い始めた Slack が便利なので、snmptrapd の通知を WebHook を使って Slack に飛ばすようにしてみました。
† 設定方法
[10分で出来る]シェルスクリプトの結果をslackに投稿 - Qiitaを参考に「続・ESXi の状態変化をメールで受け取る」で書いたスクリプトを以下のようにちょっと改良してみました。
/etc/snmp/traphandle.sh
#!/bin/bash
TMP_FILE="/tmp/snmptrapd_$$"
BLACKLIST_FILE="/etc/snmp/blacklist"
# メール通知の設定
MAIL_FROM="from@example.com"
MAIL_TO="to@example.com"
MAIL_SMTP="smtp.example.com"
# Slack通知の設定
SLACK_WEBHOOKURL="(slackのWebHookURL)"
SLACK_CHANNEL="(slackのチャネル)"
SLACK_BOTNAME="(slackの投稿者名)"
SLACK_FACEICON=":raising_hand:"
trap 'rm "$TMP_FILE"' 0
while read LINE; do
echo $LINE >> $TMP_FILE
done
cat $TMP_FILE | grep "SNMPv2-MIB::snmpTrapOID" | grep -v -f "$BLACKLIST_FILE" 2>&1 >/dev/null
BLACKLISTED=$?
if [ $BLACKLISTED -ne 1 ] ; then
# mail notification
cat $TMP_FILE | /usr/bin/traptoemail -f $MAIL_FROM -s $MAIL_SMTP $MAIL_TO
# slack notification
WEBMESSAGE='```'`cat $TMP_FILE | sed 's/"/\\\\"/g' `'```'
curl -s -S -X POST --data-urlencode "payload={\"channel\": \"${SLACK_CHANNEL}\", \"username\": \"${SLACK_BOTNAME}\", \"icon_emoji\": \"${SLACK_FACEICON}\", \"text\": \"${WEBMESSAGE}\" }" ${SLACK_WEBHOOKURL} >/dev/null
fi
テストは snmptrap が動いているサーバ上で以下のコマンドを実行することで行えます。
snmptrap -IR -v 2c -c public localhost '' netSnmp.99999 netSnmp.99999.1 s "Test smtptrap!"
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9040
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(114430)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112950)
3 . 年次の人間ドックへ(112376)
4 . 2023 年分の確定申告完了!(1つめ)(111945)
5 . 三菱鉛筆がラミーを買収(111819)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112950)
3 . 年次の人間ドックへ(112376)
4 . 2023 年分の確定申告完了!(1つめ)(111945)
5 . 三菱鉛筆がラミーを買収(111819)
cles::blogについて
Referrers