20
3月
3

ClamAV(clamd)が落ちた。


今日はなんだかメール(スパムも)が少ないな〜(´ー`)
なんてまったりしていたら、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=, relay=127.0.0.1[127.0.0.1], delay=180, status=deferred
(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.
—————————————————–

これでちょっと様子をみてみようと思います。

Enjoyed reading this post?
Subscribe to the RSS feed and have all new posts delivered straight to you.
3 Comments:
  1. hamabo 25 5月, 2007

    私も遅まきながらVine3.2から4.1へ…。
    そのついでにインストールしたのですが…同じログが出ました(笑)

    「???」と思っていましたら、clamsmtpがそんなファイル読めない(ないぞ)、との事なので調べると…。

    なんとclamsmtpd.confとするところをclamsmtp.confとしてました(笑)
    ちゃんと、clamsmtpd.confには

    ClamAddress: /var/run/clamav/clamd.sock

    となってるじゃないですかw
    こりゃ読めん…。

  2. cmf@ohtan管理人 7 8月, 2007

    いろいろな罠にハマったみたいで大変でしたね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
    ================================
    というようにしてあります。

  3. PAO 18 4月, 2010

    うちも、同じような現象が・・・
    Apr 17 04:13:25 sv clamsmtpd: 1004DC: CLAMAV: couldn’t connect to: /var/run/clamav/clamd.sock: No such file or directory

    何でしょうかね?

Post your comment