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'
})