wiki:programme:icinga2:pushover

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
wiki:programme:icinga2:pushover [2018/01/19 21:45] wikiadminwiki:programme:icinga2:pushover [2020/01/13 11:28] wikiadmin
Zeile 13: Zeile 13:
 Grund: Man kann die Unterschiede zum Original besser sehen und weitere Notifications für andere Dienste (SMS, Pushbullet, Signal, Telegram, ...) erstellen Grund: Man kann die Unterschiede zum Original besser sehen und weitere Notifications für andere Dienste (SMS, Pushbullet, Signal, Telegram, ...) erstellen
  
-<file bash /etc/icinga2/scripts/pushover-service.sh>+<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://git.dinven.de/Monitoring/icinga-plugins/src/branch/master/notification/pushover</note> 
 + 
 +<file bash /etc/icinga2/scripts/pushover-service-notifiaction.sh>
 #!/bin/bash #!/bin/bash
  
Zeile 53: Zeile 56:
 ICINGA2HOST="$(hostname)" ICINGA2HOST="$(hostname)"
 CURLPROXY="" CURLPROXY=""
-debug="1"+debug="0"
  
 ##################################################### #####################################################
 #Übergebene Parameter #Übergebene Parameter
 # #
-#PUSHOVERUSER = "$user.vars.pushover_user$" +   PUSHOVERUSER = "$user.vars.pushover_user$" 
-#PUSHOVERTOKEN = "$user.vars.pushover_token$" +   PUSHOVERTOKEN = "$user.vars.pushover_token$"  
-#PUSHOVERPRIORITY = "$user.vars.pushover_priority$" +   PUSHOVERDEVICE = "$user.vars.pushover_device$" 
-#PUSHOVERDEVICE = "$user.vars.pushover_device$" +# 
-#$PUSHOVERRETRY = "$user.vars.pushover_retry$" +#    PUSHOVERPRIORITY = "$host.vars.pushover_priority$" 
-#$PUSHOVEREXPIRE = "$user.vars.pushover_expire$" +   PUSHOVERRETRY = "$host.vars.pushover_retry$" 
 +   PUSHOVEREXPIRE = "$host.vars.pushover_expire$"  
 +
 +#    NOTIFICATIONTYPE = "$notification.type$" 
 +#    NOTIFICATIONCOMMENT = "$notification.comment$" 
 +#    NOTIFICATIONAUTHOR = "$notification.author$" 
 +
 +#    ICINGALONGDATETIME = "$icinga.long_date_time$" 
 +
 +#    HOSTNAME = "$host.name$" 
 +#    HOSTDISPLAYNAME = "$host.display_name$"  
 +#    HOSTSTATE = "$host.state$" 
 +#    HOSTOUTPUT = "$host.output$"
 # #
