Nagios Extended Notification Mail

Screenshot nagios_mail

Ersatz für die von Nagios mitgelieferte Notification-Mail.

Eigentlich bin ich kein Fan von HTML-Mails, aber CSS-Formatierungen machen eine Notification-Mail schon übersichtlicher. Es wird aber auch eine Text-Variante für Handhelds etc. mitgesendet.

Download: nagios_mail-0.9.zip

Installation

Nach dem kopieren der nagios_mail.php müssen nur die Nagios-Notification-Definitionen geändert werden:

# /usr/local/nagios/etc/objects/misccommands.cfg
define command{
        command_name    host-notify-by-email
        command_line    /usr/bin/php -q /opt/nagios_mail.php
        }
 
define command{
        command_name    notify-by-email
        command_line    /usr/bin/php -q /opt/nagios_mail.php
        }

Je nach Distribution muss evt. der PHP-Pfad angepasst werden. Update: seit Version 0.3 ist PEAR nicht mehr notwendig!

Konfiguration

Im Header der PHP-Datei kann der Absender, die Nagios-URL oder das Subject geändert werden.

FAQ

Q: i want to use ICINGA with it. Is it possible?
A: Yes, but you have to replace in Line 643 “_NAGIOS” with “_ICINGA”

Q: Notifications through Nagios/Ichinga are empty. What to check?
A: check your php.ini for variables_order = “EGPCS”, the “E” is important.

Q: Notifications through Nagios/Ichinga are still empty. What to check?
A: check nagios.cfg/icinga.cfg for the following setting: enable_environment_macros=1

Changelog

0.9.0
  outlook 2007 html compatibility (back to stoneage)
  added color for UNKNOWN state
 
0.8.0
  added additional header configuration
  (for example to send high-priority mails)
  improved documentation
  improved debug mode
 
0.7.0
  fixed multipart issue (webmailer compatibility)
  added safari header (iPhone Mail compatibility)
 
0.6.0
  added subject templates
  added ability to disable sections
 
0.5.0
  added PHP4 compatibility
 
0.4.0
  added test-mode (if run from command-line)
  removed php-notices
 
0.3.0
  added readme
  removed Mail_mime dependency
  removed css definitions for webmail compatibility
  added links to hostname
 
0.2.0
  changed script to object oriented programming
This entry was posted in Linux and tagged . Bookmark the permalink.

