Opmanager Script Monitoring

   Komut dosyaları sistem yöneticilerine büyük esneklik sağlar ve bu nedenle oldukça popülerdir.  OpManager'ın betik izlemesi, kendi geliştirdiğiniz betikleri yürütmenize yardımcı olur ve betik çıktısıyla sizi uyarır. PowerShell, Linux kabuk betiği, VBScript, Perl ve Python betiklerini kutudan çıktığı haliyle destekler. Bu sayfada, en sık kullanılan betik şablonları derlenmiştir; bu şablonlar ağ izlemenizi kolaylaştırmak için OpManager'a aktarılabilir. Betik çıktılarını almak için bu şablonu bir cihaza atayabilirsiniz. Oluşturduğunuz özel bir şablonu toplulukla paylaşmak veya topluluktan bir şablon içe aktarmak istediğinizde, şablonu içe/dışa aktarma seçeneği kullanışlı hale gelmektedir.

Daha fazla bilgi için bakınız:

SSL Monitoring

Biz bu kısımda VBScript kullanarak SSL sertifika süresi bittiği zaman uyarı alma işlemlerini uygulayacağız. İşlemlere başlamadan önce öngereksinimlerin tamamlanması gerekmektedir.

  1. OpenSSL, OpManager sunucusuna kurulmalıdır. https://slproweb.com/products/Win32OpenSSL.html linkini kullanarak yükleyebilirsiniz.
  2. Opmanager sunucusunda C bölümüne TEMP adında bir klasör oluşturun.
  3. Aşağıdaki script içeriğinde google.com yazan kısmı takip edeceğiniz SSL yüklü olduğu siteyi yazın ve MonitorName kısmındaki Google yazan kısmı SSL takip edeceğiniz siteye uygun bir isim vererek ssl.xml olarak kayıt ediniz.
<?xml version="1.0" encoding="UTF-8"?><properties>
<entry key="executeFrom">0</entry>
<entry key="version">2</entry>
<entry key="scriptBody">Option Explicit

Dim oShell, ArgObj, Fh, FSO, Line, ExpiryLine, DaysLeft, ExpDate, oExec, cert
Dim tstream, i, str, PluginPath, CertFilePath, char, XString
Const ForReading = 1

' Argümanlar:
'   0: host:port (örnek: example.com:443)
'   1: dosya adı (örnek: cert.txt)
CertFilePath = "C:\TEMP\" &amp; wscript.Arguments(1)
PluginPath = "C:\Program Files\OpenSSL-Win64\bin\"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set tstream = FSO.CreateTextFile(CertFilePath, True)
ArgObj = wscript.Arguments(0)
Set oShell = wscript.CreateObject("WScript.Shell")

' Sertifikayı openssl ile al
Set oExec = oShell.Exec(PluginPath &amp; "openssl.exe s_client -connect " &amp; ArgObj)

' Sertifikayı dosyaya yaz (END CERTIFICATE satırına kadar)
Do Until oExec.StdOut.AtEndOfStream
    char = oExec.StdOut.Read(1)
    tstream.Write (char)

    If Len(XString) &lt; 20 Then
        XString = XString &amp; char
    ElseIf XString = "END CERTIFICATE-----" Then
        Exit Do
    Else
        XString = Mid(XString, 2, 19) &amp; char
    End If
Loop

tstream.Close
oExec.Terminate

