Showing posts with label monitor. Show all posts
Showing posts with label monitor. Show all posts

Wednesday, November 16, 2011

check exim mail queue with nagios

Standart nagios plugin for checking mail queue  (/usr/lib/nagios/plugins/check_mailq) doesn't allow to monitor exim queue .. it always return "OK" status  and report that queue is empty

for example:

# exim -bpc 12
and


# /usr/lib/nagios/plugins/check_mailq -w 500 -c 1000 OK: mailq is empty|unsent=0;500;1000;0


so, we need write simple shell script, that allow us to monitor exim4 mail queue with nagios.
name it check_exim_mailqueue.sh and drop it into /usr/local/bin/ directory.



#!/bin/sh
###############################################
#
# Nagios script to check Exim mail queue status
#
# Copyright 2007, 2008 Ian Yates
#
# NOTE: Depending on your config, the nagios user will probably be 
#       needed to be added to the exim group for this script to function correctly
# 
###############################################
. /usr/lib/nagios/plugins/utils.sh
EXIM=/usr/sbin/exim
FLAG_VERBOSE=FALSE
LEVEL_WARN=""
LEVEL_CRIT=""
RESULT=""
EXIT_STATUS=$STATE_OK
###############################################
#
## FUNCTIONS 
#
## Print usage
usage() {
 echo " check_eximailqueue $VERSION - Nagios Exim mail queue check script"
 echo ""
 echo " Usage: check_eximailqueue -w  -c  [ -v ] [ -h ]"
 echo ""
 echo "   -w  Queue size at which a warning is triggered"
 echo "   -c  Queue size at which a critical is triggered"
 echo "   -v  Verbose output (ignored for now)"
 echo "   -h  Show this page"
 echo ""
}
 
## Process command line options
doopts() {
 if ( `test 0 -lt $#` )
 then
  while getopts w:c:vh myarg "$@"
  do
   case $myarg in
    h|\?)
     usage
     exit;;
    w)
     LEVEL_WARN=$OPTARG;;
    c)
     LEVEL_CRIT=$OPTARG;;
    v)
     FLAG_VERBOSE=TRUE;;
    *) # Default
     usage
     exit;;
   esac
  done
 else
  usage
  exit
 fi
}
# Write output and return result
theend() {
 echo $RESULT
 exit $EXIT_STATUS
}
#
## END FUNCTIONS 
#
#############################################
#
## MAIN 
#
# Handle command line options
doopts $@
# Do the do
OUTPUT=`$EXIM -bpc`
if test -z "$OUTPUT" ; then
 RESULT="Mailqueue WARNING - query returned no output!"
 EXIT_STATUS=$STATE_WARNING
else
 if test "$OUTPUT" -lt "$LEVEL_WARN" ; then
  RESULT="Mailqueue OK - $OUTPUT messages on queue"
  EXIT_STATUS=$STATE_OK
 else
  if test "$OUTPUT" -ge "$LEVEL_CRIT" ; then 
   RESULT="Mailqueue CRITICAL - $OUTPUT messages on queue"
   EXIT_STATUS=$STATE_CRITICAL
  else
   if test "$OUTPUT" -ge "$LEVEL_WARN" ; then 
    RESULT="Mailqueue WARNING - $OUTPUT messages on queue"
    EXIT_STATUS=$STATE_WARNING
   fi
  fi
 fi
fi
# Quit and return information and exit status
theend

original script is there http://exchange.nagios.org/directory/Plugins/Email-and-Groupware/Exim/check_eximailqueue/details // 
We modify it to work in debian and ubuntu/// and we threw unnecessary sudo usage.

All you need : add nagios user to Debian-exim group in /etc/group:
Debian-exim:x:118:nagios

than do this script executable:
# chmod u+x /usr/local/bin/check_exim_mailqueue.sh# chown  nagios:root  /usr/local/bin/check_exim_mailqueue.sh

now you can use this script in nagios-nrpe-server: define new command in nrpe configuration file (nrpe.conf ):
command[check_exim_mailq]=/usr/local/bin/check_exim_mailqueue.sh -w 500 -c 1000

