Support forum

Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_TopicIcon
Nagios plugin for Diafaan SMS Server monitoring AVAILABLE
sp_NewPost Add Reply sp_NewTopic Add Topic
February 13, 2017
12:31 pm
irenuncio
Guest
Guests

Henk Helmantel wrote:

The Nagios plugin script from Ignacio can be downloaded from here. The links in this post are disabled, copy and paste the links to visit the link locations.

Hi everybody,

For our own organizational needs and due to the fact that I haven't found a way to reliably monitor Diafaan SMS Server status from Nagios, I've spent some hours in the last few days coding a Diafaan SMS Server plugin for the Nagios platform. The first version is ready (download it HERE), programmed in Python for portability and easy maintainability. I think it could be useful for other Diafaan SMS users, so I'm putting it in this support forum post.

It has been tested in the following environments:

• Windows 8.1 Pro (x64) with python 3.6.0
• Windows 8.1 Pro (x64) with python 2.7.13
• CentOS with python 2.6.6

INSTALLATION AND REQUIREMENTS

It makes use of the following:

• Diafaan SMS Server: The Web connector must be installed with the HTTP API enabled (located in the 'HTTP Server' tab). I also recommend enabling the anonymous HTTP API requests for simplicity.
• Nagios Server: Needs to have a Python interpreter version 2.6+ installed (recommended 2.7+ if possible, BUT take into account that Nagios might be using more python plugins so carelessly upgrading the Python version could break them; you can get installers from https://www.python.org).
• Nagios Server Python installation: Must have 'pip' command installed (try to get a list of packages with "pip list", if it works you have pip installed, if it doesn't even work you must download pip from https://bootstrap.pypa.io/get-pip.py and then execute it with 'python get-pip.py' to get pip working).
• Nagios Server Python 2.6 package installation: Must have 'lxml' package installed, you can verify it with 'pip list' from a command prompt. If it's not installed, simply type 'pip install lxml' to get it (you also may use 'pip download lxml' from another Python installation if the server has no internet connection and copy the file afterwards).
• Nagios Server Python 2.7+ installation: Must have 'requests' package installed, you can verify it with 'pip list' from a command prompt. If it's not installed, simply type 'pip install requests' to get it (you also may use 'pip download requests' from another Python installation if the server has no internet connection and copy the file afterwards).

RUNNING THE PLUGIN

Please verify manually the plugin running it manually from a command prompt, simply type 'check_diafaan.py' and see the result, it should be like this:

"UNKNOWN - Wrong number of arguments, need a URL to check"

Then try to put a wrong server URL argument like 'check_diafaan.py http://www.baddomain.org', should get:

"UNKNOWN - Server could not be contacted, maybe down or a typo"

Now try to put a good but invalid URL argument like 'check_diafaan.py http://www.python.org', should get:

"UNKNOWN - Server contacted but status page is not in XML format, maybe a typo"

After that, write down the HTTP API port set for Diafaan SMS Server (located in the 'HTTP Server' tab of the Web Connector) and try this:

'check_diafaan.py http://[yourserver_fqdn]:[port]/http/request-server-status' (if anonymous HTTP API requests are enabled) or

'check_diafaan.py http://[yourserver_fqdn]:[port]/http/request-server-status?username=%5Busername_for_HTTP_access%5D' (if anonymous HTTP API requests are disabled)

For example, in my own environment I can check it with the following command:

'check_diafaan.py http://plavur.trabajo.dom:4375/http/request-server-status'

RETURN VALUES

If everything is ok, it will return an OK code to Nagios, with the following details:

"OK - Server contacted: All services, gateways and connectors working [Q:0 S:32 R:49 E:0]" (where Q=queued messages, S=sent, R=received, E=errors)

If something is not working as it should, it will return a CRITICAL code to Nagios, with the following message:

"CRITICAL - Server contacted: One or more services, gateways or connectors down"

CHECKS ISSUED

The code parses the Difaan SMS Server status XML document and checks for the following conditions:

• Server/Statistics/MessagesInSendQueue must be '0'
• For each defined Gateway in GatewayStatusList/Gateway, Active must be '1'
• For each defined Gateway in GatewayStatusList/Gateway, Status must be 'Ready to send and receive messages'
• For each defined Gateway in GatewayStatusList/Gateway, Statistics/NetworkSignalStrength must NOT be 'NoSignal'
• For each defined Connector in ConnectorStatusList/Connector, Active must be '1'
• For each defined Connector in ConnectorStatusList/Connector, Status must be 'Ready to send and receive messages'
• For each Web Connector in ConnectorStatusList/Connector, Statistics/WebserverActive must be '1'

If all of them are met, returns OK, if not returns CRITICAL.

INTEGRATION WITH NAGIOS

When you can run the plugin from the command line and get the desired results, then it's time to add it to Nagios. Please check the Nagios manual to do it (simply stated: first you must add the plugin, then create a new command that runs the plugin, a service based on that command and finally add the newly created service to your Diafaan SMS Server host).

I hope it can be useful for other users of the product. Please feel free to comment, ask for questions, or extend the plugin functionality (for my needs it's currently enough), but PLEASE post it here so anybody can benefit from it.

Kind regards from Spain,

Ignacio Renuncio.-

Forum Timezone: Europe/Amsterdam

Most Users Ever Online: 529

Currently Online:
7 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Member Stats:

Guest Posters: 671

Members: 0

Moderators: 0

Admins: 1

Forum Stats:

Groups: 2

Forums: 3

Topics: 1140

Posts: 3897

Newest Members:

, Henk Helmantel

Administrators: Henk Helmantel: 1487