
ログ送信といえば伝統的なsyslogがありますが、なうなヤングにはfluentdを使ってSlackなどのチャットツールに通知したり、ログ分析基盤のElasticsearchと連携、Kibanaでグラフによる可視化が出来るなど馬鹿ウケです。
そんな今回はWEBサーバにfluentdのエージェントを導入して、fluentd ログ集約サーバにログを転送してみましょ~。
WEBサーバ側
まずはApache WEBサーバをインストールしてみましょう。
| 
					 1 2 3 4  | 
						# yum install httpd httpd-devel # systemctl start httpd # systemctl enable httpd  | 
					
td-agentを公式推奨方法でインストールします。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24  | 
						# curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh Installed:   td-agent.x86_64 0:2.3.6-0.el7 Dependency Installed:   at.x86_64 0:3.1.13-22.el7                                   avahi-libs.x86_64 0:0.6.31-17.el7   bc.x86_64 0:1.06.95-13.el7                                  cups-client.x86_64 1:1.6.3-29.el7   cups-libs.x86_64 1:1.6.3-29.el7                             ed.x86_64 0:1.9-4.el7   m4.x86_64 0:1.4.16-10.el7                                   mailx.x86_64 0:12.5-16.el7   patch.x86_64 0:2.7.1-8.el7                                  psmisc.x86_64 0:22.20-15.el7   redhat-lsb-core.x86_64 0:4.1-27.el7.centos.1                redhat-lsb-submod-security.x86_64 0:4.1-27.el7.centos.1   spax.x86_64 0:1.5.2-13.el7                                  time.x86_64 0:1.7-45.el7 Complete! Installation completed. Happy Logging! NOTE: In case you need any of these:   1) security tested binary with a clear life cycle management   2) advanced monitoring and management   3) support SLA Please check Fluentd Enterprise (https://www.treasuredata.com/fluentd/).  | 
					
起動しましょう。
| 
					 1 2  | 
						# systemctl start td-agent # systemctl enable td-agent  | 
					
テストしましょうね。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | 
						[root@ip-172-31-16-106 ~]# curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test [root@ip-172-31-16-106 ~]# tail -f /var/log/td-agent/td-agent.log   </source>   <source>     @type debug_agent     bind 127.0.0.1     port 24230   </source> </ROOT> 2018-01-04 10:19:25 +0000 [info]: listening fluent socket on 0.0.0.0:24224 2018-01-04 10:19:25 +0000 [info]: listening dRuby uri="druby://127.0.0.1:24230" object="Engine" 2018-01-04 10:27:51 +0000 debug.test: {"json":"message"}  | 
					
ログが表示されたらOKです。
Apacheログのパーミッション設定を行いましょう。
| 
					 1  | 
						# chmod o+x /var/log/httpd  | 
					
td-agentの設定ファイルを設定します。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  | 
						# vi /etc/td-agent/td-agnet.conf <source>   type tail   path /var/log/httpd/access_log   tag apache.access   pos_file /var/log/td-agent/access_log.pos   format apache2 </source> <match apache.access>   type file   path /var/log/td-agent/httpd/access.log   time_slice_format %Y%m%d   time_slice_wait 10m   compress gzip </match>  | 
					
反映させましょう。
| 
					 1  | 
						# systemctl restart td-agent  | 
					
ファイルが出来てたら中身を確認して下さいね!
| 
					 1 2 3 4 5 6  | 
						# ls -laht /var/log/td-agent/httpd/ total 68K -rw-r--r-- 1 td-agent td-agent 66K Jan  4 10:41 access.log.20180104.b561f0f5384a87574 drwxr-xr-x 2 td-agent td-agent  51 Jan  4 10:40 . drwxr-xr-x 4 td-agent td-agent  75 Jan  4 10:38 ..  | 
					
これでローカル内でApacheのログをtd-agentに渡せていることが分かります。
Fluentd ログサーバに転送する
WEBサーバ側
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  | 
						# vi /etc/td-agent/td-agent.conf <source>   type tail   path /var/log/httpd/access_log   tag apache.access   pos_file /var/log/td-agent/access_log.pos   format apache2 </source> #<match apache.access> #  type file #  path /var/log/td-agent/httpd/access.log #  time_slice_format %Y%m%d #  time_slice_wait 10m #  compress gzip #</match> <match **>   type forward   <server>     host 172.31.23.254     port 24224   </server> </match>  | 
					
反映しましょう!
| 
					 1  | 
						# systemctl restart td-agent  | 
					
fluentdログサーバ側
| 
					 1  | 
						# curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh  | 
					
| 
					 1 2  | 
						# cp /etc/td-agent/td-agent.conf /etc/td-agent/td-agent.conf.org # rm -f /etc/td-agent/td-agent.conf  | 
					
受信する設定を行いましょう。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13  | 
						# vi /etc/td-agent/td-agent.conf <source>     type forward     port 24224     bind 0.0.0.0 </source> <match **>     type file     path /var/log/fluentd/out </match>  | 
					
ディレクトリ設定
| 
					 1 2  | 
						# mkdir /var/log/fluentd # chown td-agent:td-agent /var/log/fluentd  | 
					
起動による反映
| 
					 1 2  | 
						# systemctl restart td-agent # systemctl enable td-agent  | 
					
| 
					 1 2 3  | 
						# tail -f /var/log/fluentd/out.*****(>▽<)****** 2018-01-04T14:32:34+00:00       apache.access   {"host":"xxx.xxx.xxx.xxx","user":null,"method":"GET","path":"/noindex/css/fonts/Bold/OpenSans-Bold.ttf","code":404,"size":238,"referer":"http://yyy.yyy.yyy.yyy/noindex/css/open-sans.css","agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.xxx.yyy.84 Safari/537.36"}  | 
					
ログが流れてきたらおーけですね。
お疲れ様です。
					        
              