Sie können hier über Tags navigieren:


 

Wählen Sie ein Wiki aus:

B2B by Practice - Überwachung (SAP Solution Manager-Anbindung)

Problemstellung

Der Zustand von B2B by Practice soll mit Hilfe des Solution Manager in SAP (oder ggf. mit anderen Tools) überwacht werden.

Lösungsbeschreibung

B2B by Practice ist durch Schnittstellen und eine zusätzliche Webapplikation (org.b2bbp.external.monitoring.war) darauf vorbereitet, zentral durch den SAP Solution Manager überwacht zu werden. Die Webapplikation kann durch ihren Service Provider bereitgestellt werden. Alternativ können Sie auch die Webapplikation selbst aus dem B2B by Practice Quelltext erzeugen, worauf hier aber nicht eingegangen wird.

Voraussetzung: Die External Monitoring Webapplikation benötigt mindestens Java 1.5.

Architektur und Struktur der Nachrichten

Der Zustand von B2B by Practice wird vom SAP Solution Manager bei der Webapplikation per http erfragt. Diese wiederum erfragt den Zustand ebenso per http bei einer oder mehreren B2B by Practice Instanzen (Solution Manager Anbindung ist Clusterfähig). Initial benötigt der SAP Solution Manager ein Customizing, das zur Beschreibung der zu überwachenden Dienste dient. Dieses Customizing kann aus der Webapplikation exportiert werden und anschließend manuell importiert werden.
Der Zustand des B2B by Practice Systems wird vom Solution Manager per http-POST erfragt. Die Antwort der External Monitoring Webapplikation ist im xml-Format und wie folgt:
<?xml version="1.0" encoding="UTF-8"?>
<scenario>
	<scenname>B2BBP</scenname>
	<sceninst>1</sceninst>
	<scenversion>1</scenversion>
	<component>
		<compname>ASERVICE</compname>
		<compversion>1</compversion>
		<compdesc>Aktive B2BBBP-Services</compdesc>
		<comphost/>
		<compinst/>
		<messages>
			<message>
				<messalert>ERROR</messalert>
				<messseverity>255</messseverity>
				<messarea/>
				<messnumber/>
				<messparam1/>
				<messparam2/>
				<messparam3/>
				<messparam4/>
				<messtext>Node unknown Error getting ClusterNode Info from URL
                                          [http://localhost:8080/b2bbp-engine/clusternodeinfo] please check URL,
                                          Username and Password.</messtext>
			</message>
		</messages>
	</component>
	...
Im xml-Tag „scenario“ ist eine Gruppe von Komponenten beschrieben, in diesem Fall alle durch eine Instanz der External Monitoring überwachte Komponenten (Tag „component“). Hier ist nur eine Komponente beispielhaft ausgewählt, nämlich ASERVICE. In „messalert“ können die Werte „ERROR“ und „OKAY“ stehen. In „messseverity“ ist die Schwere des Fehlers auf einer Skala von „0“ bis „255“ abgebildet. In „messtext“ ist eine ausführlichere Fehlermeldung enthalten.

Einrichten der Anbindung

Zuerst müssen Einstellungen an B2B by Practice vorgenommen werden, danach wird die Installation und Konfiguration der External Monitoring Webapplikation beschrieben.

Konfiguration von B2B by Practice

Die restlichen Konfigurationsschritte erfolgen über die B2B by Practice GUI. Zum prinzipiellen Aktivieren der ASERVICE-Überwachung muss die globale Eigenschaft B3P_ENABLE_ACTIVITY_MONITOR, falls nicht vorhanden hinzugefügt, und dann auf den Wert true gesetzt werden. Des Weiteren kann der Timeout für die Überwachung der aktiven Services über den globalen Parameter B3P_MONITORING_EXECUTION_TIMEOUT konfiguriert werden (Ganzzahl in Sekunden), der als Standardwert beträgt 300 Sekunden.

In der Extension EXTERNAL_MONITORING werden die zu überwachenden Komponenten konfiguriert, hier nun in Einzelschritten erklärt. Zuerst werden die zu testenden Komponenten definiert, d.h. Alias-Namen werden Java-Klassen nach dem Schema class=ALIAS|package.classname zugeordnet:

class=ASERVICE|org.b2bbp.external.monitoring.components.ActiveServiceComponent
class=INDEXCOM|org.b2bbp.external.monitoring.components.IndexComponent
class=SYSAVAIL|org.b2bbp.external.monitoring.components.SystemAvailabilityComponent
class=PROCERR|org.b2bbp.external.monitoring.components.ProcessingErrorComponent
class=QUEUECOM|org.b2bbp.external.monitoring.components.QueueComponent
class=SYSERROR|org.b2bbp.external.monitoring.components.SystemErrorComponent
Zu beachten ist, dass der Alias-Name maximal 8 Zeichen lang sein darf. Hier eine genauere Beschreibung der momentan in B2B by Practice verfügbaren Komponenten, inkl. deren spezifischen Konfigurationsmöglichkeiten:
Komponente Beschreibung
ActiveServiceComponent Überprüft die Aktivität von aktiven Services anhand des B2B by Practice-Locking-Mechanismus:
ASERVICE=[http://localhost:8080/b2bbp-engine/clusternodeinfo]
Sollen mehrere Cluster-Instanzen überprüft werden, kann der Eintrag mehrfach auftauchen.
IndexComponent Überprüft die Größe der Index-Tabelle, d.h. die Menge der noch zu indizierenden Nachrichten:
INDEXCOM.indexTableMaxEntries=200
Wird dieser Schwellwert überschritten, wird ein Fehler an den Solution Manager gemeldet.
SystemAvailabilityComponent Überprüft die generelle Erreichbarkeit einer Clusterinstanz. Parameter: SYSAVAIL.systems=127.0.0.1:8080 SYSAVAIL.requestWarningTimeMS=500 SYSAVAIL.requestErrorTimeMS=2500 systems: gibt das zu überprüfende System als host:port-Kombination an. Sollen mehrere Systeme überwacht werden, kann der Eintrag einfach wiederholt werden, z.B. kann in einer zusätzlichen Zeile "SYSAVAIL.systems=127.0.0.1:8070" eingetragen werden.
requestWarningTimeMS: ist der Schwellwert in Millisekunden für eine Warnung.
requestErrorTimeMS: ist der Schwellwert in Millisekunden für eine Fehlermeldung.
ProcessingErrorComponent Überprüft die Anzahl an fehlerhaften Nachrichten: PROCERR.errorThreshold=0 PROCERR.interval=60 Sind in den vergangenen interval Sekunden mehr als errorThreshold fehlerhaft verarbeitete Nachrichten aufgetreten, wird ein Fehler gemeldet.
QueueComponent Überprüft die Anzahl der Nachrichten in der Queue, d.h. die Menge der noch zu verarbeitenden Nachrichten: Der Parameter QUEUECOM.thresholdAll=100 gibt an, ab welchem Schwellwert die Komponente QueueComponent detailliertere Überprüfungen vornimmt. Ist dies der Fall, dann geben die Parameter QUEUECOM.thresholdS=50 QUEUECOM.thresholdM=25 QUEUECOM.thresholdL=15 QUEUECOM.thresholdX=5 die Schwellwerte für die einzelnen Queues (S, M, L, X) vor, bei deren Erreichen ein Fehler gemeldet wird.
SystemErrorComponent Überprüft die Systemfehlermeldungen: SYSERROR.errorThreshold=1000 SYSERROR.interval=60 Die Parameter haben dieselbe Bedeutung wie bei der Komponente ProcessingErrorComponent, nur dass sie sich auf Systemfehlermeldungen beziehen.
Eine Beispielhafte Konfiguration für die Extension EXTERNAL_MONITORING kann also so aussehen:
class=ASERVICE|org.b2bbp.external.monitoring.components.ActiveServiceComponent
class=INDEXCOM|org.b2bbp.external.monitoring.components.IndexComponent
class=SYSAVAIL|org.b2bbp.external.monitoring.components.SystemAvailabilityComponent
class=PROCERR|org.b2bbp.external.monitoring.components.ProcessingErrorComponent
class=QUEUECOM|org.b2bbp.external.monitoring.components.QueueComponent
class=SYSERROR|org.b2bbp.external.monitoring.components.SystemErrorComponent

SYSAVAIL.systems=127.0.0.1:8070
SYSAVAIL.systems=127.0.0.1:8080
SYSAVAIL.requestWarningTimeMS=500
SYSAVAIL.requestErrorTimeMS=2500

INDEXCOM.indexTableMaxEntries=200

ASERVICE=[http://localhost:8070/b2bbp-engine/clusternodeinfo]
ASERVICE=[http://localhost:8080/b2bbp-engine/clusternodeinfo]

PROCERR.errorThreshold=0
PROCERR.interval=60

SYSERROR.errorThreshold=1000
SYSERROR.interval=60

QUEUECOM.thresholdAll=100
QUEUECOM.thresholdS=50
QUEUECOM.thresholdM=25
QUEUECOM.thresholdL=15
QUEUECOM.thresholdX=5

Installation der External Monitoring Webapplikation

Die Webapplikation dient der zur Überwachung von einer oder mehreren B2B by Practice Instanzen. Sie kann entweder zusammen mit einer anderen B2B by Practice Instanz (also im gleichen Applikationsserver) oder einem getrennten Applikationsserver betrieben werden, z.B. in Tomcat:
  1. Deployen der Webapplikation: Die Datei org.b2bbp.external.monitoring.war in den tomcat\webapps-Ordner kopieren. Unter Umständen muss Tomcat neu gestartet werden.
  1. Datenbank-Verbindung: Dies wird in tomcat\conf\Catalina\localhost\org.b2bbp.external.monitoring.xml konfiguriert. Es muss die Datenbank des zu überwachenden B2B by Practice-Systems konfiguriert werden. Dies kann z.B. einfach durch Kopieren des <Resource name=“jdbc/b2bbp“ … />-Tags aus der b2bbp-engine.xml und anschließendes Ersetzen (falls schon ein "Resource"-Tag enthalten ist) erreicht werden. Während dieser Anpassung sollte Tomcat gestoppt sein.

Durch Aufruf von http://localhost:8080/org.b2bbp.external.monitoring/emoni (Host und Port stammen vom Tomcat, auf dem die External Monitoring Webapplikation läuft) kann die Funktionsfähigkeit überprüft werden. Das Ergebnis kann so aussehen:

<TestResult>
   <Component>
      <name>QUEUECOM</name>
      <version>1</version>
      <comphost/>
      <compinst/>
      <description>B2BBP-Processing Queue</description>
      <type>1</type>
      <messages>
         <Message>
            <messalert>OKAY</messalert>
            <messseverity>0</messseverity>
            <messarea/>
            <messageId/>
            <messtext>B2Bs processing-queue is empty</messtext>
         </Message>
      </messages>
   </Component>
   <Component>
      <name>SYSERROR</name>
      ...
   </Component>
   ...
</TestResult>
In diesem Beispiel sind keine Fehler zu sehen

Anbindung an den SAP Solution Manager

Zuerst muss das Customizing der External Monitoring Webapplikation exportiert werden. Rufen Sie hierzu die URL http://localhost:8070/org.b2bbp.external.monitoring/solutionmanager (die wie oben beschrieben gebildet wird) in ihrem Browser auf und speichern Sie die XML-Datei ab. Diese XML-Datei kann so aussehen:
<customizing>
   <control>
      <grmgruns>X</grmgruns>
      <runlog></runlog>
      <errorlog></errorlog>
   </control>
   <scenarios>
      <scenario>
         <scenname>b2bbp</scenname>
         <scenversion/>
         <sceninst>1</sceninst>
         <scentype>URL</scentype>
         <scenstarturl>[http://localhost:8070/org.b2bbp.external.monitoring/solutionmanager</scenstarturl>]
         <scenstartmode>Not Used</scenstartmode>
         <scentexts>
            <scentext>
               <scenlangu>E</scenlangu>
               <scendesc>B2B_ace</scendesc>
            </scentext>
         </scentexts>
         <components>
            <component>
               <compname>QUEUECOM</compname>
               <compversion>1</compversion>
               <comptype>1</comptype>
               <comptexts>
                  <comptext>
                     <complangu>E</complangu>
                     <compdesc>B2BBP-Processing Queue</compdesc>
                  </comptext>
               </comptexts>
               <properties>
                  <property>
                     <propname>Unknown</propname>
                     <propvallue>Unknown</propvallue>
                  </property>
               </properties>
            </component>
            <component>
               <compname>SYSERROR</compname>
               ...
            </component>
            ...
         </components>
      </scenario>
   </scenarios>
</customizing>
Bevor Sie diese in den SAP Solution Manager importieren, können Sie das Customizing ggf. anpassen, z.B. bei Bedarf die URL anpassen. Eine nähere Beschreibung des Formats finden Sie unter http://help.sap.com/saphelp_nw04s/helpdata/en/7c/d3b45f8cf8bc4995dc485f2e911e05/content.htm.

Weitere Information

Bei Fragen können Sie sich gerne an die EXXETA AG wenden, welche die Solution Manager Anbindung implementiert hat.

Erweiterbarkeit

Die Komponenten sind erweiterbar. Will man eine neue Komponente hinzufügen, muss hierzu eine Java-Klasse geschrieben werden, welche das Interface ITestableComponent implementiert.

Troubleshooting

Bei Timeout-Fehlern ist zu beachten, dass das Ermitteln des Status der einzelnen B2B by Practice Cluster-Instanzen synchron erfolgt. D.h., die höchste Antwortzeit einer Instanz bestimmt die Gesamtantwortzeit der External Monitoring Webapplikation. Dies betrifft vor allem die ASERVICE Komponente.

Andere Monitoring Software

Eine Anbindung an Nagios ist denkbar, allerdings müsste dies als Nagios Plugin noch implementiert werden.
1 Anhänge 1 Anhänge
8992 Angesehen