' Sertifika tarih bilgilerini al
Set oExec = oShell.Exec(PluginPath &amp; "openssl.exe x509 -noout -in """ &amp; CertFilePath &amp; """ -dates")
Line = oExec.StdOut.ReadAll
wscript.echo Line

' notAfter satırını bul ve tarihi al
Dim LinesArray
LinesArray = Split(Line, vbNewLine)
For Each Line In LinesArray
    If InStr(Line, "notAfter=") &gt; 0 Then
        ExpiryLine = Trim(Mid(Line, InStr(Line, "notAfter=") + 9))
        Exit For
    End If
Next

If ExpiryLine = "" Then
    wscript.echo "Hata: Sertifika bitiş tarihi alınamadı."
    WScript.Quit(1)
End If

' Tarihi uygun formata çevir
ExpDate = ConvertDate(ExpiryLine)

' Gün sayısını hesapla
DaysLeft = DateDiff("d", Now(), ExpDate)

' Çıktı ver
wscript.echo "Message:  Time remaining for SSL certificate expiration: " &amp; DaysLeft &amp; " day(s)"
wscript.echo "Data:"
wscript.echo "DaysToExpire: " &amp; DaysLeft

' Nesneleri temizle
oExec.Terminate
Set oShell = Nothing
Set oExec = Nothing

' Geçici dosyayı sil
Dim filedel
Set filedel = CreateObject("Scripting.FileSystemObject")
If filedel.FileExists(CertFilePath) Then
    filedel.DeleteFile(CertFilePath)
End If

WScript.Quit

' Tarih dönüştürme fonksiyonu
Function ConvertDate(DateStr)
    Dim Components, Month, Day, Year
    Components = Split(DateStr)

    Select Case Components(0)
        Case "Jan", "January": Month = 1
        Case "Feb", "February": Month = 2
        Case "Mar", "March": Month = 3
        Case "Apr", "April": Month = 4
        Case "May": Month = 5
        Case "Jun", "June": Month = 6
        Case "Jul", "July": Month = 7
        Case "Aug", "August": Month = 8
        Case "Sep", "Sept", "September": Month = 9
        Case "Oct", "October": Month = 10
        Case "Nov", "November": Month = 11
        Case "Dec", "December": Month = 12
        Case Else: Month = 1
    End Select

    ' Genelde: Jul 29 12:00:00 2025 GMT
    If UBound(Components) = 5 Then
        Day = Components(1)
        Year = Components(3)
    Else
        Day = Components(1)
        Year = Components(3)
    End If

    ConvertDate = CDate(Day &amp; "/" &amp; Month &amp; "/" &amp; Year)
End Function</entry>
<entry key="timeout">10</entry>
<entry key="clrMessage">$MONITOR is now back to normal, current value is $CURRENTVALUE%</entry>
<entry key="yaxisText">units</entry>
<entry key="commandLine">cscript ${FileName}.vbs google.com:443 ${FileName}.txt</entry>
<entry key="criticalThresholdValue">30</entry>
<entry key="monitorDescription">VBSCript to get the number of remaining days of a website SSL certificate to expire</entry>
<entry key="rearmValue">30</entry>
<entry key="workingDir">${TempDir}</entry>
<entry key="dataType">1</entry>
<entry key="failureThreshold">1</entry>
<entry key="thresholdEnabled">true</entry>
<entry key="criticalThresholdType">min</entry>
<entry key="criticalMessage">$MONITOR is $CURRENTVALUE, threshold value for this monitor is $THRESHOLDVALUE</entry>
<entry key="interval">30</entry>
<entry key="monitorName">Google SSL Certificate Expiry</entry>
</properties>

Opmanager üzerinde oturum açtıktan sonra, Settings → MonitoringScript Templates → More Actions → Import Template bağlantısına tıklayın. Açılan pencerede kayıt ettiniz ssl.xml dosyasını yükleyin. Yüklenen betiğe tıkladıktan sonra, Test Script kısmından herhangi bir kaynağı seçerek test edin.

Resim

Value kısmında kalan sertifika süresini görebilirsiniz.

Resim

Artık tek yapmanız gereken Associate butonuna basarak bu betiği opmanager sunucusuna atamak.

Resim

Kısa bir süre sonra betiğin çalıştığını görebilirsiniz.

Resim

Threshold değerini Script Templates kısmından değiştirdiğiniz zaman işlem geçerli olmayacaktır. Bu yüzden Opmanager cihazına gidip Script Monitors kısmından güncellemeniz gerekmektedir. 

Resim
Blog'a Dön