Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| wiki:programme:icinga2:pushover [2018/01/19 21:34] – angelegt wikiadmin | wiki:programme:icinga2:pushover [2020/01/16 10:58] (aktuell) – [Vorarbeiten:] wikiadmin | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | icinga-meldung | + | ====== icinga2 Meldung |
| - | <file bash / | + | ===== Vorarbeiten: |
| + | |||
| + | * Anmeldung bei Pushover | ||
| + | * Device registrieren | ||
| + | * 7 Tage kostenlos | ||
| + | * danach [[https:// | ||
| + | * erstellung eines Application/ | ||
| + | |||
| + | ===== Scripte ===== | ||
| + | |||
| + | Die Scripte können 1zu1 kopiert und eingefügt werden. \\ | ||
| + | Bei der Ausarbeitung habe ich versucht, so nahe wie möglich an der Konfiguration für die Email-Benachrichtigung zu bleiben. \\ | ||
| + | Grund: Man kann die Unterschiede zum Original besser sehen und weitere Notifications für andere Dienste (SMS, Pushbullet, Signal, Telegram, ...) erstellen | ||
| + | |||
| + | <note tip>Um nicht alles umständliche aus diesem Wiki kopieren zu müssen, stehen alle Scripte und Konfigurationsdateien in meinem Git-Repo unter: \\ | ||
| + | https:// | ||
| + | |||
| + | <file bash / | ||
| #!/bin/bash | #!/bin/bash | ||
| Zeile 41: | Zeile 58: | ||
| ICINGA2HOST=" | ICINGA2HOST=" | ||
| CURLPROXY="" | CURLPROXY="" | ||
| - | debug=" | + | debug=" |
| ##################################################### | ##################################################### | ||
| # | # | ||
| # | # | ||
| - | # | + | # PUSHOVERUSER = " |
| - | # | + | # PUSHOVERTOKEN = " |
| - | #PUSHOVERPRIORITY | + | # |
| - | #PUSHOVERDEVICE | + | # |
| - | #$PUSHOVERRETRY = "$user.vars.pushover_retry$" | + | # PUSHOVERPRIORITY |
| - | #$PUSHOVEREXPIRE = "$user.vars.pushover_expire$" | + | # PUSHOVERRETRY = "$host.vars.pushover_retry$" |
| + | # PUSHOVEREXPIRE = "$host.vars.pushover_expire$" | ||
| + | # | ||
| + | # NOTIFICATIONTYPE = " | ||
| + | # NOTIFICATIONCOMMENT = " | ||
| + | # NOTIFICATIONAUTHOR = " | ||
| + | # | ||
| + | # ICINGALONGDATETIME = " | ||
| + | # | ||
| + | # HOSTNAME = " | ||
| + | # HOSTDISPLAYNAME = " | ||
| + | # HOSTSTATE = " | ||
| + | # HOSTOUTPUT = " | ||
| # | # | ||
| - | # | ||
| - | # | ||
| - | # | ||
| - | # | ||
| - | # | ||
| - | # | ||
| - | # | ||
| - | #HOSTNAME = " | ||
| ##################################################### | ##################################################### | ||
| + | #***** Host Monitoring on $ICINGA2HOST ***** | ||
| PUSHOVERMESSAGE=$(cat << EOF | PUSHOVERMESSAGE=$(cat << EOF | ||
| - | ***** Service | + | ***** Host Monitoring on icinga |
| - | $SERVICEDISPLAYNAME on $HOSTDISPLAYNAME is ${SERVICESTATE}! | + | $HOSTDISPLAYNAME is $HOSTSTATE! |
| - | Info: $SERVICEOUTPUT | + | Info: $HOSTOUTPUT |
| When: $ICINGALONGDATETIME | When: $ICINGALONGDATETIME | ||
| - | Service: $SERVICENAME | ||
| Host: $HOSTNAME | Host: $HOSTNAME | ||
| EOF | EOF | ||
| ) | ) | ||
| - | PUSHOVERTITLE=" | + | #Wenn ein Kommentar eingetragen wurde (Downtimekommentar, |
| + | if [ -n " | ||
| + | then | ||
| + | PUSHOVERMESSAGE=$(cat << EOF | ||
| + | $PUSHOVERMESSAGE | ||
| + | Comment: $NOTIFICATIONCOMMENT | ||
| + | Author: | ||
| + | EOF | ||
| + | ) | ||
| + | fi | ||
| + | |||
| + | PUSHOVERTITLE=" | ||
| #Wenn die Priorität 2 vergeben wurde, ist ein retry zwingend erforderlich | #Wenn die Priorität 2 vergeben wurde, ist ein retry zwingend erforderlich | ||
| Zeile 102: | Zeile 134: | ||
| --form-string " | --form-string " | ||
| --form-string " | --form-string " | ||
| - | --location https:// | + | --location https:// |
| Zeile 121: | Zeile 153: | ||
| PUSHOVERRETRY: | PUSHOVERRETRY: | ||
| PUSHOVEREXPIRE: | PUSHOVEREXPIRE: | ||
| - | NOTIFICATIONTYPE: | ||
| HOSTDISPLAYNAME: | HOSTDISPLAYNAME: | ||
| - | SERVICEDISPLAYNAME: | ||
| - | SERVICESTATE: | ||
| ICINGALONGDATETIME: | ICINGALONGDATETIME: | ||
| + | NOTIFICATIONTYPE: | ||
| + | NOTIFICATIONCOMMENT: | ||
| + | NOTIFICATIONAUTHOR: | ||
| ICINGA2HOST: | ICINGA2HOST: | ||
| - | SERVICEOUTPUT: $SERVICEOUTPUT | + | HOSTNAME: $HOSTNAME |
| - | SERVICENAME: $SERVICENAME | + | HOSTSTATE: $HOSTSTATE |
| + | HOSTOUTPUT: | ||
| pushover json output: | pushover json output: | ||
| EOF | EOF | ||
| fi | fi | ||
| - | |||
| </ | </ | ||
| - | <file bash / | + | <file bash / |
| #!/bin/bash | #!/bin/bash | ||
| Zeile 181: | Zeile 213: | ||
| # | # | ||
| # | # | ||
| - | # | + | # PUSHOVERUSER = " |
| - | # | + | # PUSHOVERTOKEN = " |
| - | #PUSHOVERPRIORITY | + | # |
| - | #PUSHOVERDEVICE | + | # |
| - | #$PUSHOVERRETRY = "$user.vars.pushover_retry$" | + | # PUSHOVERPRIORITY |
| - | #$PUSHOVEREXPIRE = "$user.vars.pushover_expire$" | + | # PUSHOVERRETRY = "$service.vars.pushover_retry$" |
| + | # PUSHOVEREXPIRE = "$service.vars.pushover_expire$" | ||
| + | # | ||
| + | # NOTIFICATIONTYPE = " | ||
| + | # NOTIFICATIONCOMMENT = " | ||
| + | # NOTIFICATIONAUTHOR = " | ||
| + | # | ||
| + | # ICINGALONGDATETIME = " | ||
| + | # | ||
| + | # HOSTNAME = " | ||
| + | # SERVICENAME = " | ||
| + | # HOSTDISPLAYNAME = " | ||
| + | # SERVICESTATE = " | ||
| + | # SERVICEOUTPUT = " | ||
| # | # | ||
| - | # | ||
| - | # | ||
| - | # | ||
| - | #HOSTNAME = " | ||
| - | #HOSTSTATE = " | ||
| - | #HOSTOUTPUT = " | ||
| - | |||
| ##################################################### | ##################################################### | ||
| + | #***** Service Monitoring on $ICINGA2HOST ***** | ||
| PUSHOVERMESSAGE=$(cat << EOF | PUSHOVERMESSAGE=$(cat << EOF | ||
| - | ***** Host Monitoring on $ICINGA2HOST | + | ***** Service |
| - | $HOSTDISPLAYNAME is $HOSTSTATE! | + | $SERVICEDISPLAYNAME on $HOSTDISPLAYNAME is ${SERVICESTATE}! |
| - | Info: $HOSTOUTPUT | + | Info: $SERVICEOUTPUT |
| When: $ICINGALONGDATETIME | When: $ICINGALONGDATETIME | ||
| + | Service: $SERVICENAME | ||
| Host: $HOSTNAME | Host: $HOSTNAME | ||
| EOF | EOF | ||
| ) | ) | ||
| - | PUSHOVERTITLE=" | + | #Wenn ein Kommentar eingetragen wurde (Downtimekommentar, |
| + | if [ -n " | ||
| + | then | ||
| + | PUSHOVERMESSAGE=$(cat << EOF | ||
| + | $PUSHOVERMESSAGE | ||
| + | Comment: $NOTIFICATIONCOMMENT | ||
| + | Author: | ||
| + | EOF | ||
| + | ) | ||
| + | fi | ||
| + | |||
| + | PUSHOVERTITLE=" | ||
| #Wenn die Priorität 2 vergeben wurde, ist ein retry zwingend erforderlich | #Wenn die Priorität 2 vergeben wurde, ist ein retry zwingend erforderlich | ||
| Zeile 235: | Zeile 286: | ||
| --form-string " | --form-string " | ||
| --form-string " | --form-string " | ||
| - | --location https:// | + | --location https:// |
| Zeile 254: | Zeile 305: | ||
| PUSHOVERRETRY: | PUSHOVERRETRY: | ||
| PUSHOVEREXPIRE: | PUSHOVEREXPIRE: | ||
| + | NOTIFICATIONTYPE: | ||
| + | NOTIFICATIONCOMMENT: | ||
| + | NOTIFICATIONAUTHOR: | ||
| HOSTDISPLAYNAME: | HOSTDISPLAYNAME: | ||
| + | SERVICEDISPLAYNAME: | ||
| + | SERVICESTATE: | ||
| ICINGALONGDATETIME: | ICINGALONGDATETIME: | ||
| - | NOTIFICATIONTYPE: | ||
| ICINGA2HOST: | ICINGA2HOST: | ||
| - | HOSTNAME: $HOSTNAME | + | SERVICEOUTPUT: $SERVICEOUTPUT |
| - | HOSTSTATE: $HOSTSTATE | + | SERVICENAME: $SERVICENAME |
| - | HOSTOUTPUT: | + | |
| pushover json output: | pushover json output: | ||
| EOF | EOF | ||
| fi | fi | ||
| - | |||
| </ | </ | ||
| + | |||
| + | < | ||
| <file bash / | <file bash / | ||
| Zeile 272: | Zeile 327: | ||
| import " | import " | ||
| - | command = [ SysconfDir + "/ | + | command = [ SysconfDir + "/ |
| env = { | env = { | ||
| PUSHOVERUSER = " | PUSHOVERUSER = " | ||
| PUSHOVERTOKEN = " | PUSHOVERTOKEN = " | ||
| - | PUSHOVERPRIORITY = " | ||
| PUSHOVERDEVICE = " | PUSHOVERDEVICE = " | ||
| - | | + | |
| - | PUSHOVEREXPIRE = "$user.vars.pushover_expire$" | + | PUSHOVERPRIORITY = " |
| + | | ||
| + | PUSHOVEREXPIRE = "$host.vars.pushover_expire$" | ||
| NOTIFICATIONTYPE = " | NOTIFICATIONTYPE = " | ||
| - | | + | |
| + | NOTIFICATIONAUTHOR = " | ||
| ICINGALONGDATETIME = " | ICINGALONGDATETIME = " | ||
| + | |||
| HOSTNAME = " | HOSTNAME = " | ||
| + | HOSTDISPLAYNAME = " | ||
| HOSTSTATE = " | HOSTSTATE = " | ||
| HOSTOUTPUT = " | HOSTOUTPUT = " | ||
| - | |||
| } | } | ||
| } | } | ||
| Zeile 295: | Zeile 354: | ||
| import " | import " | ||
| - | command = [ SysconfDir + "/ | + | command = [ SysconfDir + "/ |
| env = { | env = { | ||
| PUSHOVERUSER = " | PUSHOVERUSER = " | ||
| PUSHOVERTOKEN = " | PUSHOVERTOKEN = " | ||
| - | PUSHOVERPRIORITY = " | ||
| PUSHOVERDEVICE = " | PUSHOVERDEVICE = " | ||
| - | | + | |
| - | PUSHOVEREXPIRE = "$user.vars.pushover_expire$" | + | PUSHOVERPRIORITY = " |
| + | | ||
| + | PUSHOVEREXPIRE = "$service.vars.pushover_expire$" | ||
| NOTIFICATIONTYPE = " | NOTIFICATIONTYPE = " | ||
| + | NOTIFICATIONCOMMENT = " | ||
| + | NOTIFICATIONAUTHOR = " | ||
| + | |||
| + | ICINGALONGDATETIME = " | ||
| + | |||
| + | HOSTNAME = " | ||
| + | SERVICENAME = " | ||
| HOSTDISPLAYNAME = " | HOSTDISPLAYNAME = " | ||
| - | SERVICEDISPLAYNAME = " | ||
| SERVICESTATE = " | SERVICESTATE = " | ||
| - | ICINGALONGDATETIME = " | ||
| SERVICEOUTPUT = " | SERVICEOUTPUT = " | ||
| - | SERVICENAME = " | ||
| - | HOSTNAME = " | ||
| } | } | ||
| } | } | ||
| - | |||
| </ | </ | ||
| Zeile 340: | Zeile 402: | ||
| </ | </ | ||
| + | <file bash / | ||
| + | apply Notification " | ||
| + | import " | ||
| + | |||
| + | user_groups = host.vars.notification.pushover.groups | ||
| + | users = host.vars.notification.pushover.users | ||
| + | |||
| + | assign where host.vars.notification.pushover | ||
| + | interval = 0 // disable re-notification | ||
| + | } | ||
| + | |||
| + | |||
| + | apply Notification " | ||
| + | import " | ||
| + | |||
| + | user_groups = host.vars.notification.pushover.groups | ||
| + | users = host.vars.notification.pushover.users | ||
| + | |||
| + | assign where host.vars.notification.pushover | ||
| + | interval = 0 // disable re-notification | ||
| + | } | ||
| + | |||
| + | </ | ||
| <file bash / | <file bash / | ||
| Zeile 346: | Zeile 431: | ||
| display_name = " | display_name = " | ||
| - | # groups = [ " | + | |
| groups = [ " | groups = [ " | ||
| Zeile 354: | Zeile 439: | ||
| vars.pushover_user = " | vars.pushover_user = " | ||
| vars.pushover_token = " | vars.pushover_token = " | ||
| + | #Devices | ||
| + | #(mehrere devices = [ " | ||
| vars.pushover_device = [ " | vars.pushover_device = [ " | ||
| - | # vars.pushover_priority = " | + | |
| - | # retry >= 30 | + | # retry >= 30 |
| - | # vars.pushover_retry = " | + | # vars.pushover_retry = " |
| - | # expire <= 10800 | + | # expire <= 10800 |
| - | # vars.pushover_expire = " | + | # vars.pushover_expire = " |
| } | } | ||
| - | |||
| </ | </ | ||