使用 SNMP 通过 Zabbix 监控进程/服务

使用 SNMP 通过 Zabbix 监控进程/服务

我尝试使用 Zabbix 2.2 和 SNMP 监控大约 60 台服务器。我能够监控很多值,但我面临一个与 Linux 服务器上进程的识别状态有关的问题。

当服务启动并运行时,我可以使用 OID 通过 SNMP 收集数据:

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

问题在于服务停机时。Zabbix 无法识别这一点,只是显示最后一个值。可以在图中识别故障,其中线甚至不在级别 1 或级别 0 上。它只是缺失了(因为没有数据)。

是否有可能使用 SNMP 来监控服务/进程?有人有这方面的经验吗?

非常感谢 ...

答案1

所以我对此做了一些阐述,并决定自己开发一些东西。这是 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 脚本。
  2. 设置脚本内的变量。
  3. 使用以下参数在 Zabbix WebUI 中创建项目:
  • 姓名根据你的需求填写
  • 类型:外部检查
  • 钥匙脚本["{HOST.HOST}","进程名称“]
  • 信息类型:数字(无符号)
  • 数据类型:十进制

希望这能有所帮助。欢迎任何其他评论...Ch。

嗨,先生!你能具体指导我一下吗

相关内容