| 1 | = Fluentでログ管理 |
| 2 | |
| 3 | == CentOSにFluentdをインストール |
| 4 | |
| 5 | 下記のコマンドを叩くと、Fluentd開発元のTreasuredata謹製のFluentdがインストールされる。 |
| 6 | |
| 7 | {{{ |
| 8 | $ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh |
| 9 | }}} |
| 10 | |
| 11 | プロキシ経由でWebにアクセスする場合は、/etc/yum.confにプロキシの設定を記述する。 |
| 12 | |
| 13 | {{{ |
| 14 | /etc/init.d/td-agent start |
| 15 | }}} |
| 16 | |
| 17 | でFluentdのエージェントが起動。 |
| 18 | |
| 19 | == 使ってみる |
| 20 | |
| 21 | HTTP経由でログ出力、 |
| 22 | |
| 23 | {{{ |
| 24 | $ curl -X POST -d 'json={"post":"message"}' http://localhost:8888/debug.post |
| 25 | }}} |
| 26 | |
| 27 | fluent-catを利用してログ出力 |
| 28 | {{{ |
| 29 | $ echo '{"cat":"message"}' |/opt/td-agent/embedded/bin/fluent-cat --json debug.cat |
| 30 | }}} |
| 31 | |
| 32 | /var/log/td-agent/td-agent.logにログが出力される。 |
| 33 | |
| 34 | {{{ |
| 35 | 2015-11-07 12:53:46 +0900 debug.post: {"post":"message"} |
| 36 | 2015-11-07 12:54:18 +0900 debug.cat: {"cat":"message"} |
| 37 | }}} |
| 38 | |
| 39 | == OpenStackのログを管理してみる |
| 40 | |
| 41 | 例えば、こんな感じのログがあるとする。 |
| 42 | {{{ |
| 43 | 2014-05-21 13:01:55.215 6322 INFO nova.osapi_compute.wsgi.server [-] (6322) accepted ('192.168.66.128', 42247) |
| 44 | 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 |
| 45 | 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 |
| 46 | 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 |
| 47 | }}} |
| 48 | |
| 49 | Fluentdは、正規表現を利用してログを解析し、タグ(属性)をつけて保存することができる。 |
| 50 | |
| 51 | {{{ |
| 52 | <source> |
| 53 | type tail |
| 54 | path /var/log/nova/nova-api.log |
| 55 | pos_file /var/log/td-agent/nova-api.log.pos |
| 56 | tag nova-api.log |
| 57 | format /^(?<date>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3} \d{4}) (?<level>[^ ]*) (?<class>[^ ]*) \[(?<tag>[^ ]*)] (?<message>.*)$/ |
| 58 | </source> |
| 59 | |
| 60 | <match nova-api.log> |
| 61 | type stdout |
| 62 | </match> |
| 63 | }}} |