Mit Hilfe dieser Anleitung können Sie PNP4Nagios in das Icinga Web-Frontend integrieren. Wenn Sie PNP4Nagios in das Icinga Classic UI integrieren möchten, lesen Sie bitte die PNP4Nagios Dokumentation.
Installieren von PNP4Nagios
Installieren Sie PNP4Nagios wie in der PNP4Nagios Dokumentation beschrieben.
Passen Sie die PNP4Nagios-Konfiguration auf Ihre Icinga-Konfiguration an. Wahrscheinlich müssen Sie hier ändern:
#> vi npcd.cfg user = icinga group = icinga log_file = /var/log/icinga/npcd.log perfdata_spool_dir = /var/icinga/spool/ perfdata_file = /var/icinga/perfdata.dump
#> vi process_perfdata.cfg LOG_FILE = /var/log/icinga/perfdata.log
#> vi config.php $conf['nagios_base'] = "/icinga/cgi-bin";
Erstellen Sie die Konfiguration, um die PNP4Nagios Host-Seiten in das Icinga Web zu integrieren
Erstellen einer neuen Host-Grid-Ansicht:
Bitte erstellen Sie eine Kopie von icinga-host-template.xml in app/modules/Cronks/data/xml/grid unter Ihrem icinga-web Installationspfad:
#> cp /usr/local/icinga-web/app/modules/Cronks/data/xml/grid/icinga-host-template.xml \ /usr/local/icinga-web/app/modules/Cronks/data/xml/grid/icinga-my-host-template.xml
In der neuen Datei legen wir eine zusätzliche Feld- (field) Definition an:
<field name="pnp4nagios_host_link"> <!-- datasource maps a data field from api call --> <datasource> <parameter name="field">HOST_NAME</parameter> </datasource> <display> <parameter name="visible">true</parameter> <parameter name="label">Perfdata</parameter> <parameter name="width">55</parameter> <parameter name="Ext.grid.Column"> <parameter name="menuDisabled">true</parameter> <parameter name="fixed">true</parameter> </parameter> <parameter name="jsFunc"> <!-- function to display column with icon in host status grid view --> <parameter> <parameter name="namespace">Cronk.grid.ColumnRenderer</parameter> <parameter name="function">columnImage</parameter> <parameter name="type">renderer</parameter> <parameter name="arguments"> <parameter name="image">images/icons/application_view_gallery.png</parameter> <parameter name="css">x-icinga-grid-link</parameter> <parameter name="attr"> <parameter name="qtip">Show host perfdata for this host</parameter> </parameter> </parameter> </parameter> <!-- create cell click event for the previously defined column --> <parameter> <parameter name="namespace">Cronk.grid.IcingaColumnRenderer</parameter> <parameter name="function">iFrameCronk</parameter> <parameter name="type">cellclick</parameter> <parameter name="arguments"> <parameter name="title">Host perfdata for {host_name}</parameter> <parameter name="url"><![CDATA[/pnp4nagios/index.php/graph?host={host_name}&srv=_HOST_]]></parameter> <parameter name="activateOnClick">true</parameter> </parameter> </parameter> </parameter> </display> <filter> <parameter name="enabled">false</parameter> </filter> <order> <parameter name="enabled">false</parameter> </order> </field>
Anlegen einer neuen Grid-Ansicht im "Data" Cronk-Container
Editieren von cronks.xml im Unterverzeichnis app/modules/Cronks/config/ unter Icinga Web und hinzufügen von:
<ae:parameter name="gridMyHostView"> <ae:parameter name="module">Cronks</ae:parameter> <ae:parameter name="action">System.ViewProc</ae:parameter> <ae:parameter name="hide">false</ae:parameter> <ae:parameter name="description">Viewing host status in a grid including perfdata link</ae:parameter> <ae:parameter name="name">MyHostStatus</ae:parameter> <ae:parameter name="image">cronks.Stats</ae:parameter> <ae:parameter name="categories">data</ae:parameter> <ae:parameter name="ae:parameter"> <ae:parameter name="template">icinga-my-host-template</ae:parameter> </ae:parameter> </ae:parameter>
Integrieren von PNP4Nagios in Icinga Web-Serviceansichten
Erstellen einer neuen Service-Grid-Ansicht
Kopieren Sie das Standardtemplate "icinga-service-template.xml" von app/modules/Cronks/data/xml/grid in Ihren Icinga Web- Installationspfad:
#> cp /usr/local/icinga-web/app/modules/Cronks/data/xml/grid/icinga-service-template.xml \ /usr/local/icinga-web/app/modules/Cronks/data/xml/grid/icinga-my-service-template.xml
In der neuen Datei legen wir eine zusätzliche Feld- (field) Definition an::
<field name="pnp4nagios_service_link"> <!-- datasource maps a data field from api call --> <datasource> <parameter name="field">SERVICE_NAME</parameter> </datasource> <display> <parameter name="visible">true</parameter> <parameter name="label">Perfdata</parameter> <parameter name="width">55</parameter> <parameter name="Ext.grid.Column"> <parameter name="menuDisabled">true</parameter> <parameter name="fixed">true</parameter> </parameter> <parameter name="jsFunc"> <!-- function to display column with icon in host status grid view --> <parameter> <parameter name="namespace">Cronk.grid.ColumnRenderer</parameter> <parameter name="function">columnImage</parameter> <parameter name="type">renderer</parameter> <parameter name="arguments"> <parameter name="image">images/icons/application_view_gallery.png</parameter> <parameter name="css">x-icinga-grid-link</parameter> <parameter name="attr"> <parameter name="qtip">Show perfdata for this service</parameter> </parameter> </parameter> </parameter> <!-- create cell click event for the previously defined column --> <parameter> <parameter name="namespace">Cronk.grid.IcingaColumnRenderer</parameter> <parameter name="function">iFrameCronk</parameter> <parameter name="type">cellclick</parameter> <parameter name="arguments"> <parameter name="title">Service perfdata for {service_name} on {host_name}</parameter> <parameter name="url"><![CDATA[/pnp4nagios/index.php/graph?host={host_name}&srv={service_name}]]></parameter> <parameter name="activateOnClick">true</parameter> </parameter> </parameter> </parameter> </display> <filter> <parameter name="enabled">false</parameter> </filter> <order> <parameter name="enabled">false</parameter> </order> </field>
Anlegen einer neuen Grid-Ansicht im "Data" Cronk-Container
Editieren von cronks.xml im Unterverzeichnis app/modules/Cronks/config/ unter Icinga Web und hinzufügen von:
<ae:parameter name="gridMyServiceView"> <ae:parameter name="module">Cronks</ae:parameter> <ae:parameter name="action">System.ViewProc</ae:parameter> <ae:parameter name="hide">false</ae:parameter> <ae:parameter name="description">Viewing service status in a grid including perfdata link</ae:parameter> <ae:parameter name="name">MyServiceStatus</ae:parameter> <ae:parameter name="image">cronks.Stats2</ae:parameter> <ae:parameter name="categories">data</ae:parameter> <ae:parameter name="ae:parameter"> <ae:parameter name="template">icinga-my-service-template</ae:parameter> </ae:parameter> </ae:parameter>
Verwenden der neuen Grid-Ansicht als Standard-Serviceansicht
Bitte sichern Sie zuerst Ihre originale Ansicht:
#> cp data/xml/grid/icinga-service-template.xml data/xml/grid/icinga-service-template.bak
dann
#> cp data/xml/grid/icinga-my-service-template.xml data/xml/grid/icinga-service-template.xml
Leeren Sie den Cache wie unten beschrieben. Die Performancegraphen sind nun in Ihren "serviceStatus"-Cronk integriert!
![]() |
Anmerkung |
---|---|
Bitte denken Sie daran, wenn Sie eine *.xml-Datei editieren, müssen Sie danach den Cache bereinigen! |
#> rm -f app/cache/config/*.php
oder /path/to/clearcache.sh
#> /usr/local/icinga-web/bin/clearcache.sh
Das war es auch schon, Sie sind fertig!
© 2009-2011 Icinga Development Team, http://www.icinga.org