Edited at

sshでLinuxマシンにログインしたらSlackで通知する

More than 1 year has passed since last update.

誰かがログインしたときにお知らせをしたいことってありますよね。

最近Slackを使いはじめていい感じの僕はやっぱりsshでログインされたらSlackで通知させたいわけですよ。

ということで、sshでログインした瞬間にSlackへ通知する方法を書いていきます。


webhookの作成

Slack側でAdd New Integrationで新しいIntegrationを作成します。

kobito.1407259278.801756.png

Add New Integrationをおしたら、Incomming WebHooksをクリックしましょう。

kobito.1407259340.936689.png

押すとURLが発行されるのでtoken=でかかれたtokenをこの次に書くトークンの部分に記載してください。

スクリーンショット 2014-08-06 2.png


sshrcを作成する

/etc/ssh/sshrcファイルを作成します

<<<<<<< HEAD

$ sudo vim /etc/ssh/sshrc
=======

>>>>>>> YOUR_EDITION
/etc/nodejs/sshlogin.js $USER $SSH_CLIENT
aaaa


実行するスクリプトの作成する

まずはディレクトリを作成します。

$ sudo mkdir /etc/nodejs/

$ sudo npm init

つぎに必要なライブラリを準備します。

今回はnode-slackrを利用します。

$ sudo npm install --save node-slackr

あとはスクリプトを書くだけ


/etc/nodejs/sshlogin.js

var Slack = require("node-slackr");

var slack = new Slack("サブドメイン","トークン",{
channel: "#alert",
username: "ウォッチサーバよりお知らせします",
icon_url: "http://imgak.1mobile.com/group2/M00/26/E7/S36rZFMoT-mAeyE9AAL2y4L9Xm8291.png"
});

slack.notify(process.argv[2]+"がログインしたよ! IPアドレス:"+process.argv[3],function(err, result){
console.log(err, result);
});



実際に動いているか確認してみる

スクリーンショット 2014-08-06 222.png

こんな感じにSlackに表示されました。

これで不正アクセスがあってもすぐにわかってしまいますね!