fluentをインストールしてみる
インデックス
0.どんなもの?
1.インストール
2.設定-その1
3.設定-その2
0.どんなもの?
分散しているサーバーのログをかき集めて、一つのサーバーにかき集めることが出来るみたい
SPOFにもなっていないらしい。ログ形式は、JSONだったりするので、アプリケーションでの利用も
期待できるかと思われる。syslogdみたいなものと思えばいいかと。
ただ、受け取ったものをプラグインでごにょごにょ出来るみたい。
まぁ、やってみなきゃ分かんないんで、apacheのログをかき集めてみた
kmofs/messagepackやらを提供されいてるかたのツールだったりする
※とりあえず、備忘録代わりなので、設定は雑...
詳しくは
作成者のブログ
スライド
ドキュメント
1.インストール
sudo yum install openssl-devel.x86_64(サーバーに入ってなかった)
sudo yum install readline-devel.x86_64(サーバーに入ってなかった)
sudo rpm -ivh td-agent-1.0.3-0.el6.x86_64.rpm(rpm)
設定ファイルは、 /etc/td-agent/td-agent.conf ここに入る
起動方法は、/etc/init.d/td-agent start
設定ファイルの考え方が分かれば作りはめっちゃしんぷる
どのデータを受信して...<source>のディレクティブに書き込む
そのデータをどうするか...<match>のディレクティブに書き込む
2.設定-その1
とりあえず、wwwサーバのログをローカルに出力してみる
/etc/td-agent/td-agent.confをいじればいい
apacheのアクセスログをtailした情報に対して、tag(apache.access)をつける
そのデータをファイルに出力する<match>ディレクティブ
<source>
type tail
format apache
path /etc/httpd/logs/access_log # apacheのログがはき出されるファイル
tag apache.access
</source>
<match apache.access>
type file
path /tmp/%Y-%m-%d-%H.log
</match>
アパッチのログ出力をcombineに設定
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
ログの出力方法は、いろんな種類でも対応できるから、それは
ドキュメント見ればいい
これで、デーモン起動すればいける
3.設定-その2
wwwサーバが複数台あって、そのログを、ログ収集サーバーにかき集める
wwwサーバー側
apacheのアクセスログをtailした情報に対して、tag(apache.access)をつける
そのデータをtcp(24224)を通してhostに送る
iptablesで許可とかしてあげて、、、
<source>
type tail
format apache
path /etc/httpd/logs/access_log # apacheのログがはき出されるファイル
tag apache.access
</source>
<match apache.access>
type tcp
host XXXXX # ログ収集サーバーのホスト名
port 24224 # ログ収集サーバーがLISTENしているポート
buffer_type file
buffer_path /tmp/fluent_buf_myforward
flush_interval 10s
</match>
24224を通してきたデータを受信して、そのデータをファイルに出力する
ログ収集サーバー側
<source>
type tcp
port 24224
bind 0.0.0.0
</source>
<match apache.access>
type file
path /tmp/%Y-%m-%d-%H.log
</match>
こんなかんじ
暫くすると、ログ収集サーバの/tmp/配下にログが出力されるようになる。
設定がかなり適当な気がするが、とりあえず、またいじろう
apacheのアクセスログ以外もいろいろこの仕組みが利用できるから
かき集めてDBに書き出すような処理をやってみると色々幸せになるかも
SPOFになってなさそうなので、その試験もやろう
あとは、現サービスで実現できなかったことがこれを通して実現可能になるかだね
そこまで考えないとだめ。そこまで考えられるから楽しい・・・ってもんだ
インデックス
0.どんなもの?
1.インストール
2.設定-その1
3.設定-その2
0.どんなもの?
分散しているサーバーのログをかき集めて、一つのサーバーにかき集めることが出来るみたい
SPOFにもなっていないらしい。ログ形式は、JSONだったりするので、アプリケーションでの利用も
期待できるかと思われる。syslogdみたいなものと思えばいいかと。
ただ、受け取ったものをプラグインでごにょごにょ出来るみたい。
まぁ、やってみなきゃ分かんないんで、apacheのログをかき集めてみた
kmofs/messagepackやらを提供されいてるかたのツールだったりする
※とりあえず、備忘録代わりなので、設定は雑...
詳しくは
作成者のブログ
スライド
ドキュメント
1.インストール
sudo yum install openssl-devel.x86_64(サーバーに入ってなかった)
sudo yum install readline-devel.x86_64(サーバーに入ってなかった)
sudo rpm -ivh td-agent-1.0.3-0.el6.x86_64.rpm(rpm)
設定ファイルは、 /etc/td-agent/td-agent.conf ここに入る
起動方法は、/etc/init.d/td-agent start
設定ファイルの考え方が分かれば作りはめっちゃしんぷる
どのデータを受信して...<source>のディレクティブに書き込む
そのデータをどうするか...<match>のディレクティブに書き込む
2.設定-その1
とりあえず、wwwサーバのログをローカルに出力してみる
/etc/td-agent/td-agent.confをいじればいい
apacheのアクセスログをtailした情報に対して、tag(apache.access)をつける
そのデータをファイルに出力する<match>ディレクティブ
<source>
type tail
format apache
path /etc/httpd/logs/access_log # apacheのログがはき出されるファイル
tag apache.access
</source>
<match apache.access>
type file
path /tmp/%Y-%m-%d-%H.log
</match>
アパッチのログ出力をcombineに設定
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
ログの出力方法は、いろんな種類でも対応できるから、それは
ドキュメント見ればいい
これで、デーモン起動すればいける
3.設定-その2
wwwサーバが複数台あって、そのログを、ログ収集サーバーにかき集める
wwwサーバー側
apacheのアクセスログをtailした情報に対して、tag(apache.access)をつける
そのデータをtcp(24224)を通してhostに送る
iptablesで許可とかしてあげて、、、
<source>
type tail
format apache
path /etc/httpd/logs/access_log # apacheのログがはき出されるファイル
tag apache.access
</source>
<match apache.access>
type tcp
host XXXXX # ログ収集サーバーのホスト名
port 24224 # ログ収集サーバーがLISTENしているポート
buffer_type file
buffer_path /tmp/fluent_buf_myforward
flush_interval 10s
</match>
24224を通してきたデータを受信して、そのデータをファイルに出力する
ログ収集サーバー側
<source>
type tcp
port 24224
bind 0.0.0.0
</source>
<match apache.access>
type file
path /tmp/%Y-%m-%d-%H.log
</match>
こんなかんじ
暫くすると、ログ収集サーバの/tmp/配下にログが出力されるようになる。
設定がかなり適当な気がするが、とりあえず、またいじろう
apacheのアクセスログ以外もいろいろこの仕組みが利用できるから
かき集めてDBに書き出すような処理をやってみると色々幸せになるかも
SPOFになってなさそうなので、その試験もやろう
あとは、現サービスで実現できなかったことがこれを通して実現可能になるかだね
そこまで考えないとだめ。そこまで考えられるから楽しい・・・ってもんだ