以前、CentOS6にMonitをインストール&初期設定(auditd/crond/ntpd/rsyslog/sshd/postfix)の記事にて
Monitで監視(自動復旧)をする設定をしたのですが、今回はよく利用しているfluentd(td-agent)の
監視(自動復旧)を行う設定も用意してみます。

はじめに、下記の設定ファイルを用意しました。

# cat /etc/monit.d/td-agent.conf 
check process td-agent with pidfile /var/run/td-agent/td-agent.pid
start program = "/etc/init.d/td-agent start"
stop program = "/etc/init.d/td-agent stop"
if 5 restarts within 5 cycles then timeout

次に、Monitを再起動します。

# /etc/init.d/monit restart
Stopping monit: [ OK ]
Starting monit: Starting monit daemon with http interface at [localhost:2812]
[ OK ]

さらに、fluentd(td-agent)を停止します。

# /etc/init.d/td-agent status
td-agent (pid 21886) を実行中...
# /etc/init.d/td-agent stop
Shutting down td-agent: [ OK ]
# /etc/init.d/td-agent status
td-agent は停止しています

そして、下記のようなログが出力されると自動復旧です。

# cat /var/log/messages
...
Jan 31 21:57:04 ip-10-10-8-114 monit[22211]: 'td-agent' process is not running
Jan 31 21:57:04 ip-10-10-8-114 monit[22211]: 'td-agent' trying to restart
Jan 31 21:57:04 ip-10-10-8-114 monit[22211]: 'td-agent' start: /etc/init.d/td-agent
...

最後に、無事に復旧していることを確認します。

# /etc/init.d/td-agent status
td-agent (pid 22335) を実行中...

fluentd(td-agent)はデフォルト起動サービスになりました。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら