Using Shell Scripts to monitor Linux and Unix computers with ActiveXperts Network Monitor
Introduction
ActiveXperts Network Monitor ships with a collection of shell scripts to monitor remote Linux- and Unix computers. There are two types of check for that: an RSH check and an SSH check.
SSH allows secure network services over an insecure network, such as the Internet. With SSH, ActiveXperts Network Monitor can login onto a remote machine running the SSH daemon, and execute a command or shell script. RSH is another IP-based protocol to execute programs on a remote Linux/Unix computer, but it less popular because it is NOT secure. Therefore, SSH is recommended for checking remote Linux- and Unix computers.
ActiveXperts Network Monitor requires the output (i.e. StdOut) to be formatted according to the following syntax:
[ SUCCESS | ERROR | UNCERTAIN]: { <explanation> } { DATA:<value>}
The <explanation> will be shown in the 'Last Response' column in the Manager application. The <value> field will be shown in the 'Data' column in the Manager application.
The shell script must reside on the Linux machine, i.e. you cannot use a script that resides on the Windows monitoring server. The shell script must have the 'Execute' permission flag set.
Here's a sample shell script that works with Network Monitor. This script checks the size of a directory:
#!/bin/bash # Validate number of arguments if [ $# -ne 2 ] ; then echo "UNCERTAIN: Invalid number of arguments - Usage: directory-size sDirectory nMaxSizeMB" exit 1 fi # Validate numeric parameter nMaxSizeMB regExpNumber='^[0-9]+$' if ! [[ $2 =~ $regExpNumber ]] ; then echo "UNCERTAIN: Invalid argument: nMaxSizeMB (number expected)" exit 1 fi # Check the size of the directory specified if [ ! -d "$1" ]; then echo "UNCERTAIN: Directory [$1] does not exist" exit 0 fi nSizeKB=`du -s "$1" | awk '{ print $1; }'` nSizeMB=$( echo "$nSizeKB / 1024" | bc ) # Round a float to an integer value nRoundSizeMB=$( echo "$nSizeMB / 1" | bc ) # Round a float to an integer value nRoundMaxMB=$( echo "$2 / 1" | bc ) if [ $nRoundSizeMB -le $nRoundMaxMB ] ; then echo "SUCCESS: Size=[$nRoundSizeMB MB], max. allowed=[$nRoundMaxMB MB] DATA:$nRoundSizeMB" else echo "ERROR: Size=[$nRoundSizeMB MB], max. allowed=[$nRoundMaxMB MB] DATA:$nRoundSizeMB" fi exit 0
Network Monitor Shell Script checks
ActiveXperts Network Monitor ships with a selection of shell scripts. These scripts work out of the box. The scripts are located in the <installation-dir>\Scripts\Monitor (Linux) (e.g., C:\Program Files\ActiveXperts\Network Monitor\Scripts\Monitor (Linux). you must copy the script to the linux machine first in order to run the script.
Samples
CPU usage check
Click here for a CPU monitoring script.
Directory size check
Click here for a directory size check.
Disk Existence check
Click here for a disk existence check.
Disk Free Space check
Click here for a disk free space check.
Disk Used Space check
Click here for a disk used space check.
Disk Used Space Percentage check
Click here for a disk used space percentage check.
E-mail POP3 check
Click here for an e-mail POP3 check.
E-mail SMTP check
Click here for an e-mail SMTP check.
File content check
Click here for a file content check.
File existence check
Click here for a file existence check.
Memory usage check
Click here for a memory monitoring script.
Ping check
Click here for a ping check.
Process check
Click here for a process check.
User Exists
Click here for a Linux User Existence check.