Nginxのログを外部のFluentdに転送する検証をしてみます。
log_format ltsv 'time:$time_iso8601\t'
'remote_addr:$remote_addr\t'
'request:$request\t'
'request_method:$request_method\t'
'request_length:$request_length\t'
'request_uri:$request_uri\t'
'uri:$uri\t'
'query_string:$query_string\t'
'status:$status\t'
'bytes_sent:$bytes_sent\t'
'body_bytes_sent:$body_bytes_sent\t'
'referer:$http_referer\t'
'useragent:$http_user_agent\t'
'forwardedfor:$http_x_forwarded_for\t'
'request_time:$request_time\t'
'upstream_response_time:$upstream_response_time';
access_log /var/log/nginx/access.log ltsv;
ログファイルのフォーマットは上記のようにtabで区切られたltsv形式を採用します。
WEBサーバのアクセスログに適しているようです。
[root@nginx01 ~]# less /var/log/nginx/access.log
・
・
・
time:2016-04-06T00:58:33+09:00 remote_addr:172.17.9.91 request:GET / HTTP/1.1 request_method:GET request_length:402 request_uri:/ uri:/index.html query_string:- status:304 bytes_sent:180 body_bytes_sent:0 referer:- useragent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 forwardedfor:- request_time:0.000 upstream_response_time:-
このようなログになります。
[root@nginx01 ~]# cat /etc/yum.repos.d/treasuredata.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0
[root@nginx01 ~]# yum --enablerepo=treasuredata install td-agent
・
・
・
インストール:
td-agent.x86_64 0:1.1.21-0
依存性関連をインストールしました:
compat-libtermcap.x86_64 0:2.0.8-49.el6 compat-readline5.x86_64 0:5.2-17.1.el6
openssl098e.x86_64 0:0.9.8e-18.el6_5.2 td-libyaml.x86_64 0:0.1.4-1
完了しました!
公式のレポジトリを使用してnginx側にもfluentdをインストールします。
[root@nginx01 ~]# chkconfig td-agent on
[root@nginx01 ~]# /usr/lib64/fluent/ruby/bin/fluent-gem update
サービスの起動設定、fluentdプラグインのインストールを行ないます。
[root@nginx01 ~]# vi /etc/td-agent/td-agent.conf
<source>
type tail
path /var/log/nginx/access.log
pos_file /var/log/td-agent/buffer/access.log.pos
format none
tag nginx.access
</source>
<match *.**>
type forward
retry_limit 5
flush_interval 5s
<server>
host 192.168.200.2
port 24224
</server>
</match>
nginxのログファイルを外部のfluentdサーバに転送する設定ファイルを作成します。
[root@nginx01 ~]# mkdir /var/log/td-agent/buffer
[root@nginx01 ~]# touch /var/log/td-agent/buffer/access.log.pos
[root@nginx01 ~]# chmod 777 /var/log/td-agent/buffer/access.log.pos
posファイルは自動的に作成されないので、この時点で作成します。
log_format ltsv 'time:$time_iso8601\t'
'remote_addr:$remote_addr\t'
'request:$request\t'
'request_method:$request_method\t'
'request_length:$request_length\t'
'request_uri:$request_uri\t'
'uri:$uri\t'
'query_string:$query_string\t'
'status:$status\t'
'bytes_sent:$bytes_sent\t'
'body_bytes_sent:$body_bytes_sent\t'
'referer:$http_referer\t'
'useragent:$http_user_agent\t'
'forwardedfor:$http_x_forwarded_for\t'
'request_time:$request_time\t'
'upstream_response_time:$upstream_response_time';
access_log /var/log/nginx/access.log ltsv;
ログファイルのフォーマットは上記のようにtabで区切られたltsv形式を採用します。
WEBサーバのアクセスログに適しているようです。
[root@nginx01 ~]# less /var/log/nginx/access.log
・
・
・
time:2016-04-06T00:58:33+09:00 remote_addr:172.17.9.91 request:GET / HTTP/1.1 request_method:GET request_length:402 request_uri:/ uri:/index.html query_string:- status:304 bytes_sent:180 body_bytes_sent:0 referer:- useragent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 forwardedfor:- request_time:0.000 upstream_response_time:-
このようなログになります。
[root@nginx01 ~]# cat /etc/yum.repos.d/treasuredata.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0
[root@nginx01 ~]# yum --enablerepo=treasuredata install td-agent
・
・
・
インストール:
td-agent.x86_64 0:1.1.21-0
依存性関連をインストールしました:
compat-libtermcap.x86_64 0:2.0.8-49.el6 compat-readline5.x86_64 0:5.2-17.1.el6
openssl098e.x86_64 0:0.9.8e-18.el6_5.2 td-libyaml.x86_64 0:0.1.4-1
完了しました!
公式のレポジトリを使用してnginx側にもfluentdをインストールします。
[root@nginx01 ~]# chkconfig td-agent on
[root@nginx01 ~]# /usr/lib64/fluent/ruby/bin/fluent-gem update
サービスの起動設定、fluentdプラグインのインストールを行ないます。
[root@nginx01 ~]# vi /etc/td-agent/td-agent.conf
<source>
type tail
path /var/log/nginx/access.log
pos_file /var/log/td-agent/buffer/access.log.pos
format none
tag nginx.access
</source>
<match *.**>
type forward
retry_limit 5
flush_interval 5s
<server>
host 192.168.200.2
port 24224
</server>
</match>
nginxのログファイルを外部のfluentdサーバに転送する設定ファイルを作成します。
[root@nginx01 ~]# mkdir /var/log/td-agent/buffer
[root@nginx01 ~]# touch /var/log/td-agent/buffer/access.log.pos
[root@nginx01 ~]# chmod 777 /var/log/td-agent/buffer/access.log.pos
posファイルは自動的に作成されないので、この時点で作成します。
