LoginSignup
4
5

More than 5 years have passed since last update.

fluentdの基本的な設定

Posted at

概要

CentOS上にfluentdをインストールしてログを収集するまでの作業メモです。

手順

インストール

下記のファイルを作成します。

/etc/yum.repos.d/td.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0

その後yumでインストールします。

$ sudo yum -y install td-agent
$ ls -la /etc/td-agent/
合計 24
drwxr-xr-x   4 root root 4096  3月  7 10:21 2015 .
drwxr-xr-x. 75 root root 4096  3月  7 10:21 2015 ..
drwxr-xr-x   2 root root 4096  3月  7 10:20 2015 logrotate.d
drwxr-xr-x   2 root root 4096  3月  7 10:20 2015 prelink.conf.d
-rw-r--r--   1 root root 1982  3月  7 10:21 2015 td-agent.conf
-rw-r--r--   1 root root 1982 10月 20 17:30 2014 td-agent.conf.tmpl

こんな感じで起動できます。

$ sudo /etc/init.d/td-agent start

td-agen.confの設定

まず手始めに下記のような形式のログを想定します。

例)
2015-03-07T10:58:09+09:00 DEBUG - <1425693488.4702> XxxController:xxx start

このログを例えば下記のように構造化したいと思います。

<datetime> <severity> - <id> <body>

その時のtd-agent.confの設定は下記のような感じになります。

/etc/td-agent/td-agent.conf
<source>
  type tail
  format /^(?<datetime>[^ ]*) (?<severity>[^ ]*) - (?<id>[^ ]*) (?<body>.*)$/
  path /tmp/cid_logs/deals.log
  tag any.app.log
</source>

<match any.app.log>
  type copy
  <store>
    type file
    path /tmp/cid_logs/deals.any.log
  </store>
</match>

すると下記のような感じで<store>指定に従って別のログファイルを出力する事ができます。この<store>でストリームの処理がどうなっているかデバッグ的に確認すると作業がやりやすいかも。

fluentdで吐き出したログの内容は下記のようになっています。

2015-03-07T11:10:48+09:00   any.app.log {"datetime":"2015-03-07T11:10:48+09:00","severity":"DEBUG","pid":"<1425694247.8577>","app-log-body":"XxxController::xxx start"}

なお、td-agent自体のログは/var/log/td-agent/td-agent.logにあり、こちらを確認しながら動作検証すると良いと思います。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5