Clamscan Monitoring Plugin

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

Dieser Artikel beschreibt die Installation und Konfiguration des Clamscan Monitoring Plugins in Nagios bzw. Icinga. Das Plugin ermöglicht die Auswertung einer Log-Datei des Anti-Viren-Programms clamscan. Das Plugin zeigt detaillierte Statusinformationen, falls clamscan gerade ausgeführt wird, wann der letzte Scan durchgeführt wurde und ob ein Virus gefunden wurde.

Wichtige Vorabinformation

Das Plugin selbst startet den Viren-Scanner clamscan nicht. Diese Aufgabe muss z.B. durch einen entsprechen Eintrag als Cronjob erledigt werden (siehe Abschnitt zum Clamscan Cron Job weiter unten).

Download

Das Plugin steht auf den Open Source Software Seiten von Thomas Krenn zum Download zur Verfügung:

Das Plugin wird über GitHub zur Verfügung gestellt: check_clamscan_v1.git

Die aktuelle Entwicklungsversion finden Sie auf GitHub:

Nützliche Informationen und Tipps für die Verwendung von Git finden sich auch in der Artikel-Reihe der Kategorie Git.

Plugin-Funktionalitäten

Folgenden Funktionalitäten werden vom Plugin zur Zeit umgesetzt:

  • Prüfung ob ein Virus gefunden wurde (anhand der Log-Datei).
  • Fehlermeldungen wenn die Log-Datei nicht geparst oder nicht zum Lesen geöffnet werden konnte.
  • Ausgabe der Clamscan Engine Version und von Performance-Daten, wenn die Datei erfolgreich geparst werden konnte.
  • Fehlermeldung, wenn der aktuelle Scan zu lange läuft (einstellbares Intervall). Dies passiert etwa, wenn clamscan bei einer zu scannenden Datei hängen bleibt und nicht mehr weiter scannt.
  • Fehlermeldung, wenn der letzte Scan zu lange zurück liegt, etwa wenn der Cron Job nicht mehr richtig gestartet wird (einstellbares Intervall).
  • Wenn clamscan gerade läuft wird die Prozess-ID ausgegeben.

Installation des check_clamscan Plugins

Eine Installation des Plugins setzt folgende Dinge voraus:

  • Einen funktionierenden clamscan
  • Folgende Perl-Plugins:
    • sudo apt-get install libproc-processtable-perl libclass-date-perl libdate-calc-perl

Für die Installation der Plugin-Datei selbst muss die Datei "check_clamscan" in das Verzeichnis der Nagios- bzw. Icinga-Plugins kopiert und als ausführbar gekennzeichnet werden:

$ sudo cp check_clamscan /usr/lib/nagios/plugins/
$ sudo chmod +x /usr/lib/nagios/plugins/check_clamscan

Weitere Installations-Schritte werden für die Plugin-Datei nicht mehr benötigt.

Konfiguration des Plugins

Ein Aufruf des Plugins benötigt zumindest:

  • den Pfad des zu scannenden Verzeichnisses
  • den Pfad der Log-Datei, die von clamscan generiert wurde

Ein erfolgreicher Aufruf generiert z.B. folgenden Output:

$ ./check_clamscan -sd /home/gschoenb/Downloads/ -l /home/gschoenb/clamscan.log 
OK - Last run Fri Dec  7 11:10:43 2012 using engine 0.97.6 |scan_interval=0;2;5; infected_files=0;1;1;
scanned_files=19 scanned_directories=1 data_scanned=137.51MB time=10.256s known_viruses=1335690
data_read=131.16MB

Läuft ein clamscan gerade, ergibt sich folgender Output:

$ ./check_clamscan -sd /home/gschoenb/Downloads/ -l /home/gschoenb/clamscan.log 
OK - Pid 24960 since Fri Dec  7 11:15:10 2012 |scan_runtime=0.00194444444444444;12;24;

Clamscan Cron Job

