OpenNMS-Insiderwissen: Mehr Effizienz dank Daemon Reloads

Die weltweit bekannte IT-Monitoring-Lösung OpenNMS ist äußerst flexibel und umfassend konfigurierbar. Um die beachtliche Leistungsfähigkeit der Software richtig nutzen zu können, braucht man allerdings ein gutes Maß an OpenNMS-spezifischem Fachwissen. Heute beleuchtet NETHINKS-Spezialist Patrick Kremser das Thema „Daemon Reloads“.

In OpenNMS gibt es 3 Kategorien von Konfigurationsdateien:

  1. Die Konfigurationsdateien, die kein Nachladen eines Daemons oder einen Neustart von OpenNMS notwendig machen.

Das bedeutet: Änderungen werden sofort wirksam bzw. werden wirksam, sobald die jeweilge Funktion wieder genutzt wird. Hierzu zählen z.B. die snmp-config.xml oder notifications.xml.

  1. Die Konfigurationsdateien, die nach einer Änderung entweder ein Neustart von OpenNMS oder den Reload des Daemons nötig machen, damit die Änderung wirksam wird.

Hierzu zählen z.B. die threshd-configuration.xml und die thresholds.xml.

  1. Die Konfigurationsdateien, die grundsätzlich einen Neustart erfordern, damit Änderungen wirksam werden.

Hierzu zählen z.B. die categories.xml oder viewsdisplay.xml.

Daemon Reloads sind sinnvoll

Das Nachladen der Daemons hat zwei Vorteile. Zu allererst spart man sich viel Zeit, da ein Daemon in Sekunden nachgeladen ist, während ein Neustart von OpenNMS auch gerne mehrere Minuten dauern kann.

Der zweite Vorteil ist natürlich, dass OpenNMS weiterläuft und niemand informiert werden muss, dass das Monitoring für einige Minuten ausfällt.

Sollte man mehrere kleine Änderungen vornehmen wollen und diese ggf. auch erst noch testen müssen, so ist ein Daemon Reload sicherlich die bessere Alternative zum Neustart von OpenNMS.

 

An dieser Stelle ein wichtiger Hinweis: Die geänderten Konfigurationsdateien sollten sicherheitshalber immer zuerst mit Xmllint auf Syntaxfehler geprüft werden.

Xmllint benutzt man folgendermaßen: xmllint /PFAD/ZUR/DATEI/DATEINAME.xml ; befindet man sich bereits im Ordner, gilt: xmllint DATEINAME.xml .

Sollte die Konfiguration keine Syntaxfehler aufweisen, so wird der gesamte Inhalt der Konfigurationsdatei in der Shell ausgegeben, andernfalls erhält man eine Fehlermeldung .

 

Die Events lassen sich auf 2 verschiedenen Wegen auslösen: Entweder man gibt sie in der Shell/im Terminal ein oder man benutzt die WebUI von OpenNMS.

  1. Die Möglichkeit über die Shell:

Zuerst wechselt man in das bin-Verzeichnis von OpenNMS: cd $OPENNMS_HOME/bin/

und gibt dann den Befehl zum Nachladen des Daemons:

./send-event.pl -p ‚daemonName DAEMONNAMEuei.opennms.org/internal/reloadDaemonConfig

  1. Im Adminmenu von OpenNMS gibt es unter der Kategorie Event Management den Unterpunkt „Manually send an Event“:

Dort wählt man im Dropdown-menu das Event „OpenNMS-defined internal event: reload specific daemon configuration“ aus. Nun muss nur noch der Parameter mit

Name: DaemonName

Value: DAEMONNAME (z.B.: Pollerd)

gesetzt werden.

 

 

 

 

Nach einem Daemon Reload kann man sich in OpenNMS unter Status -> Events -> All Events davon überzeugen, dass der Reload funktioniert hat.


 

Die folgende Tabelle zeigt eine Auflistung der möglichen Reloads:

 

