Managerüberwachung

Wird der Pmon ohne Argumente gestartet, dann wird sofort ein Projektstart durchgeführt, d.h. alle Manager werden in der definierten Reihenfolge gestartet, wobei der Folge-Manager erst gestartet wird, wenn der vorige Manager im Status "running" ist. Zur Beschleunigung des Startvorgangs werden die Value-Archive parallel gestartet.

Sollte während des Projektstarts ein Manager beendet werden, dann versucht der Pmon diesen neu zu starten (die Anzahl der Startversuche kann mit der Option "Restart" - siehe auch Funktionalität des Pmon - eingestellt werden). Sind auch die weiteren Startversuche erfolglos, wird der Projektstart fortgesetzt und der Manager, der beendet wurde, ignoriert. Ausnahme bilden der Data- und Event-Manager. Wenn der Data- bzw. Event-Manager beim Hochlauf des Projektes unerwartet beendet wird, wird der Projektstart abgebrochen und der Pmon geht in den WAIT_MODE, wobei nur mehr auf Kommandos per TCP gewartet wird (siehe auch TCP-Port weiter unten).

In redundanten Fehlerfällen wird das Projekt über den Pmon neu gestartet und nicht über den Event-Manager. Fehler beim Start wie ungültige Lizenz wird normal mit PRIO_FATAL oder Exit beendet.

Wurden alle Manager erfolgreich gestartet, dann wechselt der Pmon in den MONITOR_MODE, wobei einfach gestoppte Manager neu gestartet werden. Beachten Sie, dass nur Managers von registrierten Projekten gestartet werden können. Ein Projekt registrieren Sie über das Panel Project Administrator.

Hinweis

Bitte beachten Sie, dass ein Monitoring nur für Manager erfolgt, welche mit der Startoption "Immer" gestartet wurden.

Den Status der einzelnen Manager zeigt bei Bedarf das Consolepanel. Der in der Console angezeigte Status ist 0 (gestoppt), 1 (initialisiert), 2 (läuft) oder 3 (blockiert). Die PID ist eine numerische Prozess-ID.

Wird ein Manager gestartet, so werden seine stdout und stderr Ausgaben auf eine Datei im log-Verzeichnis umgeleitet, welches den Namen <manager><num>.log hat.

Spezialfälle

Wenn der WCCILdata beendet wird, oder wenn der WCCILevent bzw. WCCOAvalarch in einem redundanten System beendet wird, dann wird das gesamte Projekt neu gestartet (RESTART_MODE). Wird ein gestoppter/blockierender Manager erkannt, wird ein eventuell vorhandenes Skript im Verzeichnis
<
wincc_oa_path
>/bin
mit dem Namen crashAction und der Endung .sh (für Linux) oder .cmd (für Windows) gestartet, wobei unterschiedliche Argumente übergeben werden:

<Typ> <Managername> <Kommandozeilenoptionen><Prozess-ID>

Für <Typ> gelten folgende Einstellungen:

RESTART_ALL ... Wenn wie oben Event/Data/Valarch beendet werden.

RESTART_THIS ... Wenn ein einzelner sonstiger Manager beendet wird.

