今時Fluentd使った事無いとか、ありえない的な空気が漂ったので、とりあえず試しにfluentd使ってnginxのログを溜め込むようにしてみました。
ということで、とりあえずCentOS→CentOSにログ転送するようにしました。
早速インストール
1
2
3
4
5
6
7
|
# vim /etc/yum.repos.d/td.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0
# yum install td-agent
|
そう、fluentdは超絶簡単にインストールできる激アツなライブラリなわけです。
これを2代分設定しましょう。
んで、転送する側(実際にnginx動いてる側)で以下のように設定を書きます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<source>
type tail
format /^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)" (?<response_time>[^ ]*))?$/
time_format %d/%b/%Y:%H:%M:%S %z
path /var/log/nginx/polidog/www_access.log
tag nginx.access.polidog
</source>
<match nginx.access.**>
type forward
<server>
host 49.212.2.229
port 24224
</server>
flush_interval 300s
</match>
|
んで、転送を受信する側には以下のように設定
1
2
3
4
5
6
7
8
9
10
11
12
|
<source>
type forward
port 24224
</source>
<match nginx.access.**>
type file
time_slice_format %Y%m%d_%H%M
time_slice_wait 30s
time_format %Y-%m-%d %H:%M:%S
path /var/log/td-agent/polidog.nginx.log
</match>
|
これだけで簡単に転送自体はできちゃいます。
タグ付けでいろいろと管理できるのも便利だし、これは実際の現場でも相当使えるかと思います。
てかソーシャルアプリのログ参照系とか、お問い合わせ対応とか便利そーだねー。
僕も現場でログはとってるけど実際にちゃんと観る環境が作れないってことが多々あって、いざ必要ってときにログが確認できないとかそういう事がよくあります。
GrowthForecastと組み合わせれば大分面白そうだなーと思いました。
明日あたりに試してみたいと思います。