Sophos AntiVirus in Nagios überwachen

Aus ITwiki
Version vom 18. August 2017, 14:17 Uhr von Flo84 (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Dieser Artikel bezieht sich auf die Sophos Endpoint Cloud Security-Lösung. Es ist möglich, dass auch der Update-Status andere AV-Produkte von Sophos mit dies…“)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Dieser Artikel bezieht sich auf die Sophos Endpoint Cloud Security-Lösung. Es ist möglich, dass auch der Update-Status andere AV-Produkte von Sophos mit diesem Nagios-Plugin überwacht werden können. Im Großen und Ganzen prüft das nachfolgende VBScript lediglich das Änderungsdatum der Datei

%programdata%\Sophos\AutoUpdate\data\status\SophosUpdateStatus.xml

Diese Datei wird bei jedem Update geändert.

Erstelle also zunächst die Datei check_sophosavupdate.vbs mit folgendem Inhalt:

'
' check_sophosavupdate.vbs
'
' Version 1.0
'
' Copyright by Flo Krug
'
' Comment: Nagios Plugin to check Sophos Antivirus Update time
'
' Parameters
' -w <warning_hours> (required): value in hours when nagios/this script generates a warning if sophos av was not updated
' -c <critical_hours> (required): value in hours when nagios/this script generates a critical if sophos av was not updated

Dim arg_warning, arg_critical, arg_counter
Dim strSophosAvFile, objSophosAvFile
Dim strUpdateDate, strWarningDate, strCriticalDate, strCurrentDate

' Parameters -w and -c required
Set args = WScript.Arguments
If args.Count < 4 Or args.Count > 4 Then
	WScript.Echo "UNKNOWN: wrong parameters. Use: check_sophosavupdate.vbs -w <warning_hours> -c <critical_hours>"
	WScript.Quit (3)
End If
arg_counter = 0
For Each arg In args
	arg_counter = arg_counter + 1
	If LCase(arg) = "-w" And arg_counter < args.Count Then
		arg_warning = args(arg_counter)
	End If
	If LCase(arg) = "-c" And arg_counter < args.Count Then
		arg_critical = args(arg_counter)
	End If
Next

' We have to check if SophosUpdateStatus.xml exists because this file tells us when the last Sophos AV update run 
Set wshShell = CreateObject( "WScript.Shell" )
strSophosAvFile = wshShell.ExpandEnvironmentStrings("%PROGRAMDATA%") & "\Sophos\AutoUpdate\data\status\SophosUpdateStatus.xml"

Set objFSO = Createobject ("Scripting.FileSystemObject")
If objFSO.FileExists(strSophosAvFile) = False Then
	WScript.Echo "UNKNOWN: File " & strSophosAvFile & " not found"
	WScript.Quit (3)
End If

' Now we need the last modified date and compare it with the current time
Set objSophosAvFile = objFSO.GetFile("" & strSophosAvFile & "")

strUpdateDate = objSophosAvFile.DateLastModified
strWarningDate = objSophosAvFile.DateLastModified + (arg_warning/24)
strCriticalDate = objSophosAvFile.DateLastModified + (arg_critical/24)
strCurrentDate = Now


' Compare last update time, warning and critical date and generate nagios event
If strCriticalDate <= strCurrentDate Then
	WScript.Echo "CRITICAL: last updated on " & strUpdateDate & " (WARNING on " & strWarningDate & ", CRITICAL on " & strCriticalDate & ")"
	WScript.Quit (2)
End If
If strWarningDate <= strCurrentDate Then
	WScript.Echo "WARNING: last updated on " & strUpdateDate & " (WARNING on " & strWarningDate & ", CRITICAL on " & strCriticalDate & ")"
	WScript.Quit (1)
End If

WScript.Echo "OK: last updated on " & strUpdateDate & " (WARNING on " & strWarningDate & ", CRITICAL on " & strCriticalDate & ")"
WScript.Quit (0)

Bewertung

War dieser Beitrag hilfreich für Dich?
Bitte stimme unten ab.
0
0
0
Es wurden seit Erstellung der Umfrage am 14:17, 18. Aug. 2017 0 Stimmen abgegeben.
poll-id 1E916E254E1F26C828B1BA5613DF501B