# /etc/init.d/nagios-nrpe-server restart
or you an use it directrly with nagios: create new command in nagios config file.
define command{ command_name check_exim_mailq command_line /usr/local/bin/check_exim_mailqueue.sh -w $ARG1$ -c $ARG2$ }
# /etc/init.d/nagios reload

Wednesday, November 9, 2011

munin + lm_sensors

How to graph munin graphin with lm-senosrs ...


If you рave installed lm_sensors and you want to build graphics of cpu temperature or fan speed  you can do it with munin. all you need  it install munin (if it is not installed yet ..). Then you must "activate" senseors plugin check_sensors .
Simply create sym links :

#ln -s /usr/share/munin/plugins/sensors_   /etc/munin/plugins/sensors_fan 

#ln -s /usr/share/munin/plugins/sensors_   /etc/munin/plugins/sensors_temp

#ln -s /usr/share/munin/plugins/sensors_   /etc/munin/plugins/sensors_volt


for different linux distro path to sensors_ may be different !!!

you will have grapichs for fan speed, temperature and volt respectively.

don't forget restart munin-node, and after 5 minutes you will see first graphics

Tuesday, November 1, 2011

hot-to monitor raid status with lsi 9211-4i

In my previous post i told how to monitor raid stutus with lsi 9260-4i with nagios. Now i tell how to monitor raid status with raid controller lsi 9211-4i. This controller doesn't support by MegaCli utility.
The solution is: to use sas2ircu
you can find it there:


http://www.supermicro.com/support/faqs/data_lib/FAQ_9633_SAS2IRCU_Phase_5.0-5.00.00.00.zip

The zip file includes the utility for DOS, Linux PPC, Linux x86 (which will also work on x64), Solaris Sparc and X86, and Windows 32-bit and 64-bit.

i use it with nagios-nrpe server, so i write very-very simple shell script (/usr/local/bin/check_sas2ircu_raid.sh):

#!/bin/sh
exitstatus=2
STATUS=`/usr/local/bin/sas2ircu 0 STATUS |grep "Volume state"`
state=`echo "$STATUS"| awk '{ print $4 }'`
if [ "$state" = "Optimal" ]
then
    exitstatus=0
fi
echo "Volume state: $state"
exit $exitstatus



and now, write in nrpe config (for example, /etc/nagios/nrpe_local.cfg )

command[check_raid]=/usr/bin/sudo /usr/local/bin/check_sas2ircu_raid.sh

and finally, add to sudoers file


nagios ALL= NOPASSWD: /usr/local/bin/check_sas2ircu_raid.sh

now you can check raid status with nagios, simply add new service to nagios host config

how to monitor lsi hardware raid

We have installation of  debian-6 (amd64) on  hardware raid1  with lsi controller 9260-4i. And  we want to monitor raid staus with nagios..

In debian repositories is present package mpt-status, but it can't help in this situation. After installation mpt-status don't work properly.

The solution is to use MegaCli package from lsi.
But it is very hard to find and download this package// avaliable link to download MegaCli is http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/8.02.16_MegaCLI.zip .
Download it .
Unzip file. You will have rpm file. We use Debian, so we need to run (extrat file from rpm)
rpm2cpio MegaCli-8.02.16-1.i386.rpm | cpio -idmv
you will have both executable files: for 32 and 64 - architecture .
The binaries are statically compiled so actually run fine.

you can also need to install libsysfs2 , which is need for MegaCli. And if libsysfs version is difeerent you can create sym link to existing .
In this situation, it simply turned out my drives were setup as RAID 1 mirrors, which was easy to discern using:
./MegaCli64 -CfgDsply -aALL 

Most useful command is:


#Physical Disk List
./MegaCli64 -PDList -aALL

#Physical Drive Info
./MegaCli64 -pdInfo -PhysDrv \[252:4\] -aALL |less

#Logical Disk Info
./MegaCli64 -LDInfo -LAll -aAll | less

# Config Display
./MegaCli64 -CfgDsply -aALL

# Config add Logical Drive
./MegaCli64 -CfgLdAdd -r0 \[252:4,252:5\] -a0

# Logical Drive Init
./MegaCli64 -LDInit -Start -L2 -a0