Daemon Dateien Befehl Informationen
Eventd eventconf.xml, events/* ./send-event.pl -p ‚daemonName Eventd‘ uei.opennms.org/internal/reloadDaemonConfig events/* bedeutet bei jeglichen Änderungen an einzelnen Event-Files im Ordner events/
Bsmd ./send-event.pl -p ‚daemonName Bsmd‘ uei.opennms.org/internal/reloadDaemonConfig Bei Änderungen am Business Service Monitoring (auch über das WebUI möglich)
Ticketer otrs.properties, jira.properties,

./send-event.pl -p ‚daemonName Ticketer‘ uei.opennms.org/internal/reloadDaemonConfig Bei Änderungen an den Ticket-Konfigruationsdateien für OTRS, Jira, etc …
Correlator drools-engine.d/* ./send-event.pl -p ‚daemonName DroolsCorrelationEngine-DROOLS_DRL_DATEI‘ uei.opennms.org/internal/reloadDaemonConfig Beim Ändern der Drools Rules (*.drl)
Trapd trapd-configuration.xml ./send-event.pl -p ‚daemonName Trapd‘ uei.opennms.org/internal/reloadDaemonConfig Konfiguration für den Trapempfang
Dhcpd dhcp-configuration.xml ./send-event.pl -p ‚daemonName Dhcpd‘ uei.opennms.org/internal/reloadDaemonConfig DHCP-Prüfung (Testverhalten) und Polling (poller-configuration)
Notifd notifd-configuration.xml ./send-event.pl -p ‚daemonName Notifd‘ uei.opennms.org/internal/reloadDaemonConfig Änderungen in der notificationCommands.xml oder der notifications.xml werden augenblicklich übernommen ohne einen Reload
Scriptd Scriptd-configuration.xml ./send-event.pl -p ‚daemonName Notifd‘ uei.opennms.org/internal/reloadDaemonConfig
Pollerd poller-configuration.xml

poll-outages.xml

./send-event.pl -p ‚daemonName Pollerd‘ uei.opennms.org/internal/reloadDaemonConfig

./send-event.pl uei.opennms.org/internal/schedOutagesChanged

Nur bei Änderungen von Services, aber nicht beim neuen Anlegen eines Services
EnchancedLinkd enlinkd-configuration.xml ./send-event.pl -p ‚daemonName EnchancedLinkd‘ uei.opennms.org/internal/reloadDaemonConfig
Collectd collectd-configuration.xml ./send-event.pl -p ‚daemonName Collectd‘ uei.opennms.org/internal/reloadDaemonConfig Nur bei Änderungen von Services, aber nicht beim neuen Anlegen eines Services
Discovery discovery-configuration.xml ./send-event.pl -p ‚daemonName Discovery ‚ uei.opennms.org/internal/reloadDaemonConfig
Vacuumd vacuumd-configuration.xml ./send-event.pl -p ‚daemonName Vacuumd‘ uei.opennms.org/internal/reloadDaemonConfig
Statsd statsd-configuration.xml ./send-event.pl -p ‚daemonName Statsd‘ uei.opennms.org/internal/reloadDaemonConfig
Provisiond provisiond-configuration.xml ./send-event.pl -p ‚daemonName Provisiond‘ uei.opennms.org/internal/reloadDaemonConfig
Reportd Reportd-configuration.xml ./send-event.pl -p ‚daemonName Reportd‘ uei.opennms.org/internal/reloadDaemonConfig
Ackd ackd-configuration.xml ./send-event.pl -p ‘daemonName Ackd‘ uei.opennms.org/internal/reloadDaemonConfig
Tl1d tl1d-configuration.xml ./send-event.pl -p ‘daemonName Tl1d‘ uei.opennms.org/internal/reloadDaemonConfig
Syslogd syslogd-configuration.xml ./send-event.pl -p ‘daemonName Syslogd‘ uei.opennms.org/internal/reloadDaemonConfig
Telemetryd telemetryd-configuration.xml ./send-event.pl -p ‘daemonName Telemetryduei.opennms.org/internal/reloadDaemonConfig
Threshd thresholds.xml, thresd-configuration.xml ./send-event.pl -p ‘daemonName Threshd’ uei.opennms.org/internal/reloadDaemonConfig

./send-event.pl -p ‘daemonName Threshd’ -p ‘configFile threshd-configuration.xml’
uei.opennms.org/internal/reloadDaemonConfig

 

Ihre Fragen zu OpenNMS beantworten wir auch gerne persönlich – nehmen Sie Kontakt mit uns auf!

Schreibe einen Kommentar

Benötigte Felder sind mit * markiert.