127 Responses to Nagios Extended Notification Mail

  1. Daniel says:

    hmm ok mein fehler bekomm nun:
    CONTACTEMAIL env-var is empty (not run from Nagios?) or ‘mail_add_to_address’ not configured (Testmode)
    aber das problem ist das er trotzdem keine verschickt nur der test klappt
    bin ratlos

  2. otto says:

    Hast du mal die vorherigen Kommentare durchgesehen? Insb. zu Ichinga und php.ini…

  3. Daniel says:

    also gut geht wieder… habe folgendes eingestellt:

    system ist ubuntu server 10.04 lts / icinga 1.2.1 + icinga-web 1.2.1

    ==> /etc/php5/cli/php.ini
    -> variables_order = “EGPCS” (line 669)
    ==> php-script bei mir /usr/local/icinga/mail/icinga_mail.php
    -> $config['nagios_url'] = ‘http://icinga-ip/icinga-web'; (line 44)
    -> $config['mail_from_address'] = ‘blub@blub.de’; (line 50)
    -> $config['mail_add_to_address'] = ”; (line 58)
    -> if (strpos($key, ‘ICINGA_’) !== false) { (line 648)
    _______________________________________________________________________________
    es lag bei mir einfach nur an EGPCS das hat der vorher auch mit GPCS gemacht! die lines entsprechen meiner config könnte abweichen also einfach nach bereich suchen… und vielen dank nochmal an otto für die schnelle antwort
    hoffe das es anderen hilft.

    gruß daniel

  4. JohnD says:

    Is there a way to color code the Subject line?

  5. JohnD says:

    Hi,
    Is it possible to change the Subject Line to RED? Appreciate any help.

    Thanks,

    –john

  6. otto says:

    Hi, unfortunately or for good reason the clients doesnt interpret html at the subject line. so this is not possible…

  7. Patrick says:

    Hallo,

    ist es möglich bei dem Host-/Servicenamen nicht nur den Namen sondern gleich einen Link zur Host-/Service-Status-Detail-Seite in der Nagios-Weboberfläche zu hinterlegen?

    Danke für die Hilfe,

    Patrick

  8. otto says:

    Hallo, ist sicherlich möglich. Ich nehme das in die Liste für die nächste Version mit auf. Kann nur nicht versprechen, dass diese sehr schnell erscheint… Otto

  9. Markus says:

    Hallo,

    bei mir werden die Statistics-Felder nicht ausgefüllt. Muss ich hierfür Änderungen am Nagios machen oder mache ich hier einfach nur etwas verkehrt.

    Gruß
    Markus

  10. tobi says:

    Hab das gleiche Problem wie Markus. Krieg nur eine E-Mail ohne ausgefüllte Statistikfelder

  11. irgendwer says:

    Bei mir wird keine Notification Mail erzeugt. Bei Aufruf über die Kommandozeile klappt es, Alarme über Nagios kommen nicht.

    Im Nagios Log sind keine Fehler zu sehen:

    [1302589983] SERVICE NOTIFICATION: xxx;ccc;vvv;CRITICAL;notify-service-by-email;0 years 0 mon 0 days 13 hours 17 min 20 sec

  12. irgendwer says:

    EGPCS in php.ini hat geholfen, Anfangs wurden nur ein paar Kommentare angezeigt, da hatte ich es nicht gesehen.

  13. N0 says:

    ich habe in er php.ini die variables_order auf EGPCS umgestellt. leider werden noch immer keine Emails versendet.

    IM Nagioslog sind keine Fehler.
    Testbenachtichtigung funktoniert.

  14. nowx says:

    Welche PHP Version verwendet ihr? Bei mir mit PHP5.3 klappt es auch nicht. Mit PHP5.2 funktionierts… Ich glaube der Fehler liegt in der $_ENV Funktion von PHP. Diese wurde ersetzt durch get_env…

  15. nowx says:

    So, doch nicht so kompliziert… Wie oben schon beschrieben. $_ENV wird einfach nicht gesetzt. Mit EGPCS in der php.ini kommen die Mails wieder an.

  16. Pingback: icinga und ein update auf squeeze | blue1.at

  17. Christian says:

    Ich habe bei mir zugegebenermaßen Icinga unter Debian laufen, aber sollte ja keinen Unterschied machen. Email kommen auch bei mir nicht an. Die Variable EGPCS ist bei mir mit “variables_order = “EGPCS”" gesetzt. Jemand noch eine andere Idee?

  18. otto says:

    Hi, Du müsstest vermutl. im Code noch die Stelle “if (strpos($key, ‘NAGIOS_’)” durch “if (strpos($key, ‘ICINGA_’)” ersetzen.

  19. Rev says:

    Hi. Bei mir kommt immer die gleiche contactgroup info in der mail, egal ob auf Grund dieser contactgroup oder einer anderen gemeldet worden ist. Kann es sein das Nagios hier einen falschen Wert übergibt und wie könnte ich das prüfen? Danke! Gruß, Rev

  20. action says:

    So verändert bekomme ich zwar die ActionURL ausgegeben aber leider nicht den rest..

    array(
    ‘name’ => ‘Performancdaten’,
    ‘nagios_env’ => ‘SERVICEACTIONURL’,
    ‘required’ => false,
    ‘type’ => ‘link’,
    ),

    Soll bedeuten es kommt nur:

    /pnp4nagios/graph?host=rechnername&srv=Memory+Usage’ class=’tips’ rel=’/pnp4nagios/popup?host=rechnername&srv=Memory+Usage

    Schön wäre wenn da jetzt noch…
    Die IP das Nagiosservers so … http://ip-adresse kommen würde.

    Jemand eine Idee?

    VG ;-)

  21. nashia says:

    ich habe die Extended Notification Mail eingerichtet. Die Testmail klappt wunderbar. Das war es aber auch, normale notifications kommen nicht an.
    Ebenfalls habe ich “variables_order” in “EGPCS” in der php.ini geändert. Ohne Erfolg.
    Ich verwende ICINGA und PHP5.3

  22. killianes says:

    Hi,

    First thx for your work

    I’ve a little problem with you script :

    When a host or a service go CRITICAL i receive a mail (this is ok) but when a host or a service go to OK i don’t receive a mail .
    Do you know why?

    Thx

  23. Mark says:

    Habe auch ziemlich lange an dem Fehler:
    CONTACTEMAIL env-var is empty (not run from Nagios?) or ‘mail_add_to_address’ not configured (Testmode)
    gesucht.

    Bei mir war in der icinga.cfg nicht

    enable_environment_macros=1 gesetzt.

  24. nashia says:

    @Mark: Das wars!! Juppi!!!

  25. Jens says:

    English below… ;-)

    Kleiner Hinweis an alle, bei denen keine Mails verschickt werden trotz angepasster php.ini: die nagios.cfg bzw icinga.cfg nach folgenden Wert prüfen:

    enable_environment_macros=1

    Stehts auf 0, funktioniert nagios_mail.php nicht.

    A hint for everyone not recieving mails despite modified php.ini: check your nagios.cfg/icinga.cfg for the following setting:

    enable_environment_macros=1

    Is this set to “0″, the nagios_mail.php script won’t work.

  26. Matthias says:

    Hi,
    super Skript…
    leider habe ich damit ein kleines Problem.
    Der Testmodus funktioniert einwandfrei.
    Lösche ich jedoch “mail_add_to_address” meine eMailadresse wieder raus, damit die echten mails verschickt werden, werden keine Mails verschickt.
    Das Skript funktioniert also nur im Testmodus.

    enable_environment_macros=1 und
    “variables_order” in “EGPCS” habe ich überprüft.

  27. Matthias says:

    “variables_order” in “EGPCS”
    Nicht in /etc/php5/apache2/php.ini
    sondern in /etc/php5/cli/php.ini editieren!

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">