====== Upgrade auf Version 0.6.x ======
Das Web-Frontend ist komplett neu geschrieben worden und basiert nun auf dem PHP MVC Framework [[http://www.kohanaphp.com|Kohana]]. Somit ergeben sich grundlegend andere Abhängigkeiten, die dringend vor der Installation geprüft werden müssen.
Anmerkung: Ein Upgrade läuft zuerst wie eine Neuinstallation. Anschließend sind einige Anpassungen durchzuführen, die weiter unten beschrieben sind.
PNP 0.4.x wurde ohne weitere Angabe von Optionen beim Aufruf von ''./configure'' unterhalb einer Nagios-Installation unter ''/usr/local/nagios'' installiert.
PNP 0.6.x wird bei Angabe keiner weiteren Optionen unter ''/usr/local/pnp4nagios'' installiert, ist also wie Nagios als eigenständige Applikation zu sehen.
Anmerkung: Es reicht aus, die *.rrd-Dateien vom alten ins neue Verzeichnis zu kopieren. Sie enthalten die eigentlichen Daten. Die *.xml-Dateien werden jedes Mal neu angelegt, wenn Performance-Daten verarbeitet werden, denn sie enthalten lediglich Meta-Informationen. Außerdem hat sich die interne Struktur geändert, so dass sie sowieso nicht nutzbar sind.
===== Vergleich der Struktur =====
Summary einer Installation von PNP 0.4.14
./configure
...
*** Configuration summary for pnp 0.4.14 05-02-2009 ***
General Options:
------------------------- -------------------
Nagios user/group: nagios nagios
Install directory: /usr/local/nagios
HTML Dir: /usr/local/nagios/share/pnp
Config Dir: /usr/local/nagios/etc/pnp
Location of rrdtool binary: /usr/bin/rrdtool Version 1.3.1
RRDs Perl Modules: FOUND (Version 1.3001)
RRD Files stored in: /usr/local/nagios/share/perfdata
process_perfdata.pl Logfile: /usr/local/nagios/var/perfdata.log
Perfdata files (NPCD) stored in: /usr/local/nagios/var/spool/perfdata/
Summary einer Installation von 0.6.0
./configure
...
*** Configuration summary for pnp4nagios-0.6.0 07-30-2009 ***
General Options:
------------------------- -------------------
Nagios user/group: nagios nagios
Install directory: /usr/local/pnp4nagios
HTML Dir: /usr/local/pnp4nagios/share
Config Dir: /usr/local/pnp4nagios/etc
Location of rrdtool binary: /usr/bin/rrdtool Version 1.3.1
RRDs Perl Modules: FOUND (Version 1.3001)
RRD Files stored in: /usr/local/pnp4nagios/var/perfdata
process_perfdata.pl Logfile: /usr/local/pnp4nagios/var/perfdata.log
Perfdata files (NPCD) stored in: /usr/local/pnp4nagios/var/spool
Web Interface Options: ------------------------- -------------------
HTML URL: http://localhost/pnp4nagios/
Apache Config File: /etc/apache2/conf.d/pnp4nagios.conf
Aus diesen Infos ergeben sich die zu ändernden Parameter und somit die Upgrade-Strategie.
===== Anpassungen =====
Die Vorlagen der action_url-Definitionen haben sich verändert. Statt "/nagios/pnp" ist "/pnp4nagios" einzutragen und statt "index.php" wird nun "graph" benutztdefine host {
name host-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}
Ähnliches gilt für die Preview-Popup-Funktiondefine host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}
**Achtung**: Es ist //kein// Fehler, dass die Zeichenketten vor und nach "class" jeweils nur ein Apostroph enthalten.
Anders als in der 0.4.x Dokumentation vermerkt gelten die Templates für Nagios 2.x und 3.x. Der einzige Unterschied besteht darin, dass die action_url-Direktive in Nagios 2.x nicht in der Service-Definition, sondern in eigenen serviceextinfo-Definitionen verfügbar ist.
Innerhalb der PHP-Dateien im templates-Verzeichnis müssen alle Variablen vor der ersten Benutzung initialisiert werden, z.B. $lower = ""
Das gilt auch für Variablen, an die früher "angehängt" werden konnte, ohne sie vorher zu initialisieren. Daher wird aus
foreach ($DS as $i) {
$def[1] .= "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
nun
$def[1] = "";
foreach ($DS as $i) {
$def[1] .= "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
\\
Konstanten in Template-Dateien funktionieren nicht mehr, so dass diese in Variablen umzuwandeln sind. Aus
define("_WARNRULE", '#FFFF00');
wird dann z.B.
$WARNRULE = '#FFFF00';
Man sollte daran denken, alle Vorkommen in der Datei zu ändern ;-).
===== Upgrade Szenario mit NPCD=====
- Planen des neuen Aufbaus.
- Testinstallation durchführen und sich mit dem neuen System vertraut machen.
- Backup erstellen.
- PNP 0.6.x nach ''/usr/local/pnp4nagios'' installieren.
- make install-config
- make install-webconf
- Apache reload.
- Apache-Config testen.
- Aufruf ''/pnp4nagios'' muss ein leeres Perfdata-Verzeichnis melden.
- ''/usr/local/pnp4nagios/etc/npcd.cfg'' aus der ''npcd.cfg-sample'' erstellen.
- Pfade überprüfen und ggf. Änderungen der 0.4.x nachziehen.
- Alle Pfade zur neuen Installation in der nagios.cfg anpassen.
- Alle Pfade in den Command-Definitionen anpassen.
- npcd über ''/etc/init.d/npcd stop'' anhalten.
- ''make install-init'' installiert das neue Init Script für den npcd.
- Nagios anhalten.
- ''/usr/local/nagios/share/perfdata'' nach ''/usr/local/pnp4nagios/var/perfdata'' kopieren. Achtung: Auf Permissions achten.
- ''/etc/init.d/npcd'' start
- ''/etc/init.d/nagios'' start