【转载】http://blog.chinaunix.net/uid-26978448-id-3389951.html
#cat check_snmp_int.py
- #!
/
usr/
bin/
python
- #_*
_coding:
utf-
8_*
_
-
''
'
- Create date: 2012-10-29
- Last update: 2012-10-29
- Version: 1.0
- Description: Monitor interface status
- Author: Victor
- QQ:1409175531
- '''
-
import
sys
-
import
netsnmp
-
def
help(
)
:
- print
''
'Usage:
- sys.argv[0] <Community> <Host> <interface>'''
-
try
:
- session =
netsnmp.
Session(
Version=
2,
Community=
sys.
argv[
1]
,
DestHost=
sys.
argv[
2]
)
-
except
IndexError
:
- help(
)
- sys.
exit(
)
- oid01 =
netsnmp.
Varbind(
'ifOperStatus'
)
- oid02 =
netsnmp.
Varbind(
'ifDescr'
)
- oidlist01 =
netsnmp.
VarList(
oid01)
- oidlist02 =
netsnmp.
VarList(
oid02)
- rl01 =
session.
walk(
oidlist01)
- rl02 =
session.
walk(
oidlist02)
-
''
'1=>UP,2=>DOWN,3=>TESTING,4=>UNKNOWN,5=>DORMANT,6=>NotPresent,7=>lowerLayerDown'
''
-
try
:
- status =
dict(
zip(
rl02,
rl01)
)
[
sys.
argv[
3]
]
- if
status =
=
'1'
:
- print
'%s is UP '
%
(
sys.
argv[
3]
)
- sys.
exit(
0)
- elif
status =
=
'2'
:
- print
'%s is DOWN'
%
(
sys.
argv[
3]
)
- sys.
exit(
2)
- elif
status =
=
'3'
:
- print
'%s is TESTING'
%
(
sys.
argv[
3]
)
- sys.
exit(
1)
- elif
status =
=
'4'
:
- print
'%s is UNKNOWN'
%
(
sys.
argv[
3]
)
- sys.
exit(
1)
- elif
status =
=
'5'
:
- print
'%s is DORMANT'
%
(
sys.
argv[
3]
)
- sys.
exit(
1)
- elif
status =
=
'6'
:
- print
'%s is NotPresent'
%
(
sys.
argv[
3]
)
- sys.
exit(
1)
- elif
status =
=
'7'
:
- print
'%s is lowerLayerDown'
%
(
sys.
argv[
3]
)
- sys.
exit(
1)
- else
:
- print
'UNKNOWN'
- sys.
exit(
3)
-
except
:
- sys.
exit(
)
命令行执行脚本如下:
#
python check_snmp_int.py public localhost etho
eth0 is UP //脚本执行完后的输出内容;
将check_snmp_int.py放在/usr/local/nagios/libexec目录,给执行权限。
commands.cfg配置如下:
define command{
command_name check_snmp_int
command_line $USER1$/check_snmp_int.py $ARG1$ $HOSTADDRESS$ $ARG2$
}
host.cfg配置如下:
define service{
use service
host_name test
service_description eth0
check_command check_snmp_int!public!eth0
// 如果监控的是交换机端口,这里需要写全称,如GigabitEthernet0/20
}
分享到:
相关推荐
标题 "用python编写nagios hadoop监控脚本" 暗示了本文将探讨如何使用Python编程语言来创建Nagios监控系统针对Hadoop集群的监控脚本。Nagios是一款广泛使用的开源网络监控系统,它能检测各种IT基础设施的状态,包括...
1. **定义交换机和监控服务**:编辑`/usr/local/nagios/etc/objects/switch.cfg`文件,定义主机和服务。 ```shell vi /usr/local/nagios/etc/objects/switch.cfg ``` 定义主机(`MainSwitch`)和服务(如端口1...
本压缩包包含的`check_cpu.sh`、`check_mem.sh`和`check_uptime.sh`是Nagios监控脚本,用于监测服务器的CPU使用率、内存使用情况以及系统运行时间(即系统负载)。 1. **CPU监控脚本 (check_cpu.sh)** - Nagios中...
- 编写一个Shell脚本或Perl/Python程序来实现发送消息的功能。 - 在Nagios配置文件中添加一个新的`command`定义,指向上面编写的脚本。 - 例如,在`/usr/local/nagios/etc/nrpe.cfg`文件中添加: ``` command...
nagios 流量使用监控脚本,https://blog.csdn.net/jie_linux/article/details/85702712
1. **定义交换机和监控服务**:在Nagios的配置文件`/usr/local/nagios/etc/objects/switch.cfg`中定义交换机和监控服务,包括主机和服务描述、检查命令等。 2. **定义检查命令**:使用`check_local_mrtgtraf`命令来...
配置Nagios的核心在于`/etc/nagios/nagios.cfg`主配置文件。该文件通过`include`指令引入其他对象配置文件,如主机、服务、联系人等配置。配置文件中需要定义监控目标、监控频率、报警阈值以及通知策略等。例如,`...
在IT监控领域,Nagios是一款广泛使用的开源网络监控系统,用于检测网络服务和设备的运行状态。它能够实时监控网络上的各种服务,如HTTP、CPU负荷、磁盘利用率、内存占用等,并在出现问题时及时发出警报。本文将深入...
配置Nagios以监控交换机,需要对主配置文件`/usr/local/nagios/etc/nagios.cfg`进行编辑,取消对`cfg_file=/usr/local/nagios/etc/objects/switch.cfg`行的注释,然后在`switch.cfg`中定义监控目标。例如,设置社区...
《NAGIOS外部监控脚本编写指南》 NAGIOS是一款强大的网络监控系统,它能够实时监测网络服务、主机状态以及各种系统资源,确保IT基础设施的稳定运行。本文主要介绍如何利用NAGIOS开发外部监控脚本,实现自定义的服务...
- 在被监控主机的`/usr/local/nagios/etc/nrpe.cfg`中配置要检查的具体命令,如检查用户、负载、僵尸进程、总进程、交换空间和磁盘空间等。 6. Nagios服务端配置: - 在Nagios服务器上,你需要配置主机定义、服务...
5. **结果输出**:脚本最终会输出当前的状态信息、实际的CPU使用率以及空闲率,并以Nagios标准的性能数据格式进行输出,方便Nagios进行进一步处理。 #### 使用示例 假设我们希望当CPU使用率达到70%时发出警告信号...
《Nagios系统监控实践(第2版)》是一本深度探讨Nagios系统监控的专著,旨在帮助读者理解和掌握如何有效地利用Nagios来监控IT基础设施的运行状态。Nagios是一款开源的网络监控系统,能够实时监控网络服务、服务器、...
- 使用命令`/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg`检查配置文件的语法错误。 - 重启Nagios服务`servicenagiosrestart`。 #### 五、注意事项及相关说明 1. **监控多台Windows主机**: ...
使用`/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg`命令检查Nagios配置文件的正确性。 8. **启动Nagios服务**: 分别启动Nagios服务和Apache服务,以便Nagios开始监控和Web界面正常工作。 ...
nagios 监控服务器内存脚本,实时短信报警
1. 语言不限:你可以使用任何你喜欢的编程语言,如Perl、Python、Shell等,只要能输出Nagios需要的状态信息。 2. 返回值:插件必须返回0到4之间的整数,分别代表不同的状态级别。 3. 标准输出:程序的输出信息会被...
这一步骤的关键在于编写或使用现有的脚本来发送飞信消息。具体步骤包括: 1. **编写飞信发送脚本**:利用飞信API或SDK编写脚本,当Nagios检测到服务状态异常时触发该脚本,从而发送飞信消息给管理员。 2. **配置...
首先,Nagios是一个功能强大、灵活性极高的监控工具,能够监控Windows、Linux和Unix的主机状态,网络设备如交换机和路由器,甚至是打印机。它由主程序(Nagios)、插件程序(Nagios-plugins)以及四个可选插件组件...