Slack
td-agent2

td-agentを使ってauth.logのInvalidログをslackに投げる

はじめに

やりたいことは、td-agentを使ってauth.logのInvalidログをslackに投げる、です。
ようするにsshできた、怪しいやつを監視したい!

実行環境

Ubuntu 16.04.2 LTS

必要なものをinstallする

curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-xenial-td-agent2.sh | sh 
sudo /usr/sbin/td-agent-gem install fluent-plugin-slack
sudo /usr/sbin/td-agent-gem install fluent-plugin-rewrite-tag-filter

td-agent.contを書く

/etc/td-agent/td-agent.conf
<source>
  @type tail
  path /var/log/auth.log
  tag auth.raw
  format /^(?<message>.*)$/
</source>

<match auth.raw>
  @type rewrite_tag_filter
  rewriterule1 message ^.*Invalid.*$ auth.access
</match>

<match auth.access>
 @type slack
 webhook_url https://hooks.slack.com/services/xxxx/xxxx
 channel hope
 username hoge
 icon_emoji :ghost:
 flush_interval 10s
 message_keys message
 message "%s"
</match>

権限をよしなにする

/etc/init.d/td-agent
TD_AGENT_USER=root
TD_AGENT_GROUP=root

/etc/init.d/td-agentの実行ユーザーを変えなければならないのがわからず、/var/log/auth.logを666で試して行けたんだけど、権限ダメだよなーどうやって変えるんだろう、って思ってちょっとハマった.

restart

sudo systemctl daemon-reload
sudo systemctl restart td-agent

終わり

これは ネットワークシステム特別講義2の授業で+αの項目で扱いました。
今の現場もそうでしたが、実際のプロジェクトだとこういうのはすでに使われていて、自分で一からやる機会はほぼないので、権限周りでハマったりなどはわりと学びがありました:ok_woman: