Version 3 (modified by yuna, 9 years ago) (diff) |
---|
Fluentでログ管理
CentOSにFluentdをインストール
下記のコマンドを叩くと、Fluentd開発元のTreasuredata謹製のFluentdがインストールされる。
$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
プロキシ経由でWebにアクセスする場合は、/etc/yum.confにプロキシの設定を記述する。
/etc/init.d/td-agent start
でFluentdのエージェントが起動。
使ってみる
HTTP経由でログ出力、
$ curl -X POST -d 'json={"post":"message"}' http://localhost:8888/debug.post
fluent-catを利用してログ出力
$ echo '{"cat":"message"}' |/opt/td-agent/embedded/bin/fluent-cat --json debug.cat
/var/log/td-agent/td-agent.logにログが出力される。
2015-11-07 12:53:46 +0900 debug.post: {"post":"message"} 2015-11-07 12:54:18 +0900 debug.cat: {"cat":"message"}
OpenStackのログを管理してみる
例えば、こんな感じのログがあるとする。
2014-05-21 13:01:55.215 6322 INFO nova.osapi_compute.wsgi.server [-] (6322) accepted ('192.168.66.128', 42247) 2014-05-21 13:01:55.968 6322 DEBUG nova.api.openstack.wsgi [-] No Content-Type provided in request get_body /usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py:835 2014-05-21 13:01:55.998 6322 DEBUG nova.api.openstack.wsgi [-] Calling method <bound method Versions.multi of <nova.api.openstack.compute.versions.Versions object at 0x3908150>> _process_stack /usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py:962 2014-05-21 13:01:56.286 6322 INFO nova.osapi_compute.wsgi.server [-] 192.168.66.128 "GET /v237da0ad900aa4119bc743d59975e1bce/images/detail HTTP/1.1" status: 300 len: 486 time: 0.6088369
Fluentdは、正規表現を利用してログを解析し、タグ(属性)をつけて保存することができる。
<source> type tail path /var/log/nova/nova-api.log pos_file /var/log/td-agent/nova-api.log.pos tag nova-api.log format /^(?<date>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3} \d{4}) (?<level>[^ ]*) (?<class>[^ ]*) \[(?<tag>[^ ]*)] (?<message>.*)$/ </source> <match nova-api.log> type file path /var/log/td-agent/openstack.log </match>
/var/log/td-agent/openstack.log.xxx ファイルにログが書き出されるようになる。他のマシンにログを転送する場合は、fowardを設定する。
<match nova-api.**> type forward host logserver </match>
転送されたログサーバで、matchルールを記述すれば、ログに出力できる。