Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
nagiosnotification [2018/04/03 14:17] dh3wr angelegt |
nagiosnotification [2018/04/05 17:16] (aktuell) dh3wr [Notification to Pager from Nagios via DAPNET-Core] |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== Notification to Pager from Nagios ====== | + | ====== Notification to Pager from Nagios via DAPNET-Core ====== |
| - | By default, Nagios can send emails to registered contact. Fortunately, there is also a contact property names ''pager'' which can be used very conveniently. Two things have to be added to your nagios config in order to reveice the Nagios notifications via DAPNET. | + | By default, Nagios can send emails to registered contact. Fortunately, there is also a contact property names ''pager'' which can be used very conveniently. Two things have to be added to your nagios config in order to receive the Nagios notifications via DAPNET. |
| - | ===== Define DAPNET Username and Password ===== | + | If you want to send the notifications directly via [[unipager|UniPager]], use this solution: [[nagiosnotificationunipager|Notification to Pager from Nagios via UniPager]]. |
| + | ===== Define commands to send paging calls ===== | ||
| + | Edit ''commands.cfg'' and add the following lines: | ||
| + | <code> | ||
| + | # 'notify-host-by-pager' command definition | ||
| + | define command{ | ||
| + | command_name notify-host-by-pager | ||
| + | command_line /usr/bin/curl -H "Content-Type: application/json" -X POST -u $USER12$:$USER13$ -d '{ "text": "NAGIOS $NOTIFICATIONTYPE$: $HOSTNAME$ $HOSTSTATE$", "callSignNames": ["$CONTACTPAGER$"], "transmitterGroupNames": ["$CONTACTADDRESS1$"], "emergency": false }' $USER11$/calls | ||
| + | } | ||
| + | |||
| + | # 'notify-service-by-pager' command definition | ||
| + | define command{ | ||
| + | command_name notify-service-by-pager | ||
| + | command_line /usr/bin/curl -H "Content-Type: application/json" -X POST -u $USER12$:$USER13$ -d '{ "text": "NAGIOS $NOTIFICATIONTYPE$: $HOSTNAME$ $SERVICEDESC$ $SERVICESTATE$", "callSignNames": ["$CONTACTPAGER$"], "transmitterGroupNames": ["$CONTACTADDRESS1$"], "emergency": false }' $USER11$/calls | ||
| + | } | ||
| + | |||
| + | </code> | ||
| + | |||
| + | ===== Define DAPNET API-URL, username and password ===== | ||
| + | As you see, there are macros ''$USER11$'' to ''$USER13$'' used. They should contain the API-URL, your DAPNET username and password. Define them in the ''resource.cfg'': | ||
| + | <code> | ||
| + | $USER11$=http://dapnet.db0sda.ampr.org:8080 | ||
| + | $USER12$=dl1abc | ||
| + | $USER13$=VERYSCECRETPASSWORD | ||
| + | </code> | ||
| + | |||
| + | If you don't have HAMNET access to dapnet.db0sda.ampr.org, use ''http://hampager.de/api'' without port (default 80 is right) or use your own DAPNET Core's API. | ||
| + | |||
| + | ===== Setup contacts ===== | ||
| + | Edit ''contacts.cfg'' and add the pager subscriber as set in DAPNET and the notification commands: | ||
| + | <code> | ||
| + | define contact{ | ||
| + | contact_name dh3wr | ||
| + | alias Ralf Wilke | ||
| + | service_notifications_enabled 1 | ||
| + | host_notifications_enabled 1 | ||
| + | service_notification_period 24x7 | ||
| + | host_notification_period 24x7 | ||
| + | service_notification_options w,u,c,r | ||
| + | host_notification_options d,r | ||
| + | service_notification_commands notify-service-by-email,notify-service-by-pager | ||
| + | host_notification_commands notify-host-by-email,notify-host-by-pager | ||
| + | email spam@myemail.cl | ||
| + | pager dh3wr | ||
| + | address1 dl-nw | ||
| + | } | ||
| + | |||
| + | </code> | ||
| + | The ''pager'' entry defines the subscriber on DAPNET, the ''address1'' defines the transmitter group. Remember to add the commands just created. | ||
| + | |||
| + | {{:icons:warning.png?nolink |}}{{ :icons:warning.png?nolink|}}Attention: In order to minimize traffic on the DAPNET, please select a transmitter group just big enough to fulfill your requirements. Not whole Europe wants to be informed, that you disk space is below 10%. | ||
| + | |||
| + | ===== Assign the contact to the host or service ===== | ||
| + | Either use the template or define at each host and service the contacts you want to notify. | ||
| + | <code> | ||
| + | define host{ | ||
| + | name generic-host-rwthafu ; The name of this host template | ||
| + | notifications_enabled 1 ; Host notifications are enabled | ||
| + | event_handler_enabled 1 ; Host event handler is enabled | ||
| + | flap_detection_enabled 1 ; Flap detection is enabled | ||
| + | failure_prediction_enabled 1 ; Failure prediction is enabled | ||
| + | process_perf_data 1 ; Process performance data | ||
| + | retain_status_information 1 ; Retain status information across program restarts | ||
| + | retain_nonstatus_information 1 ; Retain non-status information across program restarts | ||
| + | check_command check-host-alive | ||
| + | max_check_attempts 10 | ||
| + | notification_interval 0 | ||
| + | notification_period 24x7 | ||
| + | notification_options d,u,r | ||
| + | contacts rwthafu,dh3wr | ||
| + | register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | ===== Example ===== | ||
| + | This is how the result looks like: | ||
| + | {{ :swissphone:swissphone2_300.jpg?direct |}} | ||