NO_RESTART_ANY_MORE ... Wenn ein Manager zu schnell wieder beendet wird (öfter als Restart# in ResetMin Minuten - diese Einstellungen sind in der progs-Datei definiert, siehe auch Funktionalität des Pmon).

DELAYING_RESTART ... wird statt "NO_RESTART_ANY_MORE" übergeben, wenn der Config-Eintrag restartDelaySeconds >0 definiert ist.

BLOCKED ... Wenn ein Manager gefunden wurde, dessen alive-Status sich zu lange nicht geändert hat.

EMERGENCY_MODE ... Wird aufgerufen, wenn sich das System (Data-Manager) in den Emergencymodus schaltet. Das bedeutet, dass keine Manager gestartet werden, weil sich das System in den Emergencymodus geschaltet hat.

STARTUP_TIMEOUT ... Wenn der Start des Projektes länger als das über den Config-Eintrag "startupTimeoutSeconds" angegebene Time-out dauert, wird das crashAction-Skript gestartet.

Beispiel

Das folgende Beispielskript crashAction_sample.cmd ( WinCC OA Installationsverzeichnis unter /bin) schickt bei nicht ordnungsgemäßen Abschalten eines Managers eine Nachricht:

rem ************************ crashAction.cmd **************************

rem *******************************************************************

rem * this script is called by WinCC OA Console on WinCC OA manager crash

rem * with following parameters:

rem * %1 <next_action>: one of:

rem * NO_RESTART/RESTART_ALL/RESTART_THIS/NO_RESTART_ANY_MORE/EMERGENCY_MODE

rem * %2 <manager>

rem * %3 <manager parameter> ...

rem *******************************************************************

net send %computername% " WinCC OA manager crashed:" %1 %2 %3 %4 %5 %6 %7 %8 %9

Abbildung 1. Nachricht über Manager

Unter Linux siehe Inhalt von crashAction_sample.sh aus dem WinCC OA Installationsverzeichnis unter /bin.

TCP-Port

Der Pmon öffnet beim Start einen TCP-Server Socket mit der Portnummer 4999. Die Portnummer kann mit der Kommandozeilenoption -port nnnn oder mit dem Config-Eintrag pmonPort in der [general]-Sektion geändert werden.

Über diesen Port kann der Pmon abgefragt bzw. gesteuert werden. 3 Arten von Protokollen werden an diesem Port unterstützt (die Erkennung erfolgt automatisch):

  1. HTTP
  2. Spezielles Pmon Protokoll
  3. SNMP

HTTP

Der Pmon schickt eine HTML-Seite, welche den Status des Projektes anzeigt. Diese Seite kann mit einem Browser aufgerufen werden und wird automatisch alle 5 Sekunden aktualisiert. Der Aufruf im Browser sieht folgendermaßen aus:

http://localhost:4999

Diese Seite lässt auch die Steuerung des Projektes zu. Einzelne Manager bzw. das ganze Projekt kann gestartet/gestoppt werden (siehe Abbildung unterhalb). Jeder Zugriff muss immer authentifiziert werden. Die Definition der Authentifizierung erfolgt über die Kommandozeilenoption -auth des Pmon. Benutzername und verschlüsseltes Kennwort für die Authentifizierung sind in der progs-Datei enthalten.

Abbildung 2. eine HTML-Seite zeigt den Projektstatus an

Über die Schaltflächen unter Project kann das Projekt gestartet, gestoppt und neu gestartet werden. Es kann zudem der WAIT_MODE aktiviert werden. In diesem Modus führt der PMON nur explizite Kommandos aus. Das bedeutet, dass, wenn ein Manager in diesem Modus abstürzt, dieser nicht automatisch neu gestartet wird.

Weiter oben auf der Seite können Sie selektieren, ob der Projektstatus automatisch aktualisiert werden soll oder nicht und ob zusätzliche Managerinformationen (start mode, secs kill, restart count and reset minutes) angezeigt werden sollen.

Spezielles Pmon Protokoll

Über dieses Protokoll kann die gesamte PmonTable abgefragt oder auch geändert werden. Mit speziellen Kommandos, die an den geöffneten Port geschickt werden, ist eine Steuerung des Projektes möglich. Weitere Informationen zu den verfügbaren Kommandos finden Sie auf der Seite Details zum Pmon.

SNMP

SNMP ist eine Lösung für das Kontrollieren Ihrer gesamten Netzwerk-Infrastruktur. SNMP ist standardmäßig deaktiviert. Um SNMP zu aktivieren, benötigen Sie den Config-Eintrag allowSNMP = "yes" in der [pmon]-Sektion der Config-Datei.

Pmon Watchdog

Ein CTRL script pmonWatchdog.ctl ist Teil der Scriptliste pvss_scripts.lst.

Das pmonWatchdog.ctl-Script überwacht die angegebenen Manager (definiert über Config-Einträge) und beendet diese, wenn diese länger als die angegebene Zeit blockieren (angegeben mittels des Config-Eintrages waitUntilKill).

Wenn Pmon Watchdog verwendet wird und ein überwachter Manager blockiert, wird ein Alarm ausgelöst. Der Alarm wird im Alarmschirm angezeigt. Wann der Manager beendet wird, ist durch den Config-Eintrag waitUntilKill definiert (siehe die Beschreibung der Config-Einträge unterhalb).

Abbildung 3. blockierender Manager im Alarmschirm
VORSICHT: Wenn Managernummer nachträglich geändert werden, muss das Script pmonWatchdog.ctl neu gestartet werden. Starten Sie den CTRL-Manager 1 mit dem Script -f pvss_scripts.lst in der WinCC OA -Konsole neu.

Die Config-Einträge haben die folgende Syntax und müssen in die [pmonWatchdog]-Sektion eingefügt werden.

Config-Eintrag Beschreibung
waitUntilKill

Das Time-out in Sekunden. Der Defaultwert für das Timeout ist 180 Sekunden.

Wenn der Wert -1 gesetzt wird, wird die Funktion deaktiviert.

monitoredManager

monitoredManager = "manager name,manager number"

Managername: Für den Managernamen geben Sie den Dateinamen ohne die Dateierweiterung an, z.B. WCCOActrl, WCCOAiec61580.

Der zweite Parameter ist die Managernummer . Wenn keine Nummer angegeben wurde, werden alle Manager des Typs (Managername) überwacht.

Überwachung eines spezifischen Managers inklusive Managernummer ist möglich nur, wenn die Managernummer als Startparameter angegeben wurde. Das ist die Nummer, die verwendet wurde, um einen Manager in der Console zu starten.

Wenn keine monitoredManager-Einträge definiert wurden, wird die Funktion deaktiviert auch wenn das Time-out > 0 wäre.

Beispiel:

[pmonWatchdog]

waitUntilKill = 300

monitoredManager = "WCCOAvalarch" # Überwache alle Archive-Manager

monitoredManager = "WCCOActrl,5" #Überwache nur CTRL-Manager mit der Nummer 5

Anmerkung: Wenn das Projekt/ der Prozessmonitor passwortgeschützt ist, kann die Überwachungsfunktion aus Sicherheitsgründen nicht verwendet werden.

Speichern Sie das Passwort nicht im Klartext im pmonWatchdog.ctl-Script oder in den WinCC OA Konfigurationsdateien.

Nur der Prozessmonitor auf dem eigenen Rechner kann überwacht werden. Ein Verbindungsaufbau zu einem Prozessmonitor auf einem abgesetzten Rechner ist nicht möglich.

Debug Flag -dbg wdc

Das Debug-Flag -dbg wdc kann zur Ausgabe der Watchdog-Informationen verwendet werden. Das Debug Flag gibt zusätzliche Informationen aus: welcher Manager wird überwacht, den Status des Managers und ob der Manager geblockt ist sowie die Zeit wenn der Manager geblockt wurde.