Nagios has a Service Availability Report feature which is usable from Reports section of its web interface. But this feature is not designed as a web service architecture like a RESTful system. So in order to get these reports from an application interface we must make an Http request and parse the results. I just want to give an example of a python script does this kind of automation.
Nagios version used in this example is 3.5.0. Since Nagios serves with https and requires basic authentication, we have to use a ssl context and an authentication header. Python version is 2.7. Beautifulsoup4 library is used for parsing Http output.
Script output:
Yesterday: 2016-01-13
Today: 2016-01-14
Host: SomeHost
Service: SomeService
state OK - Unscheduled: 0d 22h 3m 8s
state OK - Scheduled: 0d 0h 0m 0s
state WARNING - Unscheduled: 0d 0h 47m 22s
state WARNING - Scheduled: 0d 0h 0m 0s
state UNKNOWN - Unscheduled: 0d 0h 0m 0s
state UNKNOWN - Scheduled: 0d 0h 0m 0s
state CRITICAL - Unscheduled: 0d 1h 9m 30s
state CRITICAL - Scheduled: 0d 0h 0m 0s
state Undetermined - Nagios Not Running: 0d 0h 0m 0s
state Undetermined - Insufficient Data: 0d 0h 0m 0s
Nagios version used in this example is 3.5.0. Since Nagios serves with https and requires basic authentication, we have to use a ssl context and an authentication header. Python version is 2.7. Beautifulsoup4 library is used for parsing Http output.
Script output:
Yesterday: 2016-01-13
Today: 2016-01-14
Host: SomeHost
Service: SomeService
state OK - Unscheduled: 0d 22h 3m 8s
state OK - Scheduled: 0d 0h 0m 0s
state WARNING - Unscheduled: 0d 0h 47m 22s
state WARNING - Scheduled: 0d 0h 0m 0s
state UNKNOWN - Unscheduled: 0d 0h 0m 0s
state UNKNOWN - Scheduled: 0d 0h 0m 0s
state CRITICAL - Unscheduled: 0d 1h 9m 30s
state CRITICAL - Scheduled: 0d 0h 0m 0s
state Undetermined - Nagios Not Running: 0d 0h 0m 0s
state Undetermined - Insufficient Data: 0d 0h 0m 0s
Comments
Post a Comment