ログインをrsyslog経由でslackに通知させる
はじめに
サーバ(CentOS)に対するログインを全てslackで通知させたかった.
そこでrsyslogからシェルスクリプトを呼び出してslackに通知させてみる.
Slackトークンの取得
今回はこちらを参考に取得させていただいた.
rsyslogの設定
rsyslogの設定を追加する./etc/rsyslog.d/slack.conf
を作成して以下を書き込む.これでログイン時にslack.sh
が実行されるようになる.
$template login_msg, "%fromhost% %msg%"
if \
( $msg contains 'pam_unix(' ) \
and ( $msg contains 'session opened' ) \
then ^/etc/rsyslog.d/slack.sh;login_msg
次に/etc/rsyslog.d/slack.sh
を作る.例として,チャンネル名はalertとしている.
#!/bin/sh
curl -XPOST -d "token=アクセストークン" -d "channel=#alert" -d "text=${1#* * * * * }" "https://slack.com/api/chat.postMessage"
text=${1#* * * * * * }
の部分で下の例のような形にログを切り出している.
pam_unix(sshd:session): session opened for user root by xxxxx(uid=xxxx)
#これを切り出すと
root by xxxxx(uid=0)
動作確認
まずは普通にSSHでログインしてみる.
ちゃんと通知が来た.
次にsudo
やsu -
を使ってみる.
rootへのログインも通知が来た.
最後に
自分しかユーザがいないサーバで動かしてるので,不意の通知が来ないよう祈る.
参考文献
Author And Source
この問題について(ログインをrsyslog経由でslackに通知させる), 我々は、より多くの情報をここで見つけました https://qiita.com/lobmto/items/ccfe4d97286025a4405c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .