Send SIGUSR1 to td-agent

td-agentのバッファを強制フラッシュする

td-agentを使っていて、bufferが溜まってしまってミッチもさっちも行かなくなったとき。

バッファがたまってしまってどうしようもない

 [warn]: #0 emit transaction failed: error_class=Fluent::Plugin::Buffer::BufferOverflowError error="buffer space has too many data"

一定時間、送信先のノードがネットワーク障害で送信できないときにこんな感じに。

バッファを強制的にフラッシュする

fluentdはSIGUSR1のシグナルを送れば、bufferをフラッシュしてくれるので、 プロセスIDの確定後、killコマンドでシグナルを送ります

$ systemctl status td-agent.servce
● td-agent.service - td-agent: Fluentd based data collector for Treasure Data
   Loaded: loaded (/usr/lib/systemd/system/td-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-08-18 11:49:17 JST; 2 days ago
     Docs: https://docs.treasuredata.com/articles/td-agent

 Main PID: 281(fluentd)
   CGroup: /system.slice/td-agent.service
           ├─281 /opt/td-agent/embedded/bin/ruby /opt/td-agent/embedded/bin/fluentd --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid
           └─282 /opt/td-agent/embedded/bin/ruby -Eascii-8bit:ascii-8bit /opt/td-agent/embedded/bin/fluentd --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid --under-supervisor

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

これでPIDがわかるので、

kill -USR1 PID

とするとtd-agent.logに

[info]: #0 force flushing buffered events

って行が出てきて、無事に繋がるようになりました。 この辺ももう少し理解を深めないとなー。

connvoi's Picture

About connvoi

肉とビールと料理と写真とゲーム たまに技術 python / Solr / PHP / ansible

アマゾンセール情報サイト アマセール管理人

Jp, Tokyo https://connvoi.com