-#NOTIFICATIONTYPE = "$notification.type$"  
-#HOSTDISPLAYNAME = "$host.display_name$"  
-#SERVICEDISPLAYNAME = "$service.display_name$"  
-#SERVICESTATE = "$service.state$" 
-#ICINGALONGDATETIME = "$icinga.long_date_time$"" 
-#SERVICEOUTPUT = "$service.output$" 
-#SERVICENAME = "$service.name$" 
-#HOSTNAME = "$host.name$" 
 ##################################################### #####################################################
  
 +#***** Host Monitoring on $ICINGA2HOST *****
 PUSHOVERMESSAGE=$(cat << EOF PUSHOVERMESSAGE=$(cat << EOF
-***** Service Monitoring on $ICINGA2HOST ***** +***** 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="$NOTIFICATIONTYPE - $HOSTDISPLAYNAME - $SERVICEDISPLAYNAME is $SERVICESTATE"+#Wenn ein Kommentar eingetragen wurde (Downtimekommentar, Benachrichtigungskommentar), wird dieser angehangen 
 +if [ -n "$NOTIFICATIONCOMMENT"
 +then 
 +PUSHOVERMESSAGE=$(cat << EOF 
 +$PUSHOVERMESSAGE 
 +Comment: $NOTIFICATIONCOMMENT 
 +Author:  $NOTIFICATIONAUTHOR 
 +EOF 
 +
 +fi 
 + 
 +PUSHOVERTITLE="$NOTIFICATIONTYPE - Host $HOSTDISPLAYNAME is $HOSTSTATE!"
  
 #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 114: Zeile 132:
   --form-string "expire=$PUSHOVEREXPIRE" \   --form-string "expire=$PUSHOVEREXPIRE" \
   --form-string "device=$PUSHOVERDEVICE" \   --form-string "device=$PUSHOVERDEVICE" \
-  --location https://api.pushover.net/1/messages.json) +  --location https://api.pushover.net/1/messages.json)
  
  
Zeile 133: Zeile 151:
 PUSHOVERRETRY: $PUSHOVERRETRY PUSHOVERRETRY: $PUSHOVERRETRY
 PUSHOVEREXPIRE: $PUSHOVEREXPIRE PUSHOVEREXPIRE: $PUSHOVEREXPIRE
-NOTIFICATIONTYPE: $NOTIFICATIONTYPE 
 HOSTDISPLAYNAME: $HOSTDISPLAYNAME HOSTDISPLAYNAME: $HOSTDISPLAYNAME
-SERVICEDISPLAYNAME: $SERVICEDISPLAYNAME 
-SERVICESTATE: $SERVICESTATE 
 ICINGALONGDATETIME: $ICINGALONGDATETIME ICINGALONGDATETIME: $ICINGALONGDATETIME
 +NOTIFICATIONTYPE: $NOTIFICATIONTYPE
 +NOTIFICATIONCOMMENT: $NOTIFICATIONCOMMENT
 +NOTIFICATIONAUTHOR: $NOTIFICATIONAUTHOR
 ICINGA2HOST: $ICINGA2HOST ICINGA2HOST: $ICINGA2HOST
-SERVICEOUTPUT: $SERVICEOUTPUT +HOSTNAME: $HOSTNAME 
-SERVICENAME: $SERVICENAME+HOSTSTATE: $HOSTSTATE 
 +HOSTOUTPUT: $HOSTOUTPUT
 pushover json output: $failstate pushover json output: $failstate
  
 EOF EOF
 fi fi
- 
 </file> </file>
  
-<file bash /etc/icinga2/scripts/pushover-host.sh>+<file bash /etc/icinga2/scripts/pushover-host-notification.sh>
 #!/bin/bash #!/bin/bash
  
Zeile 193: Zeile 211:
 #Übergebene Parameter #Übergebene Parameter
 # #
-#PUSHOVERUSER = "$user.vars.pushover_user$" +   PUSHOVERUSER = "$user.vars.pushover_user$" 
-#PUSHOVERTOKEN = "$user.vars.pushover_token$" +   PUSHOVERTOKEN = "$user.vars.pushover_token$"  
-#PUSHOVERPRIORITY = "$user.vars.pushover_priority$" +   PUSHOVERDEVICE = "$user.vars.pushover_device$" 
-#PUSHOVERDEVICE = "$user.vars.pushover_device$" +# 
-#$PUSHOVERRETRY = "$user.vars.pushover_retry$" +#    PUSHOVERPRIORITY = "$service.vars.pushover_priority$" 
-#$PUSHOVEREXPIRE = "$user.vars.pushover_expire$" +   PUSHOVERRETRY = "$service.vars.pushover_retry$" 
 +   PUSHOVEREXPIRE = "$service.vars.pushover_expire$"  
 +
 +#    NOTIFICATIONTYPE = "$notification.type$" 
 +#    NOTIFICATIONCOMMENT = "$notification.comment$" 
 +#    NOTIFICATIONAUTHOR = "$notification.author$" 
 +
 +#    ICINGALONGDATETIME = "$icinga.long_date_time$" 
 +
 +#    HOSTNAME = "$host.name$" 
 +#    SERVICENAME = "$service.name$" 
 +#    HOSTDISPLAYNAME = "$host.display_name$" 
 +#    SERVICESTATE = "$service.state$" 
 +#    SERVICEOUTPUT = "$service.output$"
 # #
-#NOTIFICATIONTYPE = "$notification.type$" 
-#HOSTDISPLAYNAME = "$host.display_name$"  
-#ICINGALONGDATETIME = "$icinga.long_date_time$"" 
-#HOSTNAME = "$host.name$" 
-#HOSTSTATE = "$host.state$" 
-#HOSTOUTPUT = "$host.output$" 
- 
 ##################################################### #####################################################
  
 +#***** Service Monitoring on $ICINGA2HOST *****
 PUSHOVERMESSAGE=$(cat << EOF PUSHOVERMESSAGE=$(cat << EOF
-***** Host Monitoring on $ICINGA2HOST ***** +***** Service Monitoring on icinga ***** 
-$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="$NOTIFICATIONTYPE - Host $HOSTDISPLAYNAME is $HOSTSTATE!"+#Wenn ein Kommentar eingetragen wurde (Downtimekommentar, Benachrichtigungskommentar), wird dieser angehangen 
 +if [ -n "$NOTIFICATIONCOMMENT"
 +then 
 +PUSHOVERMESSAGE=$(cat << EOF 
 +$PUSHOVERMESSAGE 
 +Comment: $NOTIFICATIONCOMMENT 
 +Author:  $NOTIFICATIONAUTHOR 
 +EOF 
 +
 +fi 
 + 
 +PUSHOVERTITLE="$NOTIFICATIONTYPE - $HOSTDISPLAYNAME - $SERVICEDISPLAYNAME is $SERVICESTATE"
  
 #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 247: Zeile 284:
   --form-string "expire=$PUSHOVEREXPIRE" \   --form-string "expire=$PUSHOVEREXPIRE" \
   --form-string "device=$PUSHOVERDEVICE" \   --form-string "device=$PUSHOVERDEVICE" \
-  --location https://api.pushover.net/1/messages.json)+  --location https://api.pushover.net/1/messages.json) 
  
  
Zeile 266: Zeile 303:
 PUSHOVERRETRY: $PUSHOVERRETRY PUSHOVERRETRY: $PUSHOVERRETRY
 PUSHOVEREXPIRE: $PUSHOVEREXPIRE PUSHOVEREXPIRE: $PUSHOVEREXPIRE
 +NOTIFICATIONTYPE: $NOTIFICATIONTYPE
 +NOTIFICATIONCOMMENT: $NOTIFICATIONCOMMENT
 +NOTIFICATIONAUTHOR: $NOTIFICATIONAUTHOR
 HOSTDISPLAYNAME: $HOSTDISPLAYNAME HOSTDISPLAYNAME: $HOSTDISPLAYNAME
 +SERVICEDISPLAYNAME: $SERVICEDISPLAYNAME
 +SERVICESTATE: $SERVICESTATE
 ICINGALONGDATETIME: $ICINGALONGDATETIME ICINGALONGDATETIME: $ICINGALONGDATETIME
-NOTIFICATIONTYPE: $NOTIFICATIONTYPE 
 ICINGA2HOST: $ICINGA2HOST ICINGA2HOST: $ICINGA2HOST
-HOSTNAME: $HOSTNAME +SERVICEOUTPUT: $SERVICEOUTPUT 
-HOSTSTATE: $HOSTSTATE +SERVICENAME: $SERVICENAME
-HOSTOUTPUT: $HOSTOUTPUT+
 pushover json output: $failstate pushover json output: $failstate
  
 EOF EOF
 fi fi
- 
 </file> </file>
 +
 +<note>wenn man die Variable debug auf 1 setzt, wird zusätzlich zur Meldung eine Ausgabe mit allen übergebene Werten nach '/var/log/pushover_icinga.log' geschrieben</note>
  
 <file bash /etc/icinga2/conf.d/commands/pushover-notification.conf> <file bash /etc/icinga2/conf.d/commands/pushover-notification.conf>
Zeile 284: Zeile 325:
 import "plugin-notification-command"  import "plugin-notification-command" 
  
-command = [ SysconfDir + "/icinga2/scripts/pushover-host.sh"+command = [ SysconfDir + "/icinga2/scripts/pushover-host-notification.sh" ] 
  
 env = {  env = { 
     PUSHOVERUSER = "$user.vars.pushover_user$"     PUSHOVERUSER = "$user.vars.pushover_user$"
     PUSHOVERTOKEN = "$user.vars.pushover_token$"      PUSHOVERTOKEN = "$user.vars.pushover_token$" 
-    PUSHOVERPRIORITY = "$user.vars.pushover_priority$" 
     PUSHOVERDEVICE = "$user.vars.pushover_device$"     PUSHOVERDEVICE = "$user.vars.pushover_device$"
-    PUSHOVERRETRY = "$user.vars.pushover_retry$" + 
-    PUSHOVEREXPIRE = "$user.vars.pushover_expire$" +    PUSHOVERPRIORITY = "$host.vars.pushover_priority$" 
 +    PUSHOVERRETRY = "$host.vars.pushover_retry$" 
 +    PUSHOVEREXPIRE = "$host.vars.pushover_expire$" 
  
     NOTIFICATIONTYPE = "$notification.type$"     NOTIFICATIONTYPE = "$notification.type$"
-    HOSTDISPLAYNAME = "$host.display_name$" +    NOTIFICATIONCOMMENT = "$notification.comment$" 
 +    NOTIFICATIONAUTHOR = "$notification.author$" 
     ICINGALONGDATETIME = "$icinga.long_date_time$"     ICINGALONGDATETIME = "$icinga.long_date_time$"
 +
     HOSTNAME = "$host.name$"     HOSTNAME = "$host.name$"
 +    HOSTDISPLAYNAME = "$host.display_name$" 
     HOSTSTATE = "$host.state$"     HOSTSTATE = "$host.state$"
     HOSTOUTPUT = "$host.output$"     HOSTOUTPUT = "$host.output$"
- 
   }    } 
  
Zeile 307: Zeile 352:
   import "plugin-notification-command"    import "plugin-notification-command" 
  
-  command = [ SysconfDir + "/icinga2/scripts/pushover-service.sh"+  command = [ SysconfDir + "/icinga2/scripts/pushover-service-notification.sh" ] 
  
   env = {    env = { 
     PUSHOVERUSER = "$user.vars.pushover_user$"     PUSHOVERUSER = "$user.vars.pushover_user$"
     PUSHOVERTOKEN = "$user.vars.pushover_token$"      PUSHOVERTOKEN = "$user.vars.pushover_token$" 
-    PUSHOVERPRIORITY = "$user.vars.pushover_priority$" 
     PUSHOVERDEVICE = "$user.vars.pushover_device$"     PUSHOVERDEVICE = "$user.vars.pushover_device$"
-    PUSHOVERRETRY = "$user.vars.pushover_retry$" + 
-    PUSHOVEREXPIRE = "$user.vars.pushover_expire$" +    PUSHOVERPRIORITY = "$service.vars.pushover_priority$" 
 +    PUSHOVERRETRY = "$service.vars.pushover_retry$" 
 +    PUSHOVEREXPIRE = "$service.vars.pushover_expire$" 
  
     NOTIFICATIONTYPE = "$notification.type$"     NOTIFICATIONTYPE = "$notification.type$"
 +    NOTIFICATIONCOMMENT = "$notification.comment$"
 +    NOTIFICATIONAUTHOR = "$notification.author$"
 +
 +    ICINGALONGDATETIME = "$icinga.long_date_time$"
 +
 +    HOSTNAME = "$host.name$"
 +    SERVICENAME = "$service.name$"
     HOSTDISPLAYNAME = "$host.display_name$"     HOSTDISPLAYNAME = "$host.display_name$"
-    SERVICEDISPLAYNAME = "$service.display_name$" 
     SERVICESTATE = "$service.state$"     SERVICESTATE = "$service.state$"
-    ICINGALONGDATETIME = "$icinga.long_date_time$" 
     SERVICEOUTPUT = "$service.output$"     SERVICEOUTPUT = "$service.output$"
-    SERVICENAME = "$service.name$" 
-    HOSTNAME = "$host.name$" 
   }    } 
  
- 
 </file> </file>
  
Zeile 352: Zeile 400:
 </file> </file>
  
 +<file bash /etc/icinga2/conf.d/notifications/pushover.conf>
 +apply Notification "pushover-icingaadmin" to Host {
 +  import "pushover-host-notification"
 +
 +  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 "pushover-icingaadmin" to Service {
 +  import "pushover-service-notification"
 +
 +  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>
  
 <file bash /etc/icinga2/conf.d/users/alle.conf> <file bash /etc/icinga2/conf.d/users/alle.conf>
Zeile 358: Zeile 429:
  
   display_name = "Patrick"   display_name = "Patrick"
-#  groups = [ "icingaadmins" , "icingaadmins-pushover" ]+  #  groups = [ "icingaadmins" , "icingaadmins-pushover" ]
   groups = [ "icingaadmins-pushover" ]   groups = [ "icingaadmins-pushover" ]
  
Zeile 366: Zeile 437:
   vars.pushover_user = "user-Token"    vars.pushover_user = "user-Token" 
   vars.pushover_token = "API-Token"    vars.pushover_token = "API-Token" 
 +  #Devices
 +  #(mehrere devices = [ "device1", "device2" ]
   vars.pushover_device = [ "device" ]   vars.pushover_device = [ "device" ]
-# vars.pushover_priority = "2" +  # vars.pushover_priority = "2" 
-# retry >= 30 +  # retry >= 30 
-# vars.pushover_retry = "30" +  # vars.pushover_retry = "30" 
-# expire <= 10800 +  # expire <= 10800 
-# vars.pushover_expire = "300"+  # vars.pushover_expire = "300"
  
 } }
- 
 </file> </file>
  
  • wiki/programme/icinga2/pushover.txt
  • Zuletzt geändert: 2020/01/16 10:58
  • von wikiadmin