on
dns
technitium
ubuntu
- Get link
- X
- Other Apps
1. Download and install UnisphereCLI from dell official website. Due to I am using Ubuntu, have to convert the rpm to deb via alien.
sudo apt-get install alien
alien UnisphereCLI-Linux-64-x86-en_US-3.0.0.1.16-1.x86_64.rpm
sudo dpkg -i unispherecli-linux-64-x86-en-us_3.0.0.1.16-2_amd64.deb
2. The uemcli program will be installed to /opt/emc/uemcli/bin/uemcli.sh. It require root access to run it. Before run it, remember to configure the uemcli permission level.
sudo /opt/emc/uemcli/bin/setlevel.sh low
sudo /opt/emc/uemcli/bin/uemcli.sh -d xxx.xxx.xxx.xxx -u xxx -p xxx /sys/general show
3. I download a nagios plugins from nagios exchange and modify it to suite my own usage.
#!/bin/bashusage="./check_vnxe.sh [Host] [User] [Password] [Check Command] [Sub Module (Optional)]\nAvailable Check Commands:ssd - Checks all ssd components.ps - Checks all power supplies.iomodule - Checks all iomodules.dae - Checks all daes.lcc - Checks all lccs.sp - Checks all storage processors.dpe - Checks all dpes.disk - Checks all disks.mm - Checks all memory modules.ccard - Checks all ccard modules.bat - Checks all batteries.fan - Checks all fans.eth - Checks all ethernet connection.fc - Checks all fiber-channel connection.sas - Checks all SAS connection.general - Overall health check from /sys/general. Sub module for general: hostname - Display system name. model - Display device model. sn - Display product serial number. ver - Display product firmware version.\nSecurity warning: It is STRONGLY recommended that a read only user be created in VNXe and used with this script. The script will work with admin login but this is highly insecure!\nNote: This plugin requires sudo access to run, at least under Nagios on Ubuntu. You will need to add a line to your sudoers file that looks something like this - nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_vnxe.sh. Be sure to only allow this script to run under sudo without password. You will also need to define the check command in Nagios to execute with sudo\nAdditionally, you must set the verification level to low by running /opt/emc/uemcli-1.5.4.1.0027/bin/setlevel.sh l as a root user or this plugin will fail.\nPlease send all comments/feedback to the author, Charles Bender, at charles@beachcamera.com\nModified by Me, Lee Pak Hong for my personal usage.\n"ucli=/opt/emc/uemcli/bin/uemcli.shhost=$1user="$2"password="$3"cmd=$4component=$5# Verify input parametersif [ -z $1 ] || [ -z $2 ] || [ -z $3 ] || [ -z $4 ]; then printf "$usage" exit 3fi# Check that Unisphere CLI exists, and then set parameters for it to workif [ ! -e $ucli ]; then echo "Unisphere CLI not found. Check that uemcli is installed; if so check the ucli variable at the top of this script" exit 3ficheck_field="Health state"# Define check_vnxe functioncheck_vnxe () { temp=/tmp/$cmd-check_`date +%N` $ucli -d $host -u $user -p $password $check_path show > $temp if [[ $? -ne 0 ]]; then echo "UNKNOWN - Unisphere CLI returned an error, unable to perform check." result=3 export result fi #echo $check check=`cat $temp | grep -i "$check_field" | cut -d "=" -f2 | sed 's/ //'` #echo $check if [ -z "$check" ]; then echo "UNKNOWN - $cmd module not detected" result=3 export result elif [ -z `echo $check | grep -i "fail"` ]; then if [ "$check_field" == "Health state" ]; then echo "OK - no faults detected" else echo "OK - $label $check" fi result=0 export result else echo "CRITICAL - Faults detected in $cmd modeule" result=2 export result fi rm $temp }# Run the script with specified parameterscase "$cmd" in ssd) check_path=/env/ssd check_vnxe exit $result ;; ps) check_path=/env/ps check_vnxe exit $result ;; iomodule) check_path=/env/iomodule check_vnxe exit $result ;; dae) check_path=/env/dae check_vnxe exit $result ;; lcc) check_path=/env/lcc check_vnxe exit $result ;; sp) check_path=/env/sp check_vnxe exit $result ;; dpe) check_path=/env/dpe check_vnxe exit $result ;; disk) check_path=/env/disk check_vnxe exit $result ;; mm) check_path=/env/mm check_vnxe exit $result ;; ccard) check_path=/env/ccard check_vnxe exit $result ;; bat) check_path=/env/bat check_vnxe exit $result ;; general) check_path=/sys/general if [ -z "$component" ]; then check_vnxe exit $result else case "$component" in hostname) check_field="name" label="System name:" check_vnxe exit $result ;; model) check_field="model" label="Model:" check_vnxe exit $result ;; sn) check_field="serial" label="Product serial number:" check_vnxe exit $result ;; ver) check_path=/sys/soft/ver check_field="version" label="Firmware Version:" check_vnxe exit $result ;; esac fi ;; eth) check_path=/net/port/eth check_vnxe exit $result ;; fc) check_path=/net/port/fc check_vnxe exit $result ;; sas) check_path=/net/port/eth check_vnxe exit $result ;; fan) check_path=/env/fan check_vnxe exit $result ;; *) printf "$usage" exit 3 ;;esac
4. The script require root access to run, configure sudoers for it.
sudo visudo -f /etc/sudoers.d/nagios
and add below line to it
nagios ALL=(root) NOPASSWD:/path/check_vnxe.sh
5. Remember to add sudo to your nagios commands.
define command{
command_name check_vnxe
command_line sudo /path/check_vnxe.sh $HOSTADDRESS$ username password $ARG1$ $ARG2$
}
https://exchange.nagios.org/directory/Plugins/Hardware/Storage-Systems/SAN-and-NAS/check_vnxe/details
Comments