ファイルサーバの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がちゃんと読み取ってくれるそうです。詳しい事情はよくわかりません。
対処してみました。
【前提条件】
- Logwatchのバージョンは7.3
- Logwatchは正常に動作している(clam-update以外)
- clamdやfreshclamは正常に動作している
- viの基本操作ができる。(エディターは各自の好きなものでかまわない)
<手順>
- Logwatchの設定ファイルを修正
- 動作確認
1.Logwatchの設定ファイルを修正
# $ThisLine =~ s/ $//;
$ThisLine = substr($ThisLine, 28);
viの行番号を表示、「: set number」。(コマンドモードで実行すること。)
「i」を押下して、編集モードへ移行し、83行目をコメントアウトし、84行目に変更する。
「Esc」を押下して、コマンドモードへ戻り、「:wq」で上書き終了する。
28番目の文字から読み込んでいるようです。
〔追記〕———————————————————————————-
せっかく対処したのですが、よく考えてみると他のサーバでは、Logwatchのclam-updateにエラーメッセージは出ていません。ごく普通に表示されています。
そこで、Logwatchのバージョンを他のサーバで確認すると7.4となっていました。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のスクリプトも上記のように修正しました。これが実際に対処したものです。
$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のログが表示された。
解決。