
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:
<cronk 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>
</cronk>
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:
<cronk 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>
</cronk>
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