20160522日記: 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 ``` で以下のように書く ``` 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' }) ```