RAWSQL Monitoring mit ConnectWise Automate

RAWSQL Monitoring mit ConnectWise Automate

Lösung


Die RMM-Lösung ConnectWise Automate bietet die Möglichkeit, RAWSQL Monitors anzulegen. RAWSQL Monitors sind Internal Monitors und verwenden SQL-Statements, um Daten aus der Datenbank abzufragen. Diese sind besonders hilfreich, um einzelne Felder in der Datenbank zu überprüfen, beispielsweise den Heartbeat eines Systems. RAWSQL Monitors können dafür genutzt werden, mehrere Tabellen in der Datenbank miteinander zu verknüpfen und mehrere Felder zu prüfen und sind dabei nicht auf eine einzelne Tabelle in der Datenbank beschränkt. 

Um einen RAWSQL Monitor zu erstellen, öffnen Sie das Windows Control Center und navigieren zu Automation → Monitors → Internal Monitors.
Dort klicken Sie mit einem Rechtsklick in die Monitorübersicht und wählen "New Monitor". Es öffnet sich das nachfolgende Fenster: 


Hier wählen Sie "<Start Fresh>" und bestätigen mit "Next". Im Feld "Configuration" werden der Monitorname sowie die weiteren Check Conditions konfiguriert. 


Im Bereich "Table To Check" und "Field to Check" geben Sie einfach "RAWSQL" ein. Diese Felder geben an, dass ein RAWSQL Monitor erstellt werden soll. Als "Check Condition" wird "Anything" aus dem Drop-Down-Menü selektiert.

Unter "Additional Condition" wird nun das gewünschte SQL-Statement eingefügt. In diesem Beispiel verwenden wir das nachfolgende Statement. Sie können dies gerne für Ihren eigenen Monitor verwenden: 

SELECT 
    TIMESTAMPDIFF(MINUTE, c.LastContact, NOW()) AS TestValue, 
    c.name AS IdentityField, GREATEST(c.LastContact, IFNULL(LastHeartbeatTime, "0000-00-00 00:00:00")) AS ContactTime, 
    c.ComputerID AS ComputerID, c.LastContact, 
    h.LastHeartbeatTime, 
    acd.NoAlerts, acd.UpTimeStart, acd.UpTimeEnd, 
    CONVERT(CONCAT(clients.name,' ',locations.name) USING utf8) AS Location
FROM Computers AS c
LEFT JOIN HeartBeatComputers AS h ON h.ComputerID = c.ComputerID
LEFT JOIN AgentComputerData AS acd ON c.ComputerID = acd.ComputerID
LEFT JOIN Clients ON Clients.ClientID = c.clientid
LEFT JOIN Locations ON Locations.ClientID = Clients.ClientID
WHERE 
    (c.LastContact < NOW() - INTERVAL 11 MINUTE) 
AND 
    (h.LastHeartbeatTime IS NULL OR h.LastHeartbeatTime < NOW() - INTERVAL 3 MINUTE) AND (c.os LIKE '%server%')
 
Das Statement überprüft die Felder "LastHeartbeatTime" und "LastContact" auf allen Agents, die ein Server-Betriebssystem installiert haben. Damit wird ermittelt, ob ein Agent offline ist. 

Sie können das Statement auch nach Ihren Wünschen anpassen. Zum Beispiel überprüfen Sie nur eine bestimmte Gruppe an Agents. Hierfür tauschen Sie 

(c.os LIKE '%server%') 

einfach mit folgendem Zusatz aus:

c.ComputerID IN (Select ComputerID from TestGruppe)

Es gibt noch einige Hinweise bezüglich des Aufbaus von einem RAWSQL Monitor, die für die volle Funktionalität elementar sind. 

  1.  In der ersten Zeile ist es besonders wichtig, dass "TestValue" der erste Rückgabewert Ihres Statements ist. Darin wird das Ergebnis des Tests abgespeichert. Dies kann beispielsweise ein Integer, ein String oder wie in diesem Fall, die Differenz zwischen der aktuellen Uhrzeit und dem "LastHeartbeat" sein. Essentiell ist, dass Sie die Spalte "TestValue" nennen, sowie immer in Zeile eins des Statements untergebracht wird.
  2.  Die zweite Zeile enthält das "identityfiled". Diese Spalte muss immer als zweites zurückgegeben werden, sonst verwendet der Monitor hier die ComputerID. Dies ist die Spalte, die hilft zu unterscheiden, ob zusätzliche Alarme für einen Monitor basierend auf der ComputerID ausgelöst werden sollen. Dies kann alles sein, solange es für Ihre Bedingung, auf die der RAWSQL-Monitor prüft, eindeutig ist.
  3.  Mithilfe der ComputerID in Zeile vier wird der Agent eindeutig identifiziert und ist somit elementar für die Funktionalität des RAWSQL Monitors.
  4. Die Zeilen sieben, acht und neun bestimmen ob ein Alert ausgelöst werden sollte. Dabei wird auf die Tabelle "AgentComputerData" zurückgegriffen. 
  5. Abschließend werden in den Zeilen darunter drei LEFT JOIN's durchgeführt. Es ist notwendig zwischen der Tabelle der "Clients", sowie der "AgentComputerData" einen JOIN einzufügen.

Mit einem Klick auf "Build and View Query" lässt sich das Ergebnis des Internal Monitors anzeigen:


Wenn Sie mit der Ausgabe zufrieden sind, können Sie noch unter "Alerting" ein passendes Alert Template auswählen und die Einrichtung mit "Add" abschließen. 

Weitere Informationen zu der Thematik "RAWSQL Monitoring" finden Sie in der offiziellen Hilfe von ConnectWise Automate.

    • Related Articles

    • Aktivierung des Enhanced Heartbeat in ConnectWise Automate

      Lösung Der Enhanced Heartbeat wird in ConnectWise Automate sendet in einem konfigurierbaren Intervall einen "Heartbeat" über Port 75 UDP an den Automate Server. Anhand dieser Daten kann ConnectWise Automate verschiedene Aktionen oder Überprüfungen ...
    • Monitoring von SSL-Zertifikaten mit ConnectWise Automate

      Lösung Die regelmäßige Prüfung, wann SSL-Zertifikate von Kunden-Websites oder E-Mail-Servern auslaufen, gehört zu den typischen und wiederkehrenden Aufgaben eines IT-Dienstleisters. Die RMM-Lösung ConnectWise Automate unterstützt Sie in Verbindung ...
    • Monitoring von MDaemon mit ConnectWise Automate

      Lösung Diese Anleitung zeigt am Beispiel des MDaemon Email Server, wie leicht Drittsoftware in die Überwachung von ConnectWise Automate einbezogen werden kann. MDaemon schreibt bei Problemen Meldungen in die Ereignisanzeige von Windows. Diese Daten ...
    • Monitoring von BackupAssist mit ConnectWise Automate

      Lösung In dieser Anleitung erläutern wir Ihnen am Beispiel der Backup-Lösung BackupAssist, wie leicht Sie Drittanbieter Software mit ConnectWise Automate (kurz: CWA) überwachen/monitoren können. BackupAssist ist eine zuverlässige ...
    • Reporting in ConnectWise Automate

      Lösung Die Remote Monitoring und Management-Lösung ConnectWise Automate sammelt eine große Menge an Daten und Informationen von Kundensystemen. Diese stehen für Auswertungen, Visualisierungen und Berichte zur Verfügung. Dieser Artikel fasst die ...