Назад | Перейти на главную страницу

Мониторинг процессов / сервисов Zabbix с использованием SNMP

Я пытаюсь контролировать около 60 серверов с помощью Zabbix 2.2 и SNMP. Я могу отслеживать множество значений, но я столкнулся с одной проблемой, связанной с идентификационным статусом процессов на серверах Linux.

Когда служба запущена и работает, я могу собирать данные через SNMP, используя OID:

HOST-RESOURCES-MIB::hrSWRunStatus
[
    "index",
    "HOST-RESOURCES-MIB::hrSWRunPath", 
    "name_of_the_service_or_process"
]

Проблема в том, что служба не работает. Zabbix этого не распознает и просто показывает последнее значение. Выявить сбой можно на графике, где линия даже не на уровне 1 или уровне 0. Она просто отсутствует (из-за отсутствия данных).

Есть ли возможность, как контролировать службы / процессы с помощью SNMP? Есть ли у кого-нибудь опыт в этом?

Большое спасибо ...

Так что я не стал вдаваться в подробности и решил что-то разработать сам. Это скрипт в bash примерно так

#!/bin/bash

# Arguments:
# hostname
# service name
# please review community string when you debug any issue with this script

SNMP_COMM_STRING="public"
HOST_NAME=$1
SERVICE_NAME=$2

case $SERVICE_NAME in
  test)
    echo "For testing purposes only ..."
    echo $HOST_NAME
    echo $SERVICE_NAME
    ;;

  *)
    RESULT=$(snmpwalk -v2c -c $SNMP_COMM_STRING $HOST_NAME HOST-RESOURCES-MIB::hrSWRunPath | grep $SERVICE_NAME )

    #if the variable is null then the service is down (or the host is unreachable)
    if [ -z "$RESULT" ]; then
        echo 0
    else
        echo 1
    fi
esac
exit 0
  1. Создайте сценарий .sh в соответствующем каталоге externalscript.
  2. Установите переменные внутри скрипта.
  3. Создайте элемент в Zabbix WebUI со следующими параметрами:

    • название: заполнить в соответствии с вашими потребностями
    • Тип: Внешняя проверка
    • Ключ: script.sh["{HOST.HOST}", "Имя процесса"]
    • Тип информации: Числовой (без знака)
    • Тип данных: Десятичный

Надеюсь это поможет. Любые другие комментарии приветствуются ... Гл.