NoSpamProxy Forum
NSP in Verbindung mit PRTG - Druckversion

+- NoSpamProxy Forum (https://forum.nospamproxy.com)
+-- Forum: NoSpamProxy Server (https://forum.nospamproxy.com/forumdisplay.php?fid=1)
+--- Forum: Monitoring, Migration, Recovery (https://forum.nospamproxy.com/forumdisplay.php?fid=11)
+--- Thema: NSP in Verbindung mit PRTG (/showthread.php?tid=17)



NSP in Verbindung mit PRTG - JanJäschke - 25.09.2019

Ich habe gestern erst das Thema zu unserem GitHub aufgemacht und wurde gleich von meinem Kollegen Stefan Cink auf einen interessanten Blog Beitrag aufmerksam gemacht.

Daniel Wydler hat in seinem Blog "Aus der IT – Praxis… im Schwabenland" festgehalten wie er mittels PowerShell und PRTG den NSP an seine Bedürfnisse angepasst überwacht.
Hier geht es zu seinem Beitrag: NoSpamProxy mit Paessler PRTG überwachen

Wir freuen uns immer wieder zu sehen was Kunden alles aus dem NSP herausholen und dies dann auch wieder öffentlich mit allen teilen.

Danke dafür  Smile


RE: NSP in Verbindung mit PRTG - StefanCink - 25.09.2019

Thomas Stensitzki hat in seinem Blog ebenfalls einen schönen Artikel zur Anbindung von NoSpamProxy an PRTG geschrieben: https://www.granikos.eu/de/justcantgetenough/PostId/238/prtg-custom-sensor-to-monitor-nospamproxy-message-flow

Gruß Stefan


RE: NSP in Verbindung mit PRTG - cpohle - 16.11.2020

wir haben die Überwachung bei uns in Zabbix eingebunden inkl. der Überwachung der Replikations Artefakte.

k.A. ob ausser uns noch jemand Zabbix nutzt, aber vlt kann man da auch was zusammenschreiben....


[attachment=100]


RE: NSP in Verbindung mit PRTG - AbsoluteBeginner - 14.04.2021

(16.11.2020, 17:21)cpohle schrieb: wir haben die Überwachung bei uns in Zabbix eingebunden inkl. der Überwachung der Replikations Artefakte.

k.A. ob ausser uns noch jemand Zabbix nutzt, aber vlt kann man da auch was zusammenschreiben....

Gibts da ein Template? 
Ich wäre sehr interessiert.

Danke vorab


RE: NSP in Verbindung mit PRTG - cpohle - 31.08.2021

Moin,

sorry for late reply. Also nein, nen Template gibts da nicht und ich bin auch ehrlich gesagt nicht so fit in Zabbix dass ich daraus eins erstellen könnte.
Aber vom Prinzip her habe ich ein Userscript im Installationsverzeichnis des Zabbix Agents erstellt und abgelegt welches Zyklisch die Statistikdaten via NSP PowerShell Modul abfragt. Der Inhalt der Variablen wird dann einfach nur an Zabbix übergeben.

[attachment=176]

Die PS Scripte hänge ich mal an. Im Internet gibts auch genug HowTos wie man ein PS Script via Zabbix Agent ausführt und Daten übergibt.

Bei den Replikationsartefakten ist es im Prinzip ähnlich gelöst, nur dass ich hier via PowerShell ne SQL Verbindung aufrufe pro Rolle. Heisst dass dieses PS Script zyklisch auf allen GW Rollen und der Intranetrolle läuft und die Daten an Zabbix übergibt. Möglicherweise geht das auch von der GW Rolle aus und von dort dann nen Connect zu allen Rollen, aber Firewalltechnisch war das bei uns nicht gewollt!

Die Parameter am Anfang kann man ebenfalls via Zabbix an das PS Script übergeben!

[attachment=177]

Code:
Param
(
    [Parameter(Mandatory = $true,Position=0)][string]$userName,
    [Parameter(Mandatory = $true,Position=1)][string]$password
)

$ErrorActionPreference = 'Stop'
$1hour = New-TimeSpan -Minutes 1

$password = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($password))
$userName = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($userName))

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$Credentials = New-Object System.Management.Automation.PSCredential($userName, $securePassword)
$session = New-PSSession -ComputerName localhost -Credential $Credentials

$incoming = [int](Invoke-Command -Session $session -ScriptBlock {Get-NspMessageTrack -Age $USING:1hour -Directions FromExternal -CountOnly})
$outgoing = [int](Invoke-Command -Session $session -ScriptBlock {Get-NspMessageTrack -Age $USING:1hour -Directions FromLocal -CountOnly})
$DeliveryPending = [int](Invoke-Command -Session $session -ScriptBlock {Get-NspMessageTrack -Age $USING:1hour -Status DeliveryPending -CountOnly})
$inboundRejects = [int](Invoke-Command -Session $session -ScriptBlock {Get-NspMessageTrack -Age $USING:1hour -Directions FromExternal -Status PermanentlyBlocked, TemporarilyBlocked -CountOnly})
$localRejects = [int](Invoke-Command -Session $session -ScriptBlock {Get-NspMessageTrack -Age $USING:1hour -Directions FromLocal -Status PermanentlyBlocked, TemporarilyBlocked -CountOnly})
$inboundDeliveryFailure = [int](Invoke-Command -Session $session -ScriptBlock {Get-NspMessageTrack -Age $USING:1hour -Directions FromExternal -Status DispatcherError -CountOnly})
$outboundDeliveryFailure = [int](Invoke-Command -Session $session -ScriptBlock {Get-NspMessageTrack -Age $USING:1hour -Directions FromLocal -Status DispatcherError -CountOnly})
$NDRsSendTotalDE = [int](Invoke-Command -Session $session -ScriptBlock {Get-NspMessageTrack -Subject "unzustellbar:*" -CountOnly})
$NDRsSendTotalEN = [int](Invoke-Command -Session $session -ScriptBlock {Get-NspMessageTrack -Subject "undeliverable:*" -CountOnly})

Remove-PSSession -Session $session

$totalTraffic = $incoming + $outgoing
$totalRejects = $inboundRejects + $localRejects
$NDRsSendReceived = $NDRsSendTotalDE + $NDRsSendTotalEN
$totalDeliveryFailed = $inboundDeliveryFailure + $outboundDeliveryFailure
#$totalDeliveryFailed = 307

$totalRejectRate = 0
$inboundRejectRate = 0
$localRejectRate = 0
if($totalTraffic -ne 0) {
    $totalRejectRate = [Math]::Round($totalRejects / $totalTraffic * 100,0)
   
    if($incoming -ne 0) {
        $inboundRejectRate = [Math]::Round($inboundRejects / $incoming * 100,0)
    }
    if($outgoing -ne 0) {
        $localRejectRate = [Math]::Round($localRejects / $outgoing * 100,0)
    }
}

$Data = @{
#    TotalMailTraffic = $totalTraffic
    IncomingMailTraffic = $incoming
    OutgoingMailTraffic = $outgoing
    DeliveryPendingTotal = $DeliveryPending
#    TotalRejectedMails = $totalRejects
    IncomingRejectedMails = $inboundRejects
    InboundDeliveryFailed = $inboundDeliveryFailure
#    TotalDeliveryFailed = $totalDeliveryFailed
    OutboundDeliveryFailed = $outboundDeliveryFailure
    NDRsSendReceivedTotal = $NDRsSendReceived
    OutgoingRejectedMails = $localRejects
#    TotalRejectRate = $totalRejectRate
#    IncomingRejectRate = $inboundRejectRate
#    OutgoingRejectRate = $localRejectRate
    }

$Data | ConvertTo-Json -Compress
$Data | ConvertTo-Json | out-file C:\temp\test.json


Code:
function Invoke-SQL {
    Param(
        [string]$DataSource,
        [string]$Database,
        [string]$SqlCommand,
        [string]$User,
        [string]$Password
    )
    if (($User) -and ($Password)) {
        $connectionString = "Data Source=$dataSource;User ID=$User;Password=$Password;Initial Catalog=$Database"
    } else {
        $connectionString = "Data Source=$dataSource; " + "Integrated Security=SSPI; " + "Initial Catalog=$database"
     }
    $connection = new-object system.data.SqlClient.SQLConnection($connectionString)
    $command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection)
    $connection.Open()
    $adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
    $dataset = New-Object System.Data.DataSet
    $adapter.Fill($dataSet) | Out-Null
    $connection.Close()
    $dataSet.Tables
}
# Example usage (sql auth):
$Artefacts = Invoke-SQL -dataSource SQLServer -database NoSpamProxyAddressSynchronization -user sqlreadinguser -password 12345 -sqlCommand 'SELECT count (*) FROM [DataReplication].[Artefact]'
$Artefacts | select -ExpandProperty Column1



RE: NSP in Verbindung mit PRTG - SBW - 24.04.2022

(25.09.2019, 08:27)JanJäschke schrieb: Daniel Wydler hat in seinem Blog "Aus der IT – Praxis… im Schwabenland" festgehalten wie er mittels PowerShell und PRTG den NSP an seine Bedürfnisse angepasst überwacht.
Hier geht es zu seinem Beitrag: NoSpamProxy mit Paessler PRTG überwachen
Eine neue Version des Skripts steht zur Verfügung. Neben der Überarbeitung der Abfragen werden nun auch u.a. die Laufzeit der SSL-Zertifikate auf den Connectoren, Laufzeit der NSP Lizenz und evtl. Vorfälle im NSP überwacht.