The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Nagios plugin для apcupsd APC Smart-UPS (nagios monitor plugin shell)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: nagios, monitor, plugin, shell,  (найти похожие документы)
From: koly68 <koly68@np.lg.ua.> Newsgroups: email Date: Mon, 19 Dec 2005 14:31:37 +0000 (UTC) Subject: Nagios plugin для apcupsd APC Smart-UPS Вот модернизировал под сеть check_apc от Joe Anthony http://www.negative1.org/check_apc/check_apc пробуйте #!/bin/sh ## $Id: check_apcupsd ## Nagios Plugin for apcupsd APC Smart-UPS ## Copyright (C) 2005 ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA APCA="/usr/local/sbin/apcaccess" APCA_ARG="status" HOST=$2 PORT=$3 WARN=$4 CRIT=$5 STATE1="ONLINE" STATE2="BOOST ONLINE" if [ ! -x $APCA ]; then echo "$0: Error: $APCA not found!" exit 3 fi dishelp() { echo "Usage: $0 <status|load|bcharge|time|temp> HOST PORT WARN_VALUE CIRT_VALUE " echo echo "load (%): Warn when load is > WARN_VALUE, and CRIT when load is > CRIT_VALUE" echo "bcharge (%): Warn when charge is < WARN_VALUE, and CRIT when charge is < CRIT_VALUE" echo "time (minutes): Warn when time is < WARN_VALUE, and CRIT when time is < CRIT_VALUE" echo "status: Crit if not online" echo echo "UNKNOWN UPS State" exit 3 } checkargs() { if [ "$WARN" = '' -o "$CRIT" = '' ]; then dishelp exit 3 fi } case "$1" in load) checkargs LOAD=`$APCA $APCA_ARG $HOST : $PORT | grep LOAD | awk '{print $3}' | sed -e 's/\.[0-9]* *$//g'` if [ "$LOAD" -gt "$CRIT" ]; then echo "UPS CRITICAL - Load: ${LOAD}% > ${5}%" exit 2 fi if [ "$LOAD" -gt "$WARN" ]; then echo "UPS WARNING - Load: ${LOAD}% > ${4}%" exit 1 fi echo "UPS OK - LOAD: ${LOAD}%" exit 0 ;; bcharge) checkargs CHRG=`$APCA $APCA_ARG $HOST : $PORT | grep BCHARGE | awk '{print $3}' | sed -e 's/\.[0-9]* *$//g'` if [ "$CHRG" -lt "$CRIT" ]; then echo "UPS CRITICAL - Battery Charge: ${CHRG}% < ${5}%" exit 2 fi if [ "$CHRG" -lt "$WARN" ]; then echo "UPS WARNING - Battery Charge: ${CHRG}% < ${4}%" exit 1 fi echo "UPS OK - Battery Charge: ${CHRG}%" exit 0 ;; time) checkargs TLEFT=`$APCA $APCA_ARG $HOST : $PORT | grep TIMELEFT | awk '{print $3}' | sed -e 's/\.[0-9]* *$//g'` if [ "$TLEFT" -lt "$CRIT" ]; then echo "UPS CRITICAL - Time left: ${TLEFT} mins < ${5} mins" exit 2 fi if [ "$TLEFT" -lt "$WARN" ]; then echo "UPS WARNING - Time Left: ${TLEFT} mins < ${4} mins" exit 1 fi echo "UPS OK - Time Left: ${TLEFT} mins" exit 0 ;; temp) checkargs TEMP=`$APCA $APCA_ARG $HOST : $PORT | grep ITEMP | awk '{print $3}' | sed -e 's/\.[0-9]* *$//g'` if [ "$TEMP" -gt "$CRIT" ]; then echo "UPS CRITICAL - Temperature: ${TEMP} C < ${5} C" exit 2 fi if [ "$TEMP" -gt "$WARN" ]; then echo "UPS WARNING - Temperature: ${TEMP} C < ${4} C" exit 1 fi echo "UPS OK - Temperature: ${TEMP} C " exit 0 ;; status) ONLINE=`$APCA $APCA_ARG $HOST : $PORT | grep STATUS | awk '{print $3,$4}'` if [ "$ONLINE" != "$STATE1" ] && [ "$ONLINE" != "$STATE2" ]; then echo "UPS CRITICAL - $ONLINE" exit 2 fi echo "UPS OK - $ONLINE" exit 0 ;; *) dishelp esac

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Virgo (?), 18:59, 06/04/2006 [ответить]  
  • +/
    Ошибка в status. Надо awk '{print $3}'
     
  • 2, Daemon (??), 20:21, 10/07/2009 [ответить]  
  • +/
    Статья супер!!! меня просто спасла в нужный момент,
    к предыдущему замечанию хочу добавить, если мониторится несколько упсов убирайте пробелы тут $HOST:$PORT
    иначе будет мониторится только дефолтный ;)
    мониторю несколько упсов - без проблем...
     
  • 3, r1sh (ok), 15:43, 13/01/2011 [ответить]  
  • +/
    спасибо за ответ!)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру