Fluentd + Elasticsearch + Kibana

Fluentd 1,2の違い

2015年6月現在は1と2の二つのバージョンが並行してリリースされている

td-agent 1

・現在はold stable
・同梱しているRuby 1.9.3が2015年2月にサポートが終了している

td-agent 2

・現在リリースされているstable版
・コアライブラリがアップデートされることもあり
・サポート環境が1よりも多い(DebianやMacも)
・Fluentd UIも利用可能

インストール -fluentd-

### 事前準備 ###
[root@ip-172-32-0-221 src]# vi /etc/security/limits.conf
===
# 以下を追加
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
===
[root@ip-172-32-0-221 src]# reboot
...
[root@ip-172-32-0-221 src]# ulimit -n
65536

### インストール ###
[root@ip-172-32-0-221 src]# curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
...
インストール:
  td-agent.x86_64 0:2.2.0-0

完了しました!

[root@ip-172-32-0-221 src]# chkconfig --list td-agent
td-agent        0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@ip-172-32-0-221 src]# chkconfig td-agent on
[root@ip-172-32-0-221 src]# chkconfig --list td-agent
td-agent        0:off   1:off   2:on    3:on    4:on    5:on    6:off

### 取り込むファイルによっては起動ユーザをtd-agentからrootに変更する ###
[root@ip-172-32-0-221 src]# vi /etc/init.d/td-agent
...
#DAEMON_ARGS=${DAEMON_ARGS---user td-agent}
#TD_AGENT_ARGS="${TD_AGENT_ARGS-/usr/sbin/td-agent --group td-agent --log /var/log/td-agent/td-agent.log --use-v1-config}"
DAEMON_ARGS=${DAEMON_ARGS---user root}
TD_AGENT_ARGS="${TD_AGENT_ARGS-/usr/sbin/td-agent --group root --log /var/log/td-agent/td-agent.log --use-v1-config}"
...

### プラグインのインストール ###
[root@ip-172-32-0-221 src]# /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
...
Done installing documentation for elasticsearch, elasticsearch-api, elasticsearch-transport, excon, faraday, fluent-plugin-elasticsearch, multipart-post after 4 seconds
7 gems installed

後にインストールするtd-agent-UIを利用して、プラグインをインストールすることも可能
2015-06-21_001823

td-agent-UI

[root@ip-172-32-0-221 src]# /opt/td-agent/usr/sbin/td-agent-ui start
Puma 2.11.0 starting...
* Min threads: 0, max threads: 16
* Environment: production
* Listening on tcp://0.0.0.0:9292
...

### フォアグラウンドで起動するため、バックグラウンドで動作するようにする ###
# supervisorは<a href="http://tech.akat.info/?p=1931">インスト-ル済</a>とする
[root@ip-172-32-0-221 src]# vi /etc/supervisor/conf.d/td-agent-ui.conf
[program:td-agent-ui]
user=root
command=td-agent-ui start
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s_error.log
numprocs = 1
stdout_logfile_maxbytes = 10MB
stderr_logfile_maxbytes = 10MB
stdout_logfile_backups = 5
stderr_logfile_backups = 5
autostart = true
autorestart = true
; http://webos-goodies.jp/archives/deploying_tornado_with_supervisord.html
; ここに指定した秒数より早く終了したら、終了コードにかかわらず起動失敗とみなす(default:1)
startsecs = 3
; 起動に失敗した場合にリトライする回数(default:3)
startretries = 3
priority = 10

[root@ip-172-32-0-221 src]# /usr/local/bin/supervisorctl start td-agent-ui
td-agent-ui: started

[root@ip-172-32-0-221 src]# /usr/local/bin/supervisorctl status
td-agent-ui                      RUNNING   pid 28644, uptime 0:00:05

fluentd設定

9292ポートにアクセスする
・アカウント名 : admin
・パスワード : changeme
でログイン可能
2015-06-20_162400

初期設定(pidファイルやログの場所を設定)
2015-06-20_162554

ソースと出力先を設定する
2015-06-21_001001

@todo
http://docs.fluentd.org/recipe/nginx/elasticsearch
この通りにしたらうまくいった
http://toshihirock.blogspot.jp/2015/04/fluentd-v2elasticsearchkibana3ec2.html
http://hivecolor.com/id/37
http://inokara.hateblo.jp/entry/2013/11/30/104023
↑これも確認する

kibana設定

インストールについては割愛

@todo

参考URL

Treasure Agent(td-agent)の1と2の今後
http://qiita.com/repeatedly/items/c8107bc8ba5ba01133f8
td-agent2をAmazon Linuxで実行する
http://dev.classmethod.jp/cloud/td-agent2-amazon-linux/
Check! はじめての fluentd を Amazon Linux で動かしてみる (ログを PHP から送る)
http://qiita.com/dz_/items/960319ffffa0d7355f8c
td-agent2をAmazon Linuxで実行する
http://dev.classmethod.jp/cloud/td-agent2-amazon-linux/

@todo メモ

基礎の習得

死活監視
fluent-prugin-ping-message

リソース監視
monitor_agent

バッファをフラッシュしてから終了するようにするべし

ただOutputプラグインを呼び出すと
BufferやQueueに入ることはない

★中身を閲覧したい場合は
 fluent-tail コマンドを利用するべし

★elasticsearch のindexを活かせるように

fluent-catでログの流れを試す

tailの場合はすべて文字列として認識される
elasticsearchは動的に型を判断するため、
codeはinteglarなど決めておく必要がある
(fluent-plugin-typecast)を利用するべし

1件のコメントがあります

  1. shimizu

    supervisorで起動すると停止時に問題が発生します

    /usr/sbin/td-agent-ui start > /var/log/td-agent-ui &
    でバックグラウンド起動がよさそうです

コメントは受け付けていません。