ClamAV regelmäßig down.

silvio_l

Registered User
Hallo,

da unser Server in letzter Zeit unter häufigen ClamAV abstürzen litt habe ich ein Script für den automatischen Neustart erstellt. Leider werden in der "Down-Zeit" natürlich auch die empfangenen (und ungeprüften) E-Mails nicht in entsprechende Postfächer gelegt. Problem ist das diese Abstürze sich immer mehr häufen. Ein Blick in die Clam-Logs verrät das die Ursache meist immer die selbe ist. Der Datenbank "Selfcheck" ist auf 1h eingestellt. Genau bei diesem Selfcheck kommt es dann früher oder später zu einem "fatal Error".

Code:
Thu Mar 27 22:48:06 2008 -> Self checking every 3600 seconds.
Thu Mar 27 23:58:58 2008 -> No stats for Database check - forcing reload
Thu Mar 27 23:58:58 2008 -> Reading databases from /var/lib/clamav
Fri Mar 28 00:16:06 2008 -> Database correctly reloaded (317761 signatures)
Fri Mar 28 01:36:10 2008 -> SelfCheck: Database modification detected. Forcing reload.
Fri Mar 28 01:36:10 2008 -> Reading databases from /var/lib/clamav
Fri Mar 28 01:38:21 2008 -> ERROR: reload db failed: Unable to lock database directory (try 1)
Fri Mar 28 01:40:31 2008 -> ERROR: reload db failed: Unable to lock database directory (try 2)
Fri Mar 28 01:42:41 2008 -> ERROR: reload db failed: Unable to lock database directory (try 3)
Fri Mar 28 01:42:41 2008 -> ERROR: reload db failed: Unable to lock database directory
Fri Mar 28 01:42:41 2008 -> Terminating because of a fatal error.
Fri Mar 28 01:42:41 2008 -> Socket file removed.
Fri Mar 28 01:42:41 2008 -> Pid file removed.Fri Mar 28 01:42:41 2008 -> --- Stopped at Fri Mar 28 01:42:41 2008

Jemand ne Ahnung worans liegen könnte oder ist es Sinnvoll den clamd selfcheck zu deaktivieren?

Eine Zusatzfrage hätt' ich auch noch. Habe festgestellt das der clamd in der Startzeit sehr viel Rechenzeit in Anspruch nimmt. Ist das normal? Ich weiß das er ca. 20 Minuten benötigt um die Virendefs zu laden aber dafür ne fast 90% Prozessauslastung ist ganz schon viel.
 
HIch weiß das er ca. 20 Minuten benötigt um die Virendefs zu laden aber dafür ne fast 90% Prozessauslastung ist ganz schon viel.
Weder das eine, noch das andere ist normal.
Er sollte innerhalb ein paar Sekunden hochfahren und dann bereit stehen.
Außer er scannt dabei noch die ganze Platte. Das wäre evtl. eine Erklärung dafür.

huschi.
 
Hmmm, vieleicht ist auch meine Annahme falsch. Die Ladezeit für die Virendefs habe ich von den Zeilen
Code:
Thu Mar 27 23:58:58 2008 -> Reading databases from /var/lib/clamav
Fri Mar 28 00:16:06 2008 -> Database correctly reloaded (317761 signatures)
abgeleitet. Die Differenz ist immer um die 20 Minuten.

Der Daemon läuft an sich ja auch eine "Weile" (meist 1 Tag) ganz normal aber dann geht er beim Neuladen der Dazenbank einfach down. Ist der Selfcheck wirklich notwendig oder eher "good to have"? Sonst wird ich es mal versuchen ohne einen stündlichen Selfcheck. Wie ist deine Meinung?
 
Bei mir braucht er lediglich 40 Sekunden.

Hast Du nach einem Absturz mal nach gesehen, ob es in /var/lib/clamav/ eine Lock-Datei (ich glaub "dbLock") gibt?
Was ist mit FreshClam? Stürzt der auch ab? Wenn nicht, stehen in seinem Logfile evtl. zum passenden Zeitpunkt Einträge?
Es wäre Vorstellbar, wenn Deine DB eh so langsam ist, daß FreshClam beim Update natürlich auch entsprechend lange braucht um das Update einzuspielen und die DB solange gelockt läßt. Oder während dieser Zeit abstürzt.

huschi.
 
Hi,

danke für deine Antwort. Freshclam ist bisher nicht abgestürzt ob ein Logfile zum Zeitpunkt des clamd existiert kann ich leider nicht sagen da wie gesagt automatisch ein Neustart erfolgt. Werde aber mal per Script vor dem Neustart des Daemons nachsehen lassen. Freshclam.log hatte aber Verbindungsschwierigkeiten beim 24 stündigen Update der DB. und damit standen ein paar Einträge der Art:
Code:
Trying host db.local.clamav.net (62.26.160.3)...
nonblock_connect: connect timing out (30 secs)
Can't connect to port 80 of host db.local.clamav.net (IP: 62.26.160.3)
Ignoring mirror 62.201.161.84 (too often connections with outdated version)
Ignoring mirror 85.10.242.82 (too often connections with outdated version)
im File. Aber die ganze Sache endet eigentlich immer mit folgenden "erfolgreichen" Zeilen:
Code:
Trying host db.local.clamav.net (85.199.169.78)...
Downloading daily-6561.cdiff [0%]
daily.inc updated (version: 6561, sigs: 72603, f-level: 26, builder: ccordes)
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Current functionality level = 14, recommended = 26
DON'T PANIC! Read http://www.clamav.net/support/faq
Database updated (242279 signatures) from db.local.clamav.net (IP: 85.199.169.78)

Leider habe ich in der freshclam.conf nichts gefunden um die Zeit mit zu loggen. Daher kann ich nicht sagen wie lange Freshclam benötigt um die Updates zu laden. Habe nun erstmal den Selfcheck vom clamd auf 2 Stunden raufgesetzt.
 
Um einen Zeitstempel in ein Logfile zu bekommen, kann man auf einen unsauberen Trick zurück greifen:
Cronjob anlegen:
Code:
* * * * * /bin/date >> /var/log/freshclam.log

Dadurch wird das Logfile zwar zwischenzeitlich etwas voll und unübersichtlich, aber es erfüllt den Zweck.
Nicht vergessen den Cronjob zu löschen, sobald Du hast, was Du wissen wolltest. :)

huschi.
 
Back
Top