2005-07-01 00:00:00
This script was written at the time I was hired by UPC / Liberty Global.
Basic monitor that checks if the Checkpoint Firewall-1 Management software is up and running. It checks for a number of processes and ports.
This script was quickly hacked together for my current customer, as a Q&D solution for their monitoring needs. It's no beauty, but it works. Written in ksh and tested with:
The script sends a Critical if:
A) One or more processes are not running, or
B) One or more ports are not available for connections.
UPDATE 19/06/2006:
Cleaned up the script a bit and added some checks that are considered the Right Thing to do. Should have done this -way- earlier!
#!/usr/bin/bash # # Firewall-1 process monitor plugin for Nagios # Written by Thomas Sluyter (nagiosATkilalaDOTnl) # By request of DTV Labs, Liberty Global, the Netherlands # Last Modified: 19-06-2006 # # Usage: ./check_fwm # # Description: # This plugin determines whether the Firewall-1 management # software is running properly. It will check the following: # * Are all required processes running? # * Are all the required TCP/IP ports open? # # Limitations: # Currently this plugin will only function correctly on Solaris systems. # # Output: # The script retunrs a CRIT when one of the criteria mentioned # above is not matched. # # Host OS check and warning message if [ `uname` != "SunOS" ] then echo "WARNING:" echo "This script was originally written for use on Solaris." echo "You may run into some problems running it on this host." echo "" echo "Please verify that the script works before using it in a" echo "live environment. You can easily disable this message after" echo "testing the script." echo "" fi # You may have to change this, depending on where you installed your # Nagios plugins PATH="/usr/bin:/usr/sbin:/bin:/sbin" LIBEXEC="/usr/local/nagios/libexec" . $LIBEXEC/utils.sh print_usage() { echo "Usage: $PROGNAME" echo "Usage: $PROGNAME --help" } print_help() { echo "" print_usage echo "" echo "Firewall-1 monitor plugin for Nagios" echo "" echo "This plugin not developped by the Nagios Plugin group." echo "Please do not e-mail them for support on this plugin, since" echo "they won't know what you're talking about :P" echo "" echo "For contact info, read the plugin itself..." } while test -n "$1" do case "$1" in --help) print_help; exit $STATE_OK;; -h) print_help; exit $STATE_OK;; *) print_usage; exit $STATE_UNKNOWN;; esac done check_processes() { PROCESS="0" # PROCLIST="cpd fwd fwm cpwd cpca cpmad cplmd cpstat cpshrd cpsnmpd" PROCLIST="cpd fwd fwm cpwd cpca cpmad cpstat cpsnmpd" for PROC in `echo $PROCLIST`; do if [ `ps -ef | grep $PROC | grep -v grep | wc -l` -lt 1 ]; then PROCESS=1;fi done if [ $PROCESS -eq 1 ]; then echo "FWM NOK - One or more processes not running" exitstatus=$STATE_CRITICAL exit $exitstatus fi } check_ports() { PORTS="0" PORTLIST="256 257 18183 18184 18187 18190 18191 18192 18196 18264" for NUM in `echo $PORTLIST`; do if [ `netstat -an | grep LISTEN | grep $NUM | grep -v grep | wc -l` -lt 1 ]; then PORTS=1;fi done if [ $PORTS -eq 1 ]; then echo "FWM NOK - One or more TCP/IP ports not listening." exitstatus=$STATE_CRITICAL exit $exitstatus fi } check_processes check_ports echo "FWM OK - Everything running like it should" exitstatus=$STATE_OK exit $exitstatus
kilala.nl tags: nagios, unix, programming,
View or add comments (curr. 0)
All content, with exception of "borrowed" blogpost images, or unless otherwise indicated, is copyright of Tess Sluijter. The character Kilala the cat-demon is copyright of Rumiko Takahashi and used here without permission.