Debian 9.3 Logwatch・ClamAVのSlack連携 (Linux自作PC 24)
当サイトではアフィリエイト広告を利用しています
Debian Stretch 9.3でLogwatchやClamAVの結果をSlackで通知できるように設定を行っていきます。
前回でZabbixとSlackの連携設定を行いました。今回はSlack連携をlogwatchとClamAVでも行っておきます。
Webhook
Webhookの登録は前回の記事と同じなので省略します。
シェルスクリプトの用意
今回は引数をそのままSlackに投稿するようなスクリプトを用意しておきます。
/root/post-slack.sh
として次のスクリプトを記述します。
#!/bin/sh
set -eu
#Incoming WebHooksのURL
WEBHOOKURL="ここにIncoming Webhooks IntegrationのURLをいれてね"
#メッセージを保存する一時ファイル
MESSAGEFILE=$(mktemp -t webhooks.XXXX)
trap "
rm ${MESSAGEFILE}
" 0
usage_exit() {
echo "Usage: $0 [-m message] [-c channel] [-i icon] [-n botname]" 1>&2
exit 0
}
while getopts c:i:n:m: opts
do
case $opts in
c)
CHANNEL=$OPTARG
;;
i)
FACEICON=$OPTARG
;;
n)
BOTNAME=$OPTARG
;;
m)
MESSAGE=$OPTARG"\n"
;;
\?)
usage_exit
;;
esac
done
#slack 送信チャンネル
CHANNEL=${CHANNEL:-"#server-log"}
#slack 送信名
BOTNAME=${BOTNAME:-"server-notifier"}
#slack アイコン
FACEICON=${FACEICON:-":envelop:"}
#見出しとなるようなメッセージ
MESSAGE=${MESSAGE:-""}
if [ -p /dev/stdin ] ; then
#改行コードをslack用に変換
cat - | tr '\n' '\\' | sed 's/\\/\\n/g' > ${MESSAGEFILE}
else
echo "nothing stdin"
exit 1
fi
WEBMESSAGE='```'`cat ${MESSAGEFILE}`'```'
#Incoming WebHooks送信
curl -s -S -X POST --data-urlencode "payload={\"channel\": \"${CHANNEL}\", \"username\": \"${BOTNAME}\", \"icon_emoji\": \"${FACEICON}\", \"text\": \"${MESSAGE}${WEBMESSAGE}\" }" ${WEBHOOKURL} >/dev/null
logwatchへ設定
/root/slack-logwatch-report.sh
として次のスクリプトを記述します。
#!/bin/sh
logwatch --detail Low| /root/post-slack.sh
$sudo chmod +x /root/slack-logwatch-report.sh
で実行権限を付与して、cron.dailyへ登録します。
$ sudo ln -s /root/slack-logwatch-report.sh /etc/cron.daily/slack-logwatch-report
$ sudo chmod 755 /etc/cron.daily/slack-logwatch-report
clamavへ設定
以前作成したClamAVのスキャン用スクリプト/root/clam-full.sh
を次のように修正します。
#!/bin/bash
PATH=/usr/bin:/bin
TITLE=""
TO="To: root\n"
SENDMAIL=/usr/sbin/sendmail
#SENDMAIL=echo
# update definition
# freshclam > /dev/null
# full scan (multi-thread)
#clamdscan --multiscan --verbose --move=/var/log/clamav/virus /
# full scan (single-thread)
clamdscan --verbose --move=/var/log/clamav/virus /
# report
if [ $? = 0 ]; then
echo "virus not found"
TITLE="Subject: ClamAV scan OK"
echo -e $TO$TITLE | cat - /var/log/clamav/clamav.log | $SENDMAIL -t
cat /var/log/clamav/clamav.log | /root/post-slack.sh
elif [ $? = 1 ]; then
echo "virus found"
TITLE="Subject: ClamAV scan NG"
echo -e $TO$TITLE | cat - /var/log/clamav/clamav.log | $SENDMAIL -t
cat /var/log/clamav/clamav.log | /root/post-slack.sh
else
echo "error occured"
TITLE="Subject: ClamAV scan Error"
echo -e $TO$TITLE | cat - /var/log/clamav/clamav.log | $SENDMAIL -t
cat /var/log/clamav/clamav.log | /root/post-slack.sh
fi
まとめ
これで必要そうな設定は一通り終わったかと思います。あとは運用中に問題が出た項目を修正する形になります。
参考
今後
次からは設定したマシンを用いて、ディープラーニングやマイニングの動作を行っていきたいと思います。