linux - Nagios - 接口(interface) IP 检查脚本

标签 linux interface ip snmp nagios

我是 Linux 和 Nagios 插件的新手,但我需要为路由器接口(interface)丢失 IP 时设置警报(因此当它被视为 0.0.0.0 时)。我对其他人的脚本做了一些研究,并编写了以下名为 check_ip.pl 的脚本:

$snmpIfIP = '.1.3.6.1.4.1.23695.2.1.3.1.1.3.0.0';
$noip = "0.0.0.0";
if ($snmpIfIP != $noip) {
echo "Interface has an IP";
exit 0 } else { echo "No IP on Interface"; exit 2 }

在 Nagios 中,然后我将它分配给一个 check_command:$USER1$/check_ip.pl

分配了一个模板来使用这个检查命令,并从这个模板创建了一个服务。 Nagios 服务器和路由器之间的 SNMP 正在运行 - 但是我得到“(126 的返回代码超出范围 - 插件可能无法执行)” - 所以我在插件代码上做错了!

我知道以下是正确的:

  • 拉取接口(interface)IP的OID是正确的(测试过这个)
  • 路由器上的 IP 是 0.0.0.0,所以它确实匹配预期的参数

有人可以提供建议/插件文件需要如何编写吗?

非常感谢。

最佳答案

您的插件是否真的在$USER1$ 目录中?在大多数情况下,$USER1$/usr/local/nagios/libexec

您需要确保不仅您的插件是可执行的:

chmod +x/usr/local/nagios/libexec/check_ip.pl

而且它可以由 Nagios 用户执行(并拥有):

chown nagios:nagios/usr/local/nagios/libexec/check_ip.pl

如果您已经测试了您的脚本并且它在手动运行时工作正常,那么这应该可以解决您的问题!

但是,您发布的代码不是完整的插件。我所看到的不会返回你正在寻找的东西。关于代码,您有什么特别需要帮助的吗?

此外,请务必检查 Nagios Plugin Development Guidelines !

关于linux - Nagios - 接口(interface) IP 检查脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41018195/

相关文章:

linux - 转发带有结构化数据的消息时转换 rsyslog 消息格式

php - 无法在 ubuntu/linux 中使用 PHPmailer 和 smtp 发送

java - 是否可以避免使用 libgdx 的适配器类?

java - 在 GWT 项目中使用常量接口(interface)

android - 人类可读的 DhcpInfo.ipAddress?

Mysql查询使用自动增量获取表的最大值

c - fork() 在内部调用 clone() 是真的吗?

json - 在 Go 开发中过度使用 map[string]interface{}?

ip - keepalived - 多个 VRRP 实例与具有多个 VIP 的 1 个实例

java - 使用Java获取外部IP地址