Fluentd(td-agent) 統合ログ管理 †
ulimitの上限を上げる †
MessagePack形式を調べる †
td-agentログにエラーが出て、bufferファイルが残る場合がある。
bufferファイルの中身を調べたい場合。
td-agent削除 †
yum eraseしただけでは色々ゴミが残っていた。
td-agent v2/v3比較 †
- td-agent v2
- Ruby 2.1.x
- Fluentd 0.12.x
RDS slow/general logをtd-agentで集める †
- RDSからのslow/general log収集: fluent-plugin-rds-log
- SQLの抽象化。SQL中にpassowrd等があるとまずい場合にも使える: fluent-plugin-sql_fingerprint
複数バージョンのgemが混在してうまく動作しない時 †
label: †
ログファイルをAWS S3にgz圧縮しつつアップロードする †
- td-agent v3(fluentd v0.14)以降、「${tag[1]}」が使えるため、「fluent-plugin-forest」は不用にできるかも。
- 問題
- ログファイルが大きく、ファイル数も多いと同時にgzipやアップロード等の処理が実行されるため、CPU使用率が跳ね上がる。
- tailプラグインだと、同一ログファイルに対して、posやbufferのパスを変えても、複数のsourceを定義できない?片方だけが有効に見える。
- Amazon S3 Output Plugin | Fluentd
- デフォルトで圧縮(gzip)
- path ディレクトリを含むS3オブジェクトパス
- time_slice_format 毎にファイル分割される。デフォルト1時間毎(%Y%m%d%H)
- time_slice_wait (デフォルト:10m) は古いログの到着を待つ時間。
- flush_interval 1m とすると毎分アップロードされる
- buffer_chunk_limit (デフォルト:8m) のサイズを超えると、ファイル分割されアップロードされる。index+1される。分割されたく無い場合は、大きい値256m等を指定する
- 環境:td-agent-2.3.5-0.el6.x86_64
- syslog等を読めるように変更
sudo gpasswd -a td-agent wheel
sudo chown :wheel /var/log/messages /var/log/cron /var/log/maillog /var/log/secure /var/log/yum.log
sudo chmod 640 /var/log/messages /var/log/cron /var/log/maillog /var/log/secure /var/log/yum.log
sudo service td-agent-agent restart
- /etc/td-agent/td-agent.conf
@include conf.d/*.conf
<source>
type monitor_agent
bind 0.0.0.0
port 24220
</source>
fluent-plugin-forest:設定をテンプレート化して簡潔に書く †
- td-agent v3(fluentd v0.14)以降、「${tag[1]}」が使えるため、「fluent-plugin-forest」は不用にできるかも。
動的に値を取得 †
- td-agent-2.3.5-0.el6.x86_64
- 環境変数から取得: td-agent起動時に設定された環境変数のみ取得できる
could not find a temporary directory †
モニタリング †
- curlのデフォルトタイムアウトが300秒なので、待機してしまう事がある。監視で使う場合は「-m 1」を付けて1秒にする。
正規表現のテスト †
Slackに通知 †
forwardプラグイン使用時にはrequire_ack_responseオプションを付ける †
fluentd v0.12以降かつ、forwardプラグイン使用時に「require_ack_response」を付ける事で、ログの欠損を抑える
out_forwardのDNSキャッシュはデフォルト無期限 †
- 問題
- out_forwardの接続先ホストのDNS更新があっても、再試行に失敗する。
- 原因: DNSキャッシュのタイムアウトがデフォルト無期限になっているため、td-agent起動時点で名前解決し、その後更新されない
- 対策: DNSキャッシュのタイムアウトを設定する。0だとキャッシュしないため、パフォーマンスに影響が出る可能性がある。AWS Route53のデフォルトTTLの5分に設定。
expire_dns_cache 300
td-agent2.2.0を削除する †
td-agent.1.x系をインストールする †
2015-05-22現在、デフォルトでインストールされるtd-agentが2.x系に変わっている。
互換性が無いためリポジトリのパスが変わっている。
1.x系を使いたい場合、以下のように手動でbaseurlを変更するとインストールできる
コマンド †
- /usr/lib64/fluent/ruby/bin/fluentd : 本体
- /usr/lib64/fluent/ruby/bin/fluent-gem : pluginインストールしたり本体更新したり
- /usr/lib64/fluent/ruby/bin/fluent-cat : fluentdに直接メッセージを送れる。デ