Treasure Agent(td-agent)からNginxアクセスログを追跡し、アクセスログをクラウドに継続的にインポートできます。
以下のトピックに進んでください:
'td-agent'は、アプリケーションサーバーにインストールする必要があります。td-agentは、あらゆる種類の時系列データのストリーミングアップロード専用のデーモンプログラムです。td-agentは、Treasure Dataによって開発・保守されています。
td-agentをセットアップするには、以下の記事を参照してください。Linuxシステム用のdeb/rpmパッケージを提供しています。
| OS | リンク |
|---|---|
| MacOS X | Installing td-agent on MacOS X |
| Ubuntu System | Installing td-agent for Debian and Ubuntu |
| RHEL / CentOS System | Installing td-agent for Redhat and CentOS |
| AWS Elastic Beanstalk | Installing td-agent on AWS Elastic Beanstalk |
apikeyオプションを設定して、認証キーを指定します。APIキーは、TD Consoleから確認できます。
/etc/td-agent/td-agent.confにアクセスして、td-agent.confファイルにapikeyオプションを設定します。
注意: YOUR_API_KEYは、実際のAPIキー文字列に置き換えてください。
# Tailing the Apache Log
source
type tail
path /var/log/nginx/access.log
pos_file /var/log/td-agent/nginx-access.pos
tag td.production.access
format nginx
</source>
# Treasure Data Input and Output
<match td.*.*>
type tdlog
endpoint api.treasuredata.com
apikey YOUR_API_KEY
auto_create_table
buffer_type file
buffer_path /var/log/td-agent/buffer/td
use_ssl true
</match>以下の行が設定されたら、エージェントを再起動してください。
$ sudo /etc/init.d/td-agent restarttd-agentは、ログを追跡し続け、ログをバッファリング(var/log/td-agent/buffer/td)し、自動的にクラウドにログをアップロードします。
SIGUSR1シグナルを送信すると、td-agentのバッファがフラッシュされ、アップロードが即座に開始されます。
# generate access logs
$ curl http://host:port/
# flush the buffer
$ kill -USR1 `cat /var/run/td-agent/td-agent.pid`データが正常にアップロードされたことを確認するには、以下のようにtd tablesコマンドを発行します。
$ td tables
+------------+------------+------+-----------+
| Database | Table | Type | Count |
+------------+------------+------+-----------+
| production | access | log | 1 |
+------------+------------+------+-----------+正しく動作していない場合は、/var/log/td-agent.logを確認してください。td-agent:td-agentは、ログにアクセスする権限を持っている必要があります。
td-agentはログローテーションを処理します。td-agentは、ログの最後の位置を記録し、td-agentプロセスがダウンした場合でも、各行が正確に一度だけ読み取られることを保証します。ただし、情報はファイルに保持されるため、ファイルが破損すると「正確に一度」の保証が崩れます。
従来のRDBMSよりも柔軟なスキーマメカニズムを提供しています。クエリには、Hive Query Languageを活用しています。