Webseiten-Werkzeuge

Benutzer-Werkzeuge


Lokale Überwachung

In großen convert4print-Installationen sind oft Verwaltungs- und Überwachungssysteme vorhanden, die auch mit convert4print zusammenarbeiten sollen.

Die Überwachung der einzelnen convert4print-Netzwerkdienste wie Konverter/Gateway-Service oder Management-Konsole ist in der Regel kein Problem, weil es sich um normale Dienste innerhalb des Windows-Systems handelt, für die es Standardmethoden der Überwachung und Steuerung (Starten, Beenden, Neustart, etc) gibt.

Auch die Überwachung der Fehlermeldung dieser Dienste ist eine Standardaufgabe, weil alle convert4print-Dienste Meldungen in der Ereignisanzeige des Windows-Systems absetzen. Auch dafür gibt es Standardmethoden der Überwachung.

Um aber einzelne Konverter oder Gateways steuern zu können, bedarf es der Unterstützung durch ein Hilfsprogramm, das der convert4print-Installation beiliegt. Dieses Hilfsprogramm steht in der Datei mit dem Namen c4pRemote.exe innerhalb des Installationsverzeichnisses. Das Programm muß auf dem Rechner ausgeführt werden, auf dem der zu steuernde Konverter/Gateway-Service läuft.

Ein Aufruf des Programms über die Kommandozeile (DOS-Box (Eingabeaufforderung)) zeigt eine kurze Beschreibung, die möglichen Parameter und ein paar beispielhafte Aufrufe an. Auch die Rückkehrwerte des Programms sind aufgelistet.

 c4pRemote V3.1  (c) 2010 by SPE Systemhaus GmbH

 Description:
  Allows remote control of convert4print Converter/Gateway Service. 
  Must run on the same machine as the Converter/Gateway Service.

 Program options are:
  -[SsTtaq]  Remote command
             S - Start all converters/gateways
             s - Start single converter/gateway (-n)
             T - Terminate all converters/gateways
             t - Terminate single converter/gateway (-n)
             A - Abort all converters/gateways
             a - Abort single converter/gateway (-n)
             q - Query single converter/gateway (-n)
             m - Query main console
             b - Query backup console
  -n   Full name of converter/gateway

 Return codes:
     0 - Success
     1 - Not all converters/gateways started
     2 - Not all converters/gateways terminated

 Return codes for query:
   100 - stopped, grey flag
   101 - idle, yellow flag
   102 - printing, green flag
   103 - waiting on license, cyan flag
   104 - waiting for printer, magenta flag
   105 - special operation mode, white flag
   106 - error, red flag
   110 - intervention required, blue flag
   111 - paper jam, blue flag
   112 - load paper, blue flag
   113 - toner low, blue flag
   114 - cover open, blue flag
   115 - offline, blue flag
   116 - network lost, blue flag
   117 - outbin full, blue flag

 Return codes for console check:
   200 - functional, green flag
   201 - license ends soon, check it, green flag
   202 - red key must be reactivated, green flag
   203 - red key expired, update license file, green flag
   210 - not functional, red flag
   214 - lease time ends soon, red flag
   215 - console is incompatible, red flag
   216 - activate at least one console, red flag
   217 - license file needs an update, red flag
   220 - not configured, white flag

 Return codes in case of error:
   -10 - No access rights for registry
   -11 - Service not running
   -12 - Converter or gateway not found
   -14 - Unknown program option
   -15 - Program option must start with a minus
   -16 - Can't access registry
   -17 - Can't start a single converter or gateway
   -18 - Can't terminate a single converter or gateway

 Examples:
  c4pRemote -s -n"Labelprinter Production"
  c4pRemote -T
  c4pRemote -q -n"Systemprinter"
  c4pRemote -m
  c4pRemote -b

 convert4print (R)  is a registered trademark
                    of SPE Systemhaus GmbH

Dieses Programm kann als Teil von Skripten und Agenten zur Remote-Steuerung aus Überwachungs- und Steuerungssystemen heraus eingesetzt werden.


Für Installationen, in denen keine Überwachungssoftware zur Verfügung steht, kann mit Windows Bordmitteln (8, 8.1, 10, Server 2012/2016/2019) zumindest die Ereignisanzeige überwacht werden.

Im Installationsverzeichnis von convert4print befindet sich eine Datei mit dem Namen settrigger.cmd, die ein Befehlsskript enthält, das die Überwachung durch das Betriebssystem einrichtet. Ein Doppelklick auf die Datei führt das Skript aus.

Der Befehl zum Einrichten der Überwachung lautet:

 eventtriggers /create 
               /tr c4pTrigger
               /l  application 
               /so "c4pService" 
               /tk "perl c:\programm\convert4print\c4pEvents.pl Alles"

Der Parameter /create erstellt einen neuen Ereignisauslöser, der Protokollereignisse überwacht und dann den angegebenen Vorgang ausführt. Der Parameter /tr c4pTrigger bestimmt einen Anzeigenamen, der mit dem Ereignisauslöser assoziiert werden soll. Der Parameter /l application bestimmt das Ereignisprotokoll, in dem Ereignisse überwacht werden. In diesem Fall wird das Anwendungs-Protokoll überwacht. Der Parameter /so „c4pService“ bestimmt eine Ereignisquelle, auf die der Ereignisauslöser reagieren soll, hier den internen Namen des Konverter/Gateway-Services. Mit dem Parameter /tk „perl …„ wird die auszuführende Aufgabe bestimmt. In diesem Fall hier der Aufruf eines speziellen Perl-Skripts, dem der Parameter Alles mitgegeben wird.


