td-agnetの終了時にbufferを解放する処理
ようやくP5Rが終わりました。。。 長かった。。。
背景
td-agentが走っているインスタンスを落とす前にbufferを開放しておかないとログが全部送れないということがある
方法について
bufferを開放する方法については、 Signals - Fluentd に書かれてある
sudo kill -SIGUSR1 `cat /var/run/td-agent/td-agent.pid`
これをすれば開放される。
終了時に実行できれば、bufferが開放される。
これをsystemdでやってしまえばOK
配布用のansible
- name: copy td-agent.service copy: src: /usr/lib/systemd/system/td-agent.service dest: /etc/systemd/system/td-agent.service remote_src: yes - name: lineinfile lineinfile: dest: /etc/systemd/system/td-agent.service regexp: '^ExecStop=' line: 'ExecStop=/bin/bash -c "kill -SIGUSR1 ${MAINPID} && kill -TERM ${MAINPID}"' - name: systemd deamon_reload systemd: daemon_reload: yes