fluentd(td-agent)でTreasureDataにapatchログを送る方法


td-agentのインストール

yumでインストールするためにURLを追加する。
その後でyumでインストールを行う。

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

sudo yum install -y td-agent
```

td-agentの起動

td-agentを起動する。

/etc/init.d/td-agent start

APIのキーを確認

td-agentでアカウント認証をする。
その後でAPIキーを確認する。

td account -f
td apikey:show

設定ファイルの変更

td-agentの設定ファイルを書き換える。

vi /etc/td-agent/td-agent.conf
td-agent.conf
<match td.*.*>
  type tdlog
  apikey さきほど確認したAPIのキー
  auto_create_table
  buffer_type file
  buffer_path /var/log/td-agent/buffer/td
  use_ssl true
</match>
<source>
  type tail
  path /var/log/httpd/httpd.access_log
  pos_file /tmp/httpd.access.log.pos
  format apache
  tag td.test.httpd
</source>

設定を書き換えたのでtd-agentを再起動する。

/etc/init.d/td-agent restart

ログの送信を確認

td-agentのテーブルにアクセスする。
データを取得できれば正常に送信が行われている。

td query -w -d test "SELECT * FROM httpd GROUP BY v['code']"

おまけ - apacheログを無理やり出力する方法

apacheログにログを直接書き込む。

vi /var/log/httpd/httpd_access_log
127.0.0.1 - - [17/Oct/2013:13:46:18 +0900] "GET /zabbix/images/general/zabbix.ico HTTP/1.1" 200 1150 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0"