雑記

インフラのことだったりプログラムのことだったりどうでもいいこと書いたり。要は雑記。

flutentdのインストールから設定

いい加減サーバに入ってログ見て原因さぐって、、というのが手間になってきた。
もうちょっとさくっとログをチェックしたいですね。
さらにいうとログ監視もこれでできちゃうともっと素敵ですね。

目的

  • 以下のログを解析したい
  • ついでにzabbixとも連携したい

環境

  • CentOS6系
  • 今回はfluentdのログ吐き出し先をmongodbにした

fluentdのインストール

  • yum使ってインストールしたいので、以下のレポジトリを作成
    • /etc/yum.repos.d/td.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=1
enabled=0
gpgkey=http://packages.treasure-data.com/redhat/RPM-GPG-KEY-td-agent
  • インストール
# yum install td-agent

チューニング

  • flutentdを利用するにあたってサーバをチューニングしておいた方がよいらしい
  • NTPは必須でしょうね
  • ファイルディスクリプタもやっておいたほうがよいかと
  • kernel周りは、、環境次第でしょうね。大量のデータを取り扱う場合は設定した方がよいかもですが、場合によってはトラブルになることもありますし。

設定

  • まずはApacheのログを取得してみる。アウトプットはmongodb。
    • /etc/td-agent/td-agent.conf
#
# Apache log
#
<source>
  type tail
  path /var/log/httpd/access_log
  tag apache.access
  pos_file /var/log/td-agent/httpd-access_log.pos
  format apache2
</source>

## mongdbに吐き出す
<match apache.access>
  type mongo
  host localhost
  port 27017
  database fluentd
  collection apache_access
  capped
  capped_size 1024m
  flush_interval 10s
</match>
    • 「/var/log/httpd」が初期状態だとパーミッションが700のため、td-agentからアクセスできないとエラーがでます。なのでとりあえずは「/var/log/httpd」を755に変更して対応。
  • td-agentを起動
# /etc/init.d/td-agent start

確認

  • httpで適当にアクセスしてから確認
# mongo
> show dbs
fluentd 2.0146484375GB
local   0.078125GB
test    0.203125GB
> use fluentd
> db.apache_access.count()
53
> db.apache_access.find()
※結果がずらっと
  • 取れてましたね。結構簡単で驚きでした。
  • まぁこれをどう使うかが大事なわけで。今度はzabbixと連携してみます。