monit

FreeBSD + Quagga 0.99.14の環境において,しばらく稼働しているとbgpdのvtyが応答しなくなる現象が確認されています.この現象は,quaggaを再起動すると回復します.

Looking Glassを立ち上げている人は,watchquaggaまたはmonitなどの外部プログラムを利用して,vtyが無応答になったら再起動するように仕掛けを入れるとよいでしょう.本ページでは,monitを利用してQuaggaのbgpdを監視し,vtyが刺さったら自動的に再起動するための手順を紹介します.

monitのインストール

FreeBSDの場合,ports経由でインストールを行うことができます.

% cd /usr/ports

% sudo portinstall sysutils/monit

/etc/rc.confにmonit_enable="YES"を追加しておきましょう.

設定ファイル

/usr/local/etc/monitに,以下のように記述します.

set daemon 60

with start delay 15

set logfile syslog facility log_daemon

set idfile /var/monit/.monit.id

set statefile /var/monit/.monit.state

set mailserver localhost

set alert root@example.com

set httpd port 2812 and

use address localhost # only accept connection from localhost

allow localhost # allow localhost to connect to the server and

check process bgpd with pidfile /var/run/quagga/bgpd.pid

start program = "/usr/local/etc/rc.d/quagga start"

stop program = "/usr/local/etc/rc.d/quagga stop"

if failed host localhost port 2605 type tcp

send ""

expect ".*assword: "

then restart

if 3 restarts within 5 cycles then timeout

group quagga

また,/var/monitディレクトリを作成しておきましょう.

% sudo mkdir /var/monit

起動

% sudo /usr/local/etc/rc.d/monit start