`
zhengdl126
  • 浏览: 2542667 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

使用python编写nagios脚本监控伺服器/交换机网卡状态

 
阅读更多

【转载】http://blog.chinaunix.net/uid-26978448-id-3389951.html

 

 

#cat check_snmp_int.py

 

  1. #! / usr/ bin/ python

  2. #_* _coding: utf- 8_* _

  3. '' '
  4. Create date: 2012-10-29
  5. Last update: 2012-10-29
  6. Version: 1.0
  7. Description: Monitor interface status
  8. Author: Victor
  9. QQ:1409175531
  10. '''

  11. import sys
  12. import netsnmp

  13. def help( ) :
  14.   print '' 'Usage:
  15. sys.argv[0] <Community> <Host> <interface>'''

  16. try :
  17.   session = netsnmp. Session( Version= 2, Community= sys. argv[ 1] , DestHost= sys. argv[ 2] )
  18. except IndexError :
  19.   help( )
  20.   sys. exit( )

  21. oid01 = netsnmp. Varbind( 'ifOperStatus' )
  22. oid02 = netsnmp. Varbind( 'ifDescr' )
  23. oidlist01 = netsnmp. VarList( oid01)
  24. oidlist02 = netsnmp. VarList( oid02)
  25. rl01 = session. walk( oidlist01)
  26. rl02 = session. walk( oidlist02)

  27. '' '1=>UP,2=>DOWN,3=>TESTING,4=>UNKNOWN,5=>DORMANT,6=>NotPresent,7=>lowerLayerDown' ''

  28. try :

  29.   status = dict( zip( rl02, rl01) ) [ sys. argv[ 3] ]

  30.   if status = = '1' :
  31.     print '%s is UP ' % ( sys. argv[ 3] )
  32.     sys. exit( 0)
  33.   elif status = = '2' :
  34.     print '%s is DOWN' % ( sys. argv[ 3] )
  35.     sys. exit( 2)
  36.   elif status = = '3' :
  37.     print '%s is TESTING' % ( sys. argv[ 3] )
  38.     sys. exit( 1)
  39.   elif status = = '4' :
  40.     print '%s is UNKNOWN' % ( sys. argv[ 3] )
  41.     sys. exit( 1)
  42.   elif status = = '5' :
  43.     print '%s is DORMANT' % ( sys. argv[ 3] )
  44.     sys. exit( 1)
  45.   elif status = = '6' :
  46.     print '%s is NotPresent' % ( sys. argv[ 3] )
  47.     sys. exit( 1)
  48.   elif status = = '7' :
  49.     print '%s is lowerLayerDown' % ( sys. argv[ 3] )
  50.     sys. exit( 1)
  51.   else :
  52.     print 'UNKNOWN'
  53.     sys. exit( 3)

  54. except :
  55.   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监控脚本" 暗示了本文将探讨如何使用Python编程语言来创建Nagios监控系统针对Hadoop集群的监控脚本。Nagios是一款广泛使用的开源网络监控系统,它能检测各种IT基础设施的状态,包括...

    nagios监控交换机端口

    1. **定义交换机和监控服务**:编辑`/usr/local/nagios/etc/objects/switch.cfg`文件,定义主机和服务。 ```shell vi /usr/local/nagios/etc/objects/switch.cfg ``` 定义主机(`MainSwitch`)和服务(如端口1...

    Nagios监控脚本

    本压缩包包含的`check_cpu.sh`、`check_mem.sh`和`check_uptime.sh`是Nagios监控脚本,用于监测服务器的CPU使用率、内存使用情况以及系统运行时间(即系统负载)。 1. **CPU监控脚本 (check_cpu.sh)** - Nagios中...

    CentOS安装Nagios和监控Linux、Windows客户端以及微信报警详细配置

    - 编写一个Shell脚本或Perl/Python程序来实现发送消息的功能。 - 在Nagios配置文件中添加一个新的`command`定义,指向上面编写的脚本。 - 例如,在`/usr/local/nagios/etc/nrpe.cfg`文件中添加: ``` command...

    nagios 流量使用监控脚本

    nagios 流量使用监控脚本,https://blog.csdn.net/jie_linux/article/details/85702712

    Nagios监控平台之三:MRTG监控交换机流量.docx

    1. **定义交换机和监控服务**:在Nagios的配置文件`/usr/local/nagios/etc/objects/switch.cfg`中定义交换机和监控服务,包括主机和服务描述、检查命令等。 2. **定义检查命令**:使用`check_local_mrtgtraf`命令来...

    nagios完全详解监控系统[参照].pdf

    配置Nagios的核心在于`/etc/nagios/nagios.cfg`主配置文件。该文件通过`include`指令引入其他对象配置文件,如主机、服务、联系人等配置。配置文件中需要定义监控目标、监控频率、报警阈值以及通知策略等。例如,`...

    nagios外部监控脚本编写.pdf

    在IT监控领域,Nagios是一款广泛使用的开源网络监控系统,用于检测网络服务和设备的运行状态。它能够实时监控网络上的各种服务,如HTTP、CPU负荷、磁盘利用率、内存占用等,并在出现问题时及时发出警报。本文将深入...

    Nagios配置之监控交换机(案例).pdf

    配置Nagios以监控交换机,需要对主配置文件`/usr/local/nagios/etc/nagios.cfg`进行编辑,取消对`cfg_file=/usr/local/nagios/etc/objects/switch.cfg`行的注释,然后在`switch.cfg`中定义监控目标。例如,设置社区...

    nagios外部监控脚本编写借鉴.pdf

    《NAGIOS外部监控脚本编写指南》 NAGIOS是一款强大的网络监控系统,它能够实时监测网络服务、主机状态以及各种系统资源,确保IT基础设施的稳定运行。本文主要介绍如何利用NAGIOS开发外部监控脚本,实现自定义的服务...

    向Nagios添加监控主机

    - 在被监控主机的`/usr/local/nagios/etc/nrpe.cfg`中配置要检查的具体命令,如检查用户、负载、僵尸进程、总进程、交换空间和磁盘空间等。 6. Nagios服务端配置: - 在Nagios服务器上,你需要配置主机定义、服务...

    Nagios监控CPU脚本

    5. **结果输出**:脚本最终会输出当前的状态信息、实际的CPU使用率以及空闲率,并以Nagios标准的性能数据格式进行输出,方便Nagios进行进一步处理。 #### 使用示例 假设我们希望当CPU使用率达到70%时发出警告信号...

    Nagios系统监控实践(第2版)

    《Nagios系统监控实践(第2版)》是一本深度探讨Nagios系统监控的专著,旨在帮助读者理解和掌握如何有效地利用Nagios来监控IT基础设施的运行状态。Nagios是一款开源的网络监控系统,能够实时监控网络服务、服务器、...

    Nagios 监控Windows配置文档

    - 使用命令`/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg`检查配置文件的语法错误。 - 重启Nagios服务`servicenagiosrestart`。 #### 五、注意事项及相关说明 1. **监控多台Windows主机**: ...

    nagios监控配置centos6.4

    使用`/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg`命令检查Nagios配置文件的正确性。 8. **启动Nagios服务**: 分别启动Nagios服务和Apache服务,以便Nagios开始监控和Web界面正常工作。 ...

    nagios 监控服务器内存脚本

    nagios 监控服务器内存脚本,实时短信报警

    Nagios的平台介绍和监控插件的编写

    1. 语言不限:你可以使用任何你喜欢的编程语言,如Perl、Python、Shell等,只要能输出Nagios需要的状态信息。 2. 返回值:插件必须返回0到4之间的整数,分别代表不同的状态级别。 3. 标准输出:程序的输出信息会被...

    nagios监控linux主机、web等各种服务,并实现飞信自动报警

    这一步骤的关键在于编写或使用现有的脚本来发送飞信消息。具体步骤包括: 1. **编写飞信发送脚本**:利用飞信API或SDK编写脚本,当Nagios检测到服务状态异常时触发该脚本,从而发送飞信消息给管理员。 2. **配置...

    oracle+nagios 如何监控

    首先,Nagios是一个功能强大、灵活性极高的监控工具,能够监控Windows、Linux和Unix的主机状态,网络设备如交换机和路由器,甚至是打印机。它由主程序(Nagios)、插件程序(Nagios-plugins)以及四个可选插件组件...

Global site tag (gtag.js) - Google Analytics