Page 1 of 2

Customizing Nagios to send http notifications

Posted: Sun Mar 13, 2016 1:43 am
by bunker
I am new to Nagios and can't find any help on customizing Nagios to send HTTP notifications like on address: http://192.45.78.66:2434/things. Is it possible in Nagios and if yes then how?

Actually I am trying to monitor my service and want it to send me an http notification if Rps increases from a certain threshold.
I have just decided to use Nagios, and asked this question several times on other forums including this, but no success uptil now. Please help!!! :?: :(

Thanks

Re: Customizing Nagios to send http notifications

Posted: Mon Mar 14, 2016 10:32 am
by rkennedy
Do you have a custom built API that will handle the notifications? This should work fine as long as you do, you'll just need to create a command to handle the notifications though. Take a look at these notify commands for examples of how the macro's work for our standard notify commands.

Code: Select all

[root@suse11 etc]# cat commands.cfg |grep printf
       command_line                             /usr/bin/printf "%b" "***** Nagios Monitor XI Alert *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
       command_line                             /usr/bin/printf "%b" "***** Nagios Monitor XI Alert *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
[root@suse11 etc]#
For a full list of macros, see this link - https://assets.nagios.com/downloads/nag ... olist.html

You'll need to create a curl/wget string to get/post the information on your web page.

Re: Customizing Nagios to send http notifications

Posted: Mon Mar 14, 2016 10:49 am
by bwallace
You can use the check_http plugin for this.

https://assets.nagios.com/downloads/nag ... vices.html - see 'Monitoring HTTP' section

Here is the man page for this plugin:
http://nagios-plugins.org/doc/man/check_http.html


Note that check_http requires separation between fqdn and full path by using flag -u

Good example (using http://www.pbs.org/shows/)

Code: Select all

./check_http -H www.pbs.org -u /shows/
Where this will NOT work:

Code: Select all

./check_http -H www.pbs.org/shows/
Suppose the above site is hosted on a non-standard port, like your example, then just append it with the flag -p

Code: Select all

./check_http -H www.pbs.org -u /shows/ -p 123456

*You can test these checks manually from your Nagios server, 1st go to this directory /usr/local/nagios/libexec
Once in that location run "./plugin-name" with the appropriate flags you want to check.
To get help/usage info about any plugin run "./plugin-name -h"

Hope this helps, certainly let us know if you have any other questions, thanks.

Re: Customizing Nagios to send http notifications

Posted: Mon Mar 14, 2016 1:30 pm
by bunker
@bwallace should i put 'check_http -H 182.34.3.24 -p 1234' in some file with libexec folder?

Re: Customizing Nagios to send http notifications

Posted: Mon Mar 14, 2016 1:37 pm
by bunker
@bwallace Thanks for your reply, but I don't want to monitor www.prs.com I want to notify www.prs.com about the alerts.. Like somehow I need to replace notify-by-email with notify-by-http. How can I do this?

Re: Customizing Nagios to send http notifications

Posted: Mon Mar 14, 2016 1:51 pm
by rkennedy
bunker wrote:@bwallace Thanks for your reply, but I don't want to monitor http://www.prs.com I want to notify http://www.prs.com about the alerts.. Like somehow I need to replace notify-by-email with notify-by-http. How can I do this?
Please see my post above. You will need to create something similar to 'notify-host-by-http', as well as an API to handle it on your end.

Re: Customizing Nagios to send http notifications

Posted: Mon Mar 14, 2016 1:57 pm
by bunker
Sorry @rkennedy! I didn't understand your solution. And I do have a service to handle these notifications.

Re: Customizing Nagios to send http notifications

Posted: Mon Mar 14, 2016 2:08 pm
by rkennedy
No worries. I haven't tested this as I don't have an API to use, but this should be the start of what you need to do -

Define a command called notify-host-by-http, and as the command_line have it use -

Code: Select all

/usr/bin/curl --data "param1=value1&param2=value2" https://yourdomain.com/things
Essentially, it would look like -

Code: Select all

define command {
command_name notify-host-by-http
command_line /usr/bin/curl --data "host=$HOSTNAME$&state=$HOSTSTATE$" https://yourdomain.com/things
}
This will send a curl POST to https://yourdomain.com/things and post the parameters under --data.

Once you've got that setup completely, you'll need to have your contact to use this as the host_notification_command.

Does that make sense?

Re: Customizing Nagios to send http notifications

Posted: Mon Mar 14, 2016 2:15 pm
by bunker
Yeah! Thanks, but let me try.

Re: Customizing Nagios to send http notifications

Posted: Mon Mar 14, 2016 2:31 pm
by rkennedy
Sounds good - I'm curious to see how it works. Let us know!