fluentd + slackでsshのログイン状態を監視 ************************************************** いまどき、chatopsが叫ばれているが、chatからの命令を受け取るだけではなく、 chatに状態を表示したい。 chatは即時通達の手段であって、目的ではない。同時にfluentd + kibanaでログ解析ができるようにする。 syslog_ngのインストール =============================== syslogを使う以上、syslogdは必要となる。 今回はauth_logを用いるので必然性はないが、今後のために入れておく。 これを行うことで、hostベースやファシリティベースでのログファイルの分離が 可能になり、以後の解析や連携に役立つ。 :: sudo aptitude install syslog-ng sudo vi /etc/syslog-ng/syslog-ng.conf > 以下のようにinternal()のあとにudp追加。 source s_src { unix-dgram("/dev/log"); internal(); udp(); file("/proc/kmsg" program_override("kernel")); }; 次に、Configの読み込みを行う。 :: sudo service syslog-ng restart logger -n 127.0.0.1 -p local1.debug hoge tail /var/log/debug として、メッセージが残っていればOK Javaのインストール ============================= Fluentdなどに必要なのでいれる。 :: sudo apt-get install ruby software-properties-common sudo add-apt-repository -y ppa:webupd8team/java sudo apt-get update sudo apt-get -y install oracle-java8-installer パッケージのインストール 5.0 ======================================== :: wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://packages.elastic.co/elasticsearch/5.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-5.x.list sudo apt-get -y update && sudo apt-get -y install elasticsearch sudo update-rc.d elasticsearch defaults 95 10 sudo service elasticsearch start # kibana cd /tmp wget https://download.elastic.co/kibana/kibana/kibana-5.0.0-alpha4-amd64.deb dpkg -i kibana-5.0.0-alpha4-amd64.deb sudo update-rc.d kibana defaults 95 10 sudo /etc/init.d/kibana restart # logstash wget https://download.elastic.co/logstash/logstash/packages/debian/logstash-5.0.0-alpha4.deb dpkg -i logstash-5.0.0-alpha4.deb パッケージのインストール ======================================== :: # ElasticSearchのrepoとか wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list sudo apt-get -y update && sudo apt-get -y install elasticsearch # td-agentいれる curl -L https://td-toolbelt.herokuapp.com/sh/install-ubuntu-trusty-td-agent2.sh | sh sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch # kibanaいれる echo "deb http://packages.elastic.co/kibana/4.5/debian stable main" | sudo tee -a /etc/apt/sources.list sudo apt-get update && sudo apt-get install kibana sudo update-rc.d kibana defaults 95 10 sudo update-rc.d elasticsearch defaults 95 10 sudo service elasticsearch start sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-slack sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-grep sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-copy sudo /etc/init.d/kibana restart # http://192.168.78.2:5601/ などにアクセスしてkibanaが見えることを確認 SSHのログ用のConfig ============================== :: sudo vi /etc/td-agent/td-agent.conf で以下のように書く .. literalinclude:: Src/authlog_tdagent.txt :linenos: :: sudo chmod 777 /var/log/auth.log sudo /etc/init.d/td-agent configtest sudo /etc/init.d/td-agent restart # sudo usermod -G adm,td-agent td-agent Fluentdのテスト(試験用) ==================================== :: sudo apt-get install python-pip pip install fluent-logger :: from fluent import sender from fluent import event sender.setup('slack.test', host='localhost', port=24224) event.Event('follow', { 'message': 'hogehoge', 'to': 'userB' })