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:
 

DaemonDateienBefehlInformationen
Eventdeventconf.xml, events/*./send-event.pl -p ‚daemonName Eventd‘ uei.opennms.org/internal/reloadDaemonConfigevents/* bedeutet bei jeglichen Änderungen an einzelnen Event-Files im Ordner events/
Bsmd./send-event.pl -p ‚daemonName Bsmd‘ uei.opennms.org/internal/reloadDaemonConfigBei Änderungen am Business Service Monitoring (auch über das WebUI möglich)
Ticketerotrs.properties, jira.properties,
./send-event.pl -p ‚daemonName Ticketer‘ uei.opennms.org/internal/reloadDaemonConfigBei Änderungen an den Ticket-Konfigruationsdateien für OTRS, Jira, etc …
Correlatordrools-engine.d/*./send-event.pl -p ‚daemonName DroolsCorrelationEngine-DROOLS_DRL_DATEI‘ uei.opennms.org/internal/reloadDaemonConfigBeim Ändern der Drools Rules (*.drl)
Trapdtrapd-configuration.xml./send-event.pl -p ‚daemonName Trapd‘ uei.opennms.org/internal/reloadDaemonConfigKonfiguration für den Trapempfang
Dhcpddhcp-configuration.xml./send-event.pl -p ‚daemonName Dhcpd‘ uei.opennms.org/internal/reloadDaemonConfigDHCP-Prüfung (Testverhalten) und Polling (poller-configuration)
Notifdnotifd-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
ScriptdScriptd-configuration.xml./send-event.pl -p ‚daemonName Notifd‘ uei.opennms.org/internal/reloadDaemonConfig
Pollerdpoller-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
EnchancedLinkdenlinkd-configuration.xml./send-event.pl -p ‚daemonName EnchancedLinkd‘ uei.opennms.org/internal/reloadDaemonConfig
Collectdcollectd-configuration.xml./send-event.pl -p ‚daemonName Collectd‘ uei.opennms.org/internal/reloadDaemonConfigNur bei Änderungen von Services, aber nicht beim neuen Anlegen eines Services
Discoverydiscovery-configuration.xml./send-event.pl -p ‚daemonName Discovery ‚ uei.opennms.org/internal/reloadDaemonConfig
Vacuumdvacuumd-configuration.xml./send-event.pl -p ‚daemonName Vacuumd‘ uei.opennms.org/internal/reloadDaemonConfig
Statsdstatsd-configuration.xml./send-event.pl -p ‚daemonName Statsd‘ uei.opennms.org/internal/reloadDaemonConfig
Provisiondprovisiond-configuration.xml./send-event.pl -p ‚daemonName Provisiond‘ uei.opennms.org/internal/reloadDaemonConfig
ReportdReportd-configuration.xml./send-event.pl -p ‚daemonName Reportd‘ uei.opennms.org/internal/reloadDaemonConfig
Ackdackd-configuration.xml./send-event.pl -p ‘daemonName Ackd‘ uei.opennms.org/internal/reloadDaemonConfig
Tl1dtl1d-configuration.xml./send-event.pl -p ‘daemonName Tl1d‘ uei.opennms.org/internal/reloadDaemonConfig
Syslogdsyslogd-configuration.xml./send-event.pl -p ‘daemonName Syslogd‘ uei.opennms.org/internal/reloadDaemonConfig
Telemetrydtelemetryd-configuration.xml./send-event.pl -p ‘daemonName Telemetryduei.opennms.org/internal/reloadDaemonConfig
Threshdthresholds.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!

EU Efre Dekra