Der Cron Job für den clamscan Job sichert den täglichen Scan nach Viren, darüber hinaus wird im folgenden Beispiel logrotate für das Log des Scan-Ergebnisses aktiviert:

$ touch /etc/cron.daily/clamscan
$ chmod +x /etc/cron.daily/clamscan
$ vi /etc/cron.daily/clamscan
    #!/bin/sh
    logrotate -f /etc/logrotate_clamscan.conf
    clamscan -r -i --stdout /home/ > /var/log/clamav/clamscan.log

Der Paramerter "--stdout" garantiert, dass alle clamscan-Meldungen auf die Standard-Ausgabe geschrieben werden. Diese Meldungen werden anschließend in die Datei "clamscan.log" umgeleitet. Diese Log-Datei ist insofern von Bedeutung, da check_clamscan diese Datei nach gefunden Viren überprüft und außerdem anhand des letzten Änderungsdatums der Datei feststellen kann, wann der letzte Scan erfolgt ist.

Logrotate der clamscan Log-Datei

Da die Log-Datei für die Auswertung Scans vom Plugins genutzt wird, empfiehlt es sich, die Datei einige Zeit für eine etwaige Analyse aufzubewahren.

 
# vi /etc/logrotate_clamscan.conf:
    /var/log/clamav/clamscan.log {
        rotate 30
        daily
        ifempty
        missingok
        nocompress
    }

check_clamscan Hilfe-Text

Der folgenden Hilfe-Text erklärt die Parameter des clamscan-Plugins:

Usage:
check_clamscan -sd <scanned directory> -l <clamscan log file> | [-w <list of warn levels>]
[-c <list of crit levels>] [-v|-vv|-vvv] [-h] [-V]

  [-sd <scanned directory>]
        Provide the path to the directory scanned by clamscan. This is useful to detect if
        clamscan is currently running and scanning the directory as the path is visible
        in the ps command.
  [-l <clamscan log file>]
        Provide the path to the clamscan log output. Clamscan should be called with
        the '--stdout' and the output redirected to the log file via '>'.
        E.g. clamscan -r -i --stdout /home/ > /var/log/clamav/clamscan.log
  [-w <list of warning thresholds>]
       Change the default warning levels. The order of the levels
       is:
       -scan_interval
       -infected_files
       -scan_runtime
       Levels that should stay default get a 'd' assigned.
       Example:
           check_clamscan -w '5,d,d' 
       This changes the warning level for the scan interval to 5 days.
  [-c <list of critical thresholds>]
       Change the default critical levels. The order of the levels
       is the same as for the warning levels.
       Levels that should stay default get a 'd' assigned.
       Example:
           check_clamscan -c '7,d,d' 
       This changes the critical level for the scan interval to 7 days.  		
  [-v <Verbose Level>]
       be verbose
         (no -v) .. single line output
         -v ..... single line output with additional details for warnings
         -vv ..... multi line output, also with additional details for warnings
         -vvv ..... normal output, then debugging output, followed by normal multi line output
  [-h]
       show this help
  [-V]
       show version information
  * Example Usage of plugin:
       check_clamscan -sd /home/ -l /var/log/clamav/clamscan.log

Weitere Informationen


Foto Georg Schönberger.jpg

Autor: Georg Schönberger

Georg Schönberger, Abteilung DevOps bei der XORTEX eBusiness GmbH, absolvierte an der FH OÖ am Campus Hagenberg sein Studium zum Bachelor Computer- und Mediensicherheit, Studium Master Sichere Informationssysteme. Seit 2015 ist Georg bei XORTEX beschäftigt und arbeitet sehr lösungsorientiert und hat keine Angst vor schwierigen Aufgaben. Zu seinen Hobbys zählt neben Linux auch Tennis, Klettern und Reisen.


Das könnte Sie auch interessieren

Adaptec RAID Monitoring Plugin unter Windows Server 2012 einrichten
TouchMon
Windows Host in Icinga einbinden