Fluentd, elasticsearch, kibanaを使ってFuelPHPのログを収集するメモ。
Fluentd, elasticsearch, kibanaの導入はここを参考にしました。
実際にデータの出力はこちらを参考にしました。
fuelphpのログは、デフォルトでこんな感じで出力される。
1 |
INFO - 2016-02-09 17:54:38 --> Fuel\Core\Request::execute - Setting main Request |
なので、フォーマットはこう
1 |
/^(?<level>[^ ]*) - (?<time>[^ ]* [^ ]*) --> (?<class_name>[^ ]*) - (?<message>[^ ]*) $/ |
日付フォーマットはこう
1 |
%Y-%m-%d %H:%M:%S |
上記を踏まえて、td-agent.confの設定を変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<source> type tail path /var/www/vhosts/xxxx/fuel/app/logs/*/*/*.log format /^(?<level>[^ ]*) - (?<time>[^ ]* [^ ]*) --> (?<class_name>[^ ]*) - (?<message>[^ ]*) $/ time_format %Y-%m-%d %H:%M:%S log_level info pos_file /var/log/td-agent/xxxxx.log.pos tag fuelphp.applog </source> <match fuelphp.applog> type elasticsearch host localhost port 9200 type_name application-log logstash_format true </match> |
td-agent.confのsourceディレクティブの説明
type | |
path | fuelphpのログファイルのパス |
format | ログのフォーマット |
time_format | 日付のフォーマット |
log_level | 対象のログレベル debugは対象外とするため |
pos_file | 読み込み位置を覚えておくためのファイルを指定 |
tag | イベントのタグ名 |
td-agent.confのmatchディレクティブの説明
type | fluentd-plugin-elasticsearchを指定 |
host | 転送先のホスト |
port | 転送先のポート番号 |
type_name | elasticsearchに書き込む際のドキュメントのタイプ |
logstash_format | kibanaで利用するためにindexの形式を整えるため |
あとは、td-agentを再起動して、kibanaを見てみるとログが収集されていると思います。
Comments are closed