CentOS7.1にFluentd+ElasticSearch+Kibana4をインストールする
まずは準備
ここからasticsearch, kibana, logstashをダウンロード、現時点の最新版を取りましょう
# wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.1.1/elasticsearch-2.1.1.rpm
# wget https://download.elastic.co/kibana/kibana/kibana-4.3.1-linux-x64.tar.gz
# wget https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.1.1-1.noarch.rpm
Java SE Runtime Environment 8 の 最新RPMパッケージをダウンロードして、インストール
https://java.com/ja/download/manual.jsp
※今回は、jre-8u71-linux-x64.rpm をインストール
# rpm -ivh jre-8u71-linux-x64.rpm
elasticsearchのインストール
# rpm -ivh elasticsearch-2.1.1.rpm
# sudo systemctl daemon-reload
# sudo systemctl enable elasticsearch.service
設定ファイルの末尾に以下を追加。kibana連携に必要
# enable cross-origin resource sharing
http.cors.enabled: true
起動 # sudo systemctl start elasticsearch.service
logstashのインストール
# rpm -ivh logstash-2.1.1-1.noarch.rpm
kibanaのインストール
# tar vxf kibana-4.3.1-linux-x64.tar.gz
# mv kibana-4.3.1-linux-x64 /opt/kibana
kibanaの起動スクリプトを拝借
# vi /etc/rc.d/init.d/kibana
#!/bin/sh
### BEGIN INIT INFO
# Provides: kibana
# Required-Start: $local_fs $remote_fs $network
# Should-Start: $time
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Kibana 4
# Description: Service controller for Kibana 4
### END INIT INFO
INSTALLED_DIR=/opt/kibana
EXEC_SCRIPT="$INSTALLED_DIR/bin/kibana"
LOG_DIR=/var/log/kibana
PID_DIR=/var/run
PID_FILE="$PID_DIR"/kibana.pid
LOG_FILE="$LOG_DIR"/kibana.log
test -d $LOG_DIR || mkdir $LOG_DIR
# Source function library.
. /etc/init.d/functions
RETVAL=0
case "$1" in
start)
if [ ! -f "$PID_FILE" ]; then
echo -n "Starting Kibana"
nohup $EXEC_SCRIPT 0<&- &> $LOG_FILE &
echo $! > $PID_FILE
success
else
echo -n "Kibana is already running"
RETVAL=1
failure
fi
echo
;;
stop)
if [ -f "$PID_FILE" ]; then
echo -n "Stopping Kibana"
test -f $PID_FILE && cat $PID_FILE | xargs kill -s SIGKILL && rm -f $PID_FILE
success
else
echo -n "Kibana is not running"
RETVAL=1
failure
fi
echo
;;
restart)
$0 stop
$0 start
;;
reload)
$0 restart
;;
status)
status kibana
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
;;
esac
exit $RETVAL
起動スクリプトの実行権限を追加
# chmod 755 /etc/rc.d/init.d/kibana
サービス起動
# systemctl start kibana
アクセス
ブラウザから http://[IP address]:5601/kibanaにアクセスすると、kibanaの設定画面が表示されます。 (firewallの設定は適宜...)
Fluentd (td-agent 2.3.0) インストール
最新版をインストール
# curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
サービス起動
# systemctl start td-agent
# systemctl enable td-agent
あとは、後でElasticsearchにデータを転送できるようにするために、連携用のfluent-plugin-elasticsearchプラグインをインストールしておく。 プラグインはfluent-gemコマンドでインストールできる。
# /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
Fetching: elasticsearch-api-1.0.15.gem (100%)
Successfully installed elasticsearch-api-1.0.15
Fetching: multipart-post-2.0.0.gem (100%)
Successfully installed multipart-post-2.0.0
Fetching: faraday-0.9.2.gem (100%)
Successfully installed faraday-0.9.2
Fetching: elasticsearch-transport-1.0.15.gem (100%)
Successfully installed elasticsearch-transport-1.0.15
Fetching: elasticsearch-1.0.15.gem (100%)
Successfully installed elasticsearch-1.0.15
Fetching: excon-0.45.4.gem (100%)
Successfully installed excon-0.45.4
Fetching: fluent-plugin-elasticsearch-1.3.0.gem (100%)
Successfully installed fluent-plugin-elasticsearch-1.3.0
Parsing documentation for elasticsearch-1.0.15
Installing ri documentation for elasticsearch-1.0.15
Parsing documentation for elasticsearch-api-1.0.15
Installing ri documentation for elasticsearch-api-1.0.15
Parsing documentation for elasticsearch-transport-1.0.15
Installing ri documentation for elasticsearch-transport-1.0.15
Parsing documentation for excon-0.45.4
Installing ri documentation for excon-0.45.4
Parsing documentation for faraday-0.9.2
Installing ri documentation for faraday-0.9.2
Parsing documentation for fluent-plugin-elasticsearch-1.3.0
Installing ri documentation for fluent-plugin-elasticsearch-1.3.0
invalid options: -SHN
(invalid options are ignored)
Parsing documentation for multipart-post-2.0.0
Installing ri documentation for multipart-post-2.0.0
Done installing documentation for elasticsearch, elasticsearch-api, elasticsearch-transport, excon, faraday, fluent-plugin-elasticsearch, multipart-post after 6 seconds
7 gems installed
試しにfluentにメッセージを飛ばしてログを見る
# curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
以下のようなログが出力される。
# cat /var/log/td-agent/td-agent.log
2016-01-28 21:08:17 +0900 debug.test: {"json":"message"}
以上で構築は完了です、次は実際にログの収集、解析をして見たいと思います。