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…“)
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