ファイルサーバのLogwatch(7.3)に以前から下記のようなエラーメッセージが表示されて気になっていたので、対処しました。

——————— clam-update Begin ————————

The ClamAV update process (freshclam daemon) was not running!
If you no longer wish to run freshclam, deleting the freshclam.log
file will suppress this error message.

———————- clam-update End ————————-

それで、freshclamのログを確認してみると、

# cat /var/log/freshclam.log

Sat May 6 06:45:04 2017 -> ————————————–
Sat May 6 06:45:04 2017 -> ClamAV update process started at Sat May 6 06:45:04 2017
Sat May 6 06:45:04 2017 -> main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
Sat May 6 06:45:23 2017 -> Downloading daily-23360.cdiff [100%]
Sat May 6 06:47:28 2017 -> daily.cld updated (version: 23360, sigs: 2064432, f-level: 63, builder: neo)
Sat May 6 06:47:29 2017 -> bytecode.cld is up to date (version: 297, sigs: 58, f-level: 63, builder: anvilleg)
Sat May 6 06:48:40 2017 -> Database updated (6283280 signatures) from db.jp.clamav.net (IP: 218.44.253.75)
Sat May 6 06:48:41 2017 -> Clamd successfully notified about the update.
Sat May 6 07:46:02 2017 -> ————————————–

ちゃんとclamdのアップデートは完了しています。また、念の為に、clamdが起動しているか確認しても、

# service clamd status
clamd (pid 17835) を実行中…

となり、正常に動作しているように見えます。

最初は、clamdの不具合かとも思いましたが、Logwatchに何か問題があるのかもしれないと考え、google先生に「logwatch The ClamAV update process (freshclam daemon) was not running!」でお尋ねすると、下記のサイトに解決策があると教えてくれました。

 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=590150

結論は、 「Date/Time-stamp」(Sat May 6 06:45:04 2017 ->)の部分(27文字)を破棄すると、Logwatchがちゃんと読み取ってくれるそうです。詳しい事情はよくわかりません。

対処してみました。

【前提条件】

  1. Logwatchのバージョンは7.3
  2. Logwatchは正常に動作している(clam-update以外)
  3. clamdやfreshclamは正常に動作している
  4. viの基本操作ができる。(エディターは各自の好きなものでかまわない)

<手順>

  1. Logwatchの設定ファイルを修正
  2. 動作確認

1.Logwatchの設定ファイルを修正

# vi /usr/share/logwatch/scripts/services/clam-update
 # $ThisLine =~ s/ $//;
 $ThisLine = substr($ThisLine, 28);

viの行番号を表示、「: set number」。(コマンドモードで実行すること。)

「i」を押下して、編集モードへ移行し、83行目をコメントアウトし、84行目に変更する。

「Esc」を押下して、コマンドモードへ戻り、「:wq」で上書き終了する。

28番目の文字から読み込んでいるようです。

〔追記〕———————————————————————————-

せっかく対処したのですが、よく考えてみると他のサーバでは、Logwatchのclam-updateにエラーメッセージは出ていません。ごく普通に表示されています。

そこで、Logwatchのバージョンを他のサーバで確認すると7.4となっていました。clam-updateのスクリプトを確認します。

# vi /usr/share/logwatch/scripts/services/clam-update
$ThisLine =~ s/ $//;
   #If LogTime = yes in freshclam.conf then strip it
   $ThisLine =~ s/^... ... .. ..:..:.. .... \-\> //;

114行目のように、追記されています。さらに、その理由が113行目にありました。どうやらfreshclam.confでLogTimeを有効にすると7.3ではログが読み込めないようです。

そこで、7.3のclam-updateのスクリプトも上記のように修正しました。これが実際に対処したものです。

# vi /usr/share/logwatch/scripts/services/clam-update
$ThisLine =~ s/ $//;
#   $ThisLine = substr($ThisLine, 28);
    #If LogTime = yes in freshclam.conf then strip it
   $ThisLine =~ s/^... ... .. ..:..:.. .... \-\> //;

83行目は元に戻し、最初に追記した84行目をコメントアウトして、7.4のものを追記しました。(85、86行目)
もちろん、2.動作確認にあるように正常にログを取得して表示しました。

2.動作確認

freshclamを実行し、Logwatchを実行して結果を見る。

# freshclam
# logwatch –range Today –print

——————— clam-update Begin ————————

Last ClamAV update process started at Sat May 6 16:40:52 2017

Last Status:
main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
daily.cld is up to date (version: 23361, sigs: 2064603, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 297, sigs: 58, f-level: 63, builder: anvilleg)

———————- clam-update End ————————-

上記のようにエラーメッセージがなくなり、freshclamのログが表示された。

解決。