- blogs:
- cles::blog
2018/04/13

log を常時監視して slack にポストする


以前、「snmptrapd の通知を Slack に飛ばす」というのをやりましたが、ファイルを tail -f で監視しておいて、特定の文字(例えば [ERROR])が来たらそれを Slack で通知するというシェルスクリプトを組んでみました。
ベースがあるとあっという間にできますね。
いろいろオプションがついてしまっていますが、基本的にはバッファリングさせないようにするものです。
#!/bin/bash
SCRIPT_DIR=`dirname $0`
cd $SCRIPT_DIR
# ログとgrepの設定
LOGFILE="/path/to/log/file"
GREP_RULE="[ERROR]"
# Slack通知の設定
SLACK_WEBHOOKURL="(slackのWebHookURL)"
SLACK_CHANNEL="(slackのチャネル)"
SLACK_BOTNAME="(slackの投稿者名)"
SLACK_FACEICON=":raising_hand:"
tail -n0 -F "$LOGFILE" | grep --line-buffered "$GREP_RULE" | while read LINE ; do
# slack notification
WEBMESSAGE='```'`echo $LINE | 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
done
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10104
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(112084)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110715)
3 . 年次の人間ドックへ(110328)
4 . 2023 年分の確定申告完了!(1つめ)(109875)
5 . 三菱鉛筆がラミーを買収(109783)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110715)
3 . 年次の人間ドックへ(110328)
4 . 2023 年分の確定申告完了!(1つめ)(109875)
5 . 三菱鉛筆がラミーを買収(109783)
cles::blogについて
Referrers