ClamAV(clamd)が落ちた。
LINUX 3 月 20th. 2007, 2:20pm今日はなんだかメール(スパムも)が少ないな〜(´ー`)
なんてまったりしていたら、ClamAVのデーモン(clamd)が知らぬ間に落ちてました(´・ω・`)
いつから落ちてたんだろう?と思いmaillogを追ってみたのですが、どうやら今朝の5時過ぎに落ちたようです。
—————————————————–
Mar 20 05:03:23 www clamsmtpd: 1003E8: CLAMAV: network read operation timed out
Mar 20 05:03:23 www clamsmtpd: 1003E8: unexepected response from clamd:
Mar 20 05:03:23 www clamsmtpd: 1003E8: from=xxx@example.com, to=yyy@example.com, status=CLAMAV-ERROR
Mar 20 05:03:23 www postfix/smtp[7105]: 47DD891C168: to=
(host 127.0.0.1[127.0.0.1] said: 451 Local Error (in reply to end of DATA command))
Mar 20 05:06:51 www clamsmtpd: 1003EB: CLAMAV: couldn’t connect to: /var/run/clamav/clamd: No such file or directory
—————————————————–
↑のようなログが5時過ぎたあたりから出始めてました。
こんな時間に落ちるような原因を作るものといえば1つだけ心当たりがあります。
cronで毎時0分に実行しているfreshclam(Clamavのウィルス定義ファイルの更新)しかない!・・・・キガスル!
clamav用のログを見てみると見事に5時に定義ファイルが更新されてました。
定義ファイルの更新とメールのウィルスチェックのタイミングが被ってClamAVが異常終了してソケットファイルが削除されたのかな〜???
clamd.confの設定でFixStaleSocketをyesにするとClamAVが異常終了したときにソケットファイル(/var/run/clamav/clamd)が削除されます。
何れにしてもこのままじゃまた落ちて気が付くまで放置なんてことになりかねないので、急遽以下のようなシェルスクリプトを書いてfreshclamの実行から10分後にソケットファイルの監視をするようにしてみました。
—————————————————–
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
COUNT=`ls /var/run/clamav/clamd | wc -l`
if [ $COUNT -eq 0 ]; then
/etc/rc.d/init.d/clamd start
fi
—————————————————–
↑は/var/run/clamav/clamdがなくなっていたらclamdを起動します。
んでこれを
—————————————————–
0 * * * * /usr/bin/freshclam –daemon-notify –quiet -l /var/log/clamd
10 * * * * /usr/local/bin/clamdcheck.sh
—————————————————–
↑のような感じにcronに入れました。
これでもしこのシェルスクリプトによって起動されれば、
clamd用のログに以下のように表示されるので、いつ落ちたのかも分かります。
—————————————————–
+++ Started at Tue Mar 20 13:37:31 2007
clamd daemon 0.90.1 (OS: linux-gnu, ARCH: i386, CPU: i386)
Log file size limited to 1048576 bytes.
Reading databases from /usr/share/clamav
Loaded 100750 signatures.
Unix socket file /var/run/clamav/clamd
Setting connection queue length to 15
Archive: Archived file size limit set to 10485760 bytes.
Archive: Recursion level limit set to 8.
Archive: Files limit set to 1000.
Archive: Compression ratio limit set to 250.
Archive support enabled.
Algorithmic detection enabled.
Portable Executable support enabled.
ELF support enabled.
Mail files support enabled.
Mail: Recursion level limit set to 64.
OLE2 support enabled.
PDF support disabled.
HTML support enabled.
Self checking every 1800 seconds.
—————————————————–
これでちょっと様子をみてみようと思います。
5 月 25th, 2007 at 7:43 AM
私も遅まきながらVine3.2から4.1へ…。
そのついでにインストールしたのですが…同じログが出ました(笑)
「???」と思っていましたら、clamsmtpがそんなファイル読めない(ないぞ)、との事なので調べると…。
なんとclamsmtpd.confとするところをclamsmtp.confとしてました(笑)
ちゃんと、clamsmtpd.confには
ClamAddress: /var/run/clamav/clamd.sock
となってるじゃないですかw
こりゃ読めん…。
8 月 7th, 2007 at 1:35 PM
いろいろな罠にハマったみたいで大変でしたねw
ちなみに↑以降clamdが落ちたことはありませんし、今はclamdのチェックをfreshclam実行直後に行えるように
================================
#!/bin/sh
/usr/bin/freshclam –daemon-notify –quiet -l /var/log/clamd
export LANG=en
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
LOG=/var/log/clamd
DATE=`date “+%a %b %d %H:%M:%S %Y”`
COUNT=`ls /var/run/clamav/clamd.socket | wc -l`
if [ $COUNT -eq 0 ]; then
/etc/rc.d/init.d/clamd start
else
echo “————————————–” >> $LOG
echo “ClamAV check daemon process started at $DATE” >> $LOG
echo “SelfCheck: ClamAV daemon process status OK.” >> $LOG
fi
================================
というようにしてあります。