http://blog.glidenote.com
に移転しました

ログファイル監視スクリプトlogmonをsupervisordで管理


ログファイル監視スクリプトlogmonの重要度がかなり増してきたので、supervisordで起動、停止を管理するように変更。

supervisordの導入は過去のエントリーを参考にしてください

logmonの起動スクリプトは下記なので、起動方法を確認。

#!/bin/sh

# chkconfig: 345 13 13
# description: Log Monitor
# processname: logmon

LOGMON_CONF=/etc/logmon/logmon.conf
LOGMON_BIN=/etc/logmon/logmon.pl

logmon_opts="-f $LOGMON_CONF"

check_start() {
    $0 status > /dev/null 2>&1
    if [ $? -eq 0 ]; then
echo "Success."
        exit 0
    fi
echo "Failed."
    exit 1
}

case "$1" in
    start)
        $0 status > /dev/null 2>&1
        if [ $? -eq 0 ]; then
echo "logmon is alredy running."
            exit 1
        fi
echo -n $"Starting logmon: "
        $LOGMON_BIN $logmon_opts >/dev/null 2>&1 &
        sleep 1
        check_start
        ;;
    stop)
        echo -n "Stopping logmon: "
        pkill -TERM -of $LOGMON_BIN
        echo Done.
        ;;
    restart)
        $0 stop
        sleep 1
        $0 start
        ;;
    switch)
        pkill -HUP -of $LOGMON_BIN
        ;;
    check)
        $LOGMON_BIN -c $logmon_opts
        ;;
    status)
        pid=`pgrep -of $LOGMON_BIN`
        if [ -n "$pid" ]; then
echo "logmon (pid $pid) is running..."
            exit 0
        fi
echo "logmon is stopped"
        exit 3
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|switch|status|check}"
        exit 1
esac
view raw gistfile1.sh This Gist brought to you by GitHub.

下記のようなで形で、logmonを起動しているので

/etc/logmon/logmon.pl -f /etc/logmon/logmon.conf >/dev/null 2>&1 &

/etc/supervisord.d/logmon.ini を下記のような感じで用意

[program:logmon]
command=/etc/logmon/logmon.pl -f /etc/logmon/logmon.conf
stdout_logfile_maxbytes=1MB
stderr_logfile_maxbytes=1MB
stdout_logfile=/var/log/%(program_name)s.log
stderr_logfile=/var/log/%(program_name)s.log
autorestart=true
view raw logmon.ini This Gist brought to you by GitHub.

supervisordで管理するの、chkconfigをoffに

sudo /etc/rc.d/init.d/logmon stop
sudo chkconfig logmon off

新しく監視デーモンとして、logmon.iniを追加したので、supervisordに設定を再読み込みさせる。

sudo supervisorctl reread

logmonをsupervisord管理に追加して起動させる

sudo supervisorctl add logmon

logmonが起動しているか確認

sudo supervisorctl status

logmonをkillしてsupervisordが再起動させるかを確認して問題なければOK牧場

Write a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

About

@glidenote

このブログは個人的なものです。ここで述べられている内容は私の個人的な意見に基づくものであり、私の雇用者に一切の関係はありません