Fluentd casual
- 2. 自己绍介
id:oranie
@oranie
? サイバーエージェント グループ子会社で、グループ内でも余り知ら
れていないシステムでなんか色々やる簡単なお仕事しています。
? 緑色のみんながよく知っているサービスの裏側とかは全く知らない
です!聞かないで下さい!
? カジュアル枠として参戦でございます。優しくしてね!
- 10. 旧构成(と言っても今も动いている)
Webサーバ
日次処理によるログ退避
集約サーバ
DBサーバ
各Webサーバの生Apacheログをパー
ス、追加情報を付与して整形する 各log_data{yyyymm}テーブルを元に
日次、月次での各テー 解析用のテーブルとか分割したテーブ
ル作る
ブル作成、及び集計処
理を実行
必要な元ネタテーブルが作成完了した
DBにINSERTする
ら、各集計用スクリプトを実行し、それぞ
れのテーブルを更新して行く
- 14. 思いつくままに
●設定が面倒くさい。
● syslog-ngはオワコンくさい。
(2年前くらいから経路機器のログ集約で使ってますよ。ちくしょう!)
●デフォだから逆に使いたくない。
(設定問題でkernelが出すmessageログとかに支障を出したくない)
●今の仕組み変えなきゃいけない。
● cronのタイムラグ。サイズが大きくなると差分だけ欲しい。
差分と言えばrsync?
●今の需要なら受信した側も差分だけで良いパターンがほと
んどだけど、そこまで考慮したプログラム組むの面倒くさ
い???。
- 17. 設定例
#読み込む設定
<source>
type tail
format /^(?<XFF-host>[^ ]*) (?<host>[^ ]*) [^ ]* (?<user>[^ ]*) ?[(?<TIME>[^?]]*)?] "(?<method>?S+)(?:
+(?<path>[^ ]*) +?S*)?" (?<status>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^?"]*)" "(?<agent>[^?"]*)"
(?<response_time>[^ ]*))?$/
path /var/log/httpd/access_log
tag apache.access
pos_file /var/log/td-agent/tmp/access.log.pos
</source>
#書き込む設定
<match *.**>
type file
time_slice_format %Y_%m_%d
compress gzip
path /var/log/td-agent/access_log
</match>
- 26. Configを動的生成する理由
●各ホスト毎に個別の値を持つ設定を付与する為、 configをPSGIで
動的生成している。
(ex
ミドルウェア名.ミドルウェア内のタグ.サービス名.IPアドレス
tag: apache.access.web_A.192.168.220.101
●負荷分散で受信する側のプロセスを複数起動しているので、サーバ
毎にメインで送信する先のportを分けている。
●例の様な値を設定したい時とかに、いちいちサーバ毎のconfig書き
たくないし、chefとか(大人の事情で)入れられないのでいちいちscp
で配布とかしか出来ない環境なので嫌だ。