Soll nur auf ein bestimmtes Ereignis, zum Beispiel den Start des Konverter/Gateway-Services reagiert werden, kann mit dem Parameter /eid 1002 das konkrete Ereignis benannt werden. Die Bedeutung der einzelnen Ereignis-Nummern kann durch Anzeigen im Anwendungsprotokoll ermittelt werden. Der komplette Befehl sieht dann wie folgt aus:

 eventtriggers /create 
               /tr c4pTrigger 
               /l application 
               /so "c4pService" 
               /eid 1002 
               /tk "perl c:\programm\print2forms\c4pEvents.pl Start"

Der Parameter Start dient nur dem Skript für die Unterscheidung der Ereignisse und ist natürlich je nach eingesetztem Skript entsprechend anzupassen.


Der Vollständigkeit wegen sei hier noch das Beispielskript c4pEvents.pl in Perl aufgeführt. Es liest die letzten zehn Ereignisse für den c4pService aus dem Ereignisprotokoll und versendet sie via EMail an den im Script eingetragenen Empfänger.

 #!/usr/bin/perl
 
 # Command:    perl c4pEvents.pl "msg"
 
 use MIME::Lite;
 use Win32::EventLog;
 use strict;
 
 # Parameter die ggf. angepaßt werden müssen
 
 my $MailService = '10.1.1.1';                # Name oder IP des MailServices
 my $To = 'admin@www.spe-gmbh.de';           # Empfänger der Nachricht
 my $From = 'c4pService@c4p.spe-gmbh.de';     # Absender der Nachricht
 
 #---------------------------------------------------------------------------#
 
 sub Abort
   {
     exit $_[0];
   }
 
 #---------------------------------------------------------------------------#
 
 sub GetEvents
   {
     my ($recs, $base, $off, $count, $Text, $hashRef);
 
     my $handle=Win32::EventLog->new("Application", $ENV{ComputerName})
      or return "Fehler: Anwendungsprotokoll kann nicht geoeffnet werden.\n";
     $handle->GetNumber($recs)
      or return "Fehler: Anzahl der Ereignisse kann nicht gelesen werden.\n";
 
     $handle->GetOldest($base)
      or return "Fehler: Aeltester Eintrag kann nicht gelesen werden.\n";
 
     $off = $recs - 1;
     $count = 0;
     $Text = "";
     while ($off >= 0 && $count < 10) 
       {
         $handle->Read(EVENTLOG_BACKWARDS_READ|EVENTLOG_SEEK_READ,
                       $base+$off,
                       $hashRef)
         or return "Fehler: Eintrag $off kann nicht gelesen werden.\n";
 
         if ($hashRef->{Source} eq "c4pService")
           {
             Win32::EventLog::GetMessageText($hashRef);
             my $Msg = $hashRef->{Message};
 
             $Msg =~ s/\r\n*$//;            # CRLF am Ende entfernen
             $Msg =~ s/\r\n/|/g;            # eingebettete CRLF ersetzen
 
             my $EID = $hashRef->{EventID} & 1073741823;
             my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $idst) 
                      = localtime ($hashRef->{TimeGenerated});
 
             $Text = $Text . 
                      sprintf ("%d  %02d.%02d.%4d %02d:%02d:%02d %7d '%s'\n", 
                               $hashRef->{EventType},
                               $mday, $mon+1, $year+1900, $hour, $min, $sec,
                               $EID, $Msg);
             $count++;
           }
 
         $off--;
       }
 
     return $Text;
   }
 
 #---------------------------------------------------------------------------# 
 
 my $Msg = $ARGV [0];
 Abort 100 if ($Msg eq "");   # Fehlerhafte Kommandozeile
 
 # Die Nachricht erzeugen:
 
 my $Text = "\nDurch den c4pService erzeugte Nachricht.\n" .
            "\nUrsprung: $Msg\n\n" .
            "----- Auszug aus der Ereignisanzeige für c4pService ----\n\n" .
            GetEvents() .
            "--------------------------------------------------------\n\n";
 
 # siehe MIME::Lite Dokumentation für Schlüsselworte
 
 my $msg = MIME::Lite->new (To       =>$To,
                            From     =>$From,
                            Subject  =>'c4pService Protokollmeldung',
                            Data     =>$Text);
 
 MIME::Lite->send ('smtp', $MailService, Timeout=>60);
 $msg->send || Abort 120;
 
 exit 0;

Es lassen sich mehrere unterschiedliche Ereignisse gleichzeitig überwachen. Dazu muss der Befehl eventtriggers nur mehrfach aufgerufen werden. Je nach gestartetem Skript oder Programm können die dabei ausgelösten Aktionen praktisch beliebiger Natur sein.


Hinweise

  • Dieses Programm c4pRemote arbeitet ohne Wissen eines möglicherweise offenen Kontrollfeldes. Von daher können sich im Kontrollfeld recht ungewöhnliche Statusänderungen zeigen, die durch das im Hintergrund aufgerufene Programm verursacht sind. Insofern sollte man sich als Nutzer des Kontrollfeldes der Fremdsteuerung bewußt sein.
  • Das Programm c4pRemote selbst erkennt zur Zeit keine Mehrfachaufrufe. Sind mehrere Verwaltungs- oder Überwachungssysteme gleichzeitig im Einsatz, kann es zu unerwarteten Reaktionen kommen, da keine zeitliche Synchronisation beim Zugriff auf den Dienst stattfindet. Solche Fälle sollten grundsätzlich vermieden oder durch geeignete organisatorische Maßnahmen ausgeschlossen werden.
convert4print/handbuch/lokale_ueberwachung.txt · Zuletzt geändert: 2019-11-12 15:28 (Externe Bearbeitung)