Awesome Open Source
Awesome Open Source


This repository contains scripts to facilitate monitoring Erlang. systems using the Nagios monitoring framework.

At this time it supports monitoring nodes, applications and process groups.


  • README - this file
  • Makefile - build script
  • - shell script interface to check erlang apps are running
  • - shell script interface to check erlang node is running
  • - shell script interface to check process group is running
  • nagios_erlang.erl - Erlang implementation of checking apps/nodes/pgs
  • ebin/ - contains compiled Erlang files

Command Line Usage Examples

Examples of running the verification scripts directly (not via Nagios). These scripts are all being run in a Git checkout of the code, and after running make within that directory.

To run in other directorys, the --beam parameter will need to be updated to point to the directory where nagios_erlang.beam can be found.

Checking Nodes

bash-3.2$ ./ -e `which erl` -n my_node -c `cat /path/to/.erlang.cookie`
OK - Node my_node running.

Checking Applications

bash-3.2$ ./ -e `which erl` -n my_node -c `cat /path/to/.erlang.cookie` -a application1,application2
OK - Applications ["application1","application2"] running on Node my_node.

Checking Process Groups

./ -e /usr/bin/erl -n my_node -p my_group -w 1
OK - Process group my_group populated on Node my_node with 3 processes.

Full Example

First, we check that the node doesn't exist before we start it:

bash-3.2$ ./ -e erl -n [email protected]`hostname` -c cookie
CRITICAL - Node '[email protected]' not running.

Next, actually start the node:

will-larsons-macbook:~ lethain$ erl -setcookie cookie -name [email protected]`hostname`
Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.7.4  (abort with ^G)
([email protected])1> node().
'[email protected]'

And we can verify the node is accessible:

bash-3.2$ ./ -e erl -n [email protected]`hostname` -c cookie
OK - Node '[email protected]' running.

Next we can check for started applications (note that kernel2 is a made up application which doesn't exist, while kernel is a real application which is indeed running):

bash-3.2$ ./ -e erl -c cookie -n [email protected]`hostname` -a kernel2
CRITICAL - Applications ["kernel2"] not running on Node '[email protected]'.
bash-3.2$ ./ -e erl -c cookie -n [email protected]`hostname` -a kernel
OK - Applications ["kernel"] running on Node '[email protected]'.

And that is all there is to it.

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Shell (171,287
Group (19,768
Monitoring (11,800
Check (9,095
Erlang (9,065
Nagios (2,154
Nagios Plugin (332