さくらVPSの「VENOM」脆弱性対応のためサーバーを再起動しました。
再起動後の動作確認をしている際にdaemontoolsで管理しているサービスが
ある日を境にきちんとロギングができなくなっていることがわかったのでその対応をメモ。
ログファイルを確認する
qmailのログを確認たところ、2015年1月の分までしかロギングされていなかった。
タイムスタンプは下記の通り。
[root@bacchi ~]# ll /service/qmail/log/main/
合計 2484
-rw-r--r-- 1 qmaill nofiles 33049 12月 6 19:34 2013 @4000000052acbc8109dd797c.u
-rw-r--r-- 1 qmaill nofiles 1157 1月 7 12:35 2014 @4000000052cb76010d46cbcc.u
-rw-r--r-- 1 qmaill nofiles 57 1月 7 12:35 2014 @4000000052cb7898066f3974.u
-rw-rw-rw- 1 qmaill nofiles 2490254 1月 28 12:34 2015 current
-rw------- 1 qmaill nofiles 0 8月 3 17:22 2013 lock
-rw-r--r-- 1 qmaill nofiles 0 1月 7 12:46 2014 state
メールサーバーが起動しているかどうか確認する
メールサーバー止まってる?と思い、確認
[root@bacchi ~]# svstat /service/*
/service/dnscache: up (pid 854) 614 seconds
/service/qmail: up (pid 851) 614 seconds
/service/smtpd: up (pid 856) 614 seconds
[root@bacchi ~]# ps ax |grep qmail
852 ? S 0:00 supervise qmail
858 ? S 0:00 qmail-send
862 ? S 0:00 /usr/local/bin/tcpserver -v -x /var/vpopmail/etc/tcp.smtp.cdb -R -H -l0 -u 61 -g 60 0 25 relay-ctrl-check /var/qmail/bin/qmail-smtpd
864 ? S 0:00 qmail-lspawn ./Maildir/
865 ? S 0:00 qmail-rspawn
866 ? S 0:00 qmail-clean
2052 pts/0 S+ 0:00 grep qmail
問題なく稼働している。
ロギングのプロセスが動いているか確認する
じゃあ、ロギングはどうなのってことで見てみると、見慣れぬエラーが・・
[root@bacchi ~]# ps ax |grep log
847 ? S 0:00 readproctitle service errors: ...nied?multilog: fatal: unable to create status: access denied?multilog: fatal: unable to create status: access denied?multilog: fatal: unable to create status: access denied?multilog: fatal: unable to create status: access denied?multilog: fatal: unable to create status: access denied?multilog: fatal: unable to create status: access denied?multilog: fatal: unable to create status: access denied?
853 ? S 0:00 supervise log
855 ? S 0:00 supervise log
857 ? S 0:00 supervise log
859 ? S 0:00 multilog t s3145728 n99 ./main
863 ? S 0:00 multilog t ./main
1068 ? Sl 0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
1174 ? S 0:00 pop3-login
1175 ? S 0:00 pop3-login
1176 ? S 0:00 pop3-login
1177 ? S 0:00 imap-login
1178 ? S 0:00 imap-login
1179 ? S 0:00 imap-login
1188 ? S 0:00 /usr/sbin/cronolog /www/bacchi.me/logs/%Y/%m/access_log.%d
1189 ? S 0:00 /usr/sbin/cronolog /www/bacchi.me/logs/%Y/%m/access_log.%d
1737 ? Sl 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/home/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/home/mysql/data/bacchi.me.err --pid-file=/home/mysql/data/bacchi.me.pid --socket=/tmp/mysql.sock --port=3306
2058 ? Z 0:00 [multilog]
2060 pts/0 S+ 0:00 grep log
daemontoolsからロギングプロセスの立ち上げができていないっぽい。
daemontoolsに頼らず手動で立ち上げてみる
daemontoolsでログプロセス立ちあげられないなら
手動でスクリプト叩けばどうだ!
[root@bacchi ~]# sh /service/qmail/log/run
multilog: fatal: unable to switch to current directory: access denied
動かない。
うん、わかってる。
ディレクトリのパーミッション見てみるけど、問題なさげ。
今まで、動いてたんだから当たり前だわな。
[root@bacchi ~]# ll /service/qmail/log
合計 20
drwxr-sr-x 2 qmaill nofiles 4096 1月 7 12:47 2014 alert
drwxr-sr-x 2 qmaill nofiles 4096 1月 7 12:46 2014 main
-rwxr-xr-x 1 root root 564 1月 7 12:47 2014 run
drwx--S--- 2 root root 4096 6月 7 18:07 2015 supervise
再度ログが吐かれるディレクトリを見てみる
もう一度、/service/qmail/log/main/以下を見てみると、やったら古いlockファイルが。
[root@bacchi ~]# ll /service/qmail/log/main/
合計 2484
-rw-r--r-- 1 qmaill nofiles 33049 12月 6 19:34 2013 @4000000052acbc8109dd797c.u
-rw-r--r-- 1 qmaill nofiles 1157 1月 7 12:35 2014 @4000000052cb76010d46cbcc.u
-rw-r--r-- 1 qmaill nofiles 57 1月 7 12:35 2014 @4000000052cb7898066f3974.u
-rw-rw-rw- 1 qmaill nofiles 2490254 1月 28 12:34 2015 current
-rw------- 1 qmaill nofiles 0 8月 3 17:22 2013 lock
-rw-r--r-- 1 qmaill nofiles 0 1月 7 12:46 2014 state
あやふやな記憶を頼りにlockファイルを削除&runスクリプトを叩く
そういえば、svscanはlockファイルがあると
新しくプロセス立てれなかったなーと思い、lockファイルを消してみた。
そしてそのあとで手動でrunスクリプトを叩いてみる。
[root@bacchi service]# rm /service/qmail/log/main/lock
rm: remove 通常の空ファイル `qmail/log/main/lock\'? y
[root@bacchi service]# cd /service/qmail/log
[root@bacchi service]# sh run &
エラーが出ない・・!
プロセスを見てみると立ち上がっている!
[root@bacchi ~]# ps ax |grep log
846 ? S 0:00 supervise log
852 ? S 0:00 multilog t s3145728 n99 ./main
タイムスタンプも確認すると、ロギングされている!
[root@bacchi ~]# ll /service/qmail/log/main/
合計 2496
-rw-r--r-- 1 qmaill nofiles 33049 12月 6 19:34 2013 @4000000052acbc8109dd797c.u
-rw-r--r-- 1 qmaill nofiles 1157 1月 7 12:35 2014 @4000000052cb76010d46cbcc.u
-rw-r--r-- 1 qmaill nofiles 57 1月 7 12:35 2014 @4000000052cb7898066f3974.u
-rw-rw-rw- 1 qmaill nofiles 2490254 1月 28 12:34 2015 @400000005577ff2a140eaa9c.u
-rw-r--r-- 1 qmaill nofiles 2238 6月 7 18:18 2015 current
-rw------- 1 qmaill nofiles 0 6月 7 18:16 2015 lock
-rw-r--r-- 1 qmaill nofiles 0 6月 7 18:17 2015 state
今思うとdaemontools動いているし、手動でrunスクリプト叩く必要なかった気が・・
smtpdとtinydnsにも同様のオペレーションをして、サーバー再起動。