Carpe Diem

  Top > スポンサー広告> サーバ監視・アクセス解析 > ログ一元管理ツール「Fluentd」  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ログ一元管理ツール「Fluentd」

2013 - 10/17 [Thu] - 21:18

apacheのログ、システムログ、Webアプリケーションのログなど、数多くのログがありますが、それぞれフォーマットがことなるため不便です。

それを一元的にJSON形式にして管理できるようになるのがこの Fluentd というミドルウェアです。

フォーマットを統一できれば解析ツールも1つで済むので、非常に便利になりますね。
今回は例としてApacheのアクセスログをJSON化しようと思います。

◆事前準備
① 複数のサーバのログをとる場合は、ログの時刻がおかしくならないようにntpdを入れておいたほうがいいです。参考:NTPサーバの構築

②ファイルディスクリプタの最大値を増やす
ファイルディスクリプタの最大数を増やしてください。現在の数値は ulimit -n コマンドで確認できます。

$ ulimit -n
65535

コンソールに 1024 と表示される場合、それでは不十分です。 /etc/security/limits.conf に次の行を追加した後、マシンを再起動してください。
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536


③ネットワーク関係のカーネルパラメータの最適化
/etc/sysctl.conf ファイルにこれらのパラメータを追加した後、 sysctl -w と入力するかまたはノードを再起動してください。
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535



◆インストール&起動
Fluentdのインストールは2通りあります。
①gemでインストール
②td-agentでインストール


td-agentの方が依存性もありませんし、簡単なので②の方でやります。

$ curl -L http://toolbelt.treasure-data.com/sh/install-ubuntu-precise.sh | sh

起動
$ sudo service td-agent start

停止
$ sudo service td-agent stop


◆ApacheのログをFluentdでJSON化
fluentd用ログのフォルダ作成
# mkdir /var/log/fluent
# chown td-agent:td-agent /var/log/fluent

設定ファイル編集
$ sudo emacs -nw /etc/td-agent/td-agent.conf

以下を追記します。apacheの項目があるので、そこをアンコメントして修正してもOKです。
<source>
type tail
format apache
path /var/log/apache2/access_log
pos_file /var/log/fluent/access.pos
tag apache.access
</source>

<match apache.access>
type file
path /var/log/fluent/access_log
</match>



◆apacheのログを読み込めるように設定
そのままだとパーミッションの設定で読み込めませんので、権限を緩くします。

# chmod o+rx /var/log/
# chmod o+r /var/log/access.log


◆Fluentdを再起動して確認
$ sudo service td-agent restart

http://localhost

にアクセスしてみて、/var/log/fluent/ にJSONログが生成されていればOKです。

Apacheのaccess.log

127.0.0.1 - - [17/Oct/2013:17:01:14 +0900] "GET / HTTP/1.1" 200 9487 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"


JSON化
2013-10-17T17:01:14+09:00       apache.access   {"host":"127.0.0.1","user":"-","method":"GET","path":"/","code":"200","size":"9487","referer":"-","agent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"}



ソース:
Fluentdインストールの前に
debパッケージからFluentdをインストールする
さくらサーバーのVPS環境にfluentdとMongoDBをインストール
Fluentd tail plugin のお話 (pos_file の指定はお忘れなく)

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。