snmp服务无故自动停止,人工不能及时的发现,造成系统无法被正常的监控
通过脚本实现服务异常的情况下自动开启服务,确保系统被正常的监控

  1. #!/bin/bash 
  2. A=`service snmpd status |awk '{print $2}'` 
  3. B=`netstat -puln | grep ":161 "` 
  4. C=`service snmpd status |awk '{print $4}'|cut  -c9-14` 
  5. if [ "$A = 停止" ];then 
  6.          /etc/init.d/snmpd start 
  7. echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>>> /var/log/check_snmpd.log 
  8. echo "snmpd start at [`date +"%Y-%m-%d %H:%M:%S"`]"   >> /var/log/check_snmpd.log 
  9. elif [ "$B" = "" ];then 
  10.          /etc/init.d/snmpd start 
  11. echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>>> /var/log/check_snmpd.log 
  12. echo "snmpd start at [`date +"%Y-%m-%d %H:%M:%S"`]"   >> /var/log/check_snmpd.log 
  13. elif [ "$C = unused" ];then 
  14.         /etc/init.d/snmpd start 
  15. echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>>> /var/log/check_snmpd.log 
  16. echo "snmpd start at [`date +"%Y-%m-%d %H:%M:%S"`]"   >> /var/log/check_snmpd.log 
  17. fi 
  18. exit 0 
  */2  *  *  *  *  /home/snmpd.sh  把此脚本加入定时任务

  当然变量A,B和C会根据系统linux发行版本的不同而稍微有差异的,请大家根据实际的需要修改

 

2013年3月9号对此脚本进行修正

 

  1. #!/bin/bash
  2.  
  3. [ -f /var/run/snmpd.pid ] 
  4. [ "$?" != 0 ] && service snmpd start 
  5. echo "snmpd start at [`date +"%Y-%m-%d %H:%M:%S"`]"   >> /var/log/check_snmpd.log 

-----------------------------

 

一般端口流量分析
针对普通网络设备的端口,MIB的相关定义是Interface组,主要管理如下信息:
ifIndex 端口索引号
ifDescr 端口描述
ifType 端口类型
ifMtu 最大传输包字节数
ifSpeed 端口速度
ifPhysAddress 物理地址
ifOperStatus 操作状态
ifLastChange 上次状态更新时间
*ifInOctets 输入字节数
*ifInUcastPkts 输入非广播包数
*ifInNUcastPkts 输入广播包数
*ifInDiscards 输入包丢弃数
*ifInErrors 输入包错误数
*ifInUnknownProtos 输入未知协议包数
*ifOutOctets 输出字节数
*ifOutUcastPkts 输出非广播包数
*ifOutNUcastPkts 输出广播包数
*ifOutDiscards 输出包丢弃数
*ifOutErrors 输出包错误数
ifOutQLen 输出队长
其中,*号标识的是与网络流量有关的信息。

例如看看网络接口:
输入:
#snmpwalk -v 1 222.90.47.169 -c public ifIndex
输出:
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifIndex.3 = INTEGER: 3
表示有三个网络接口
网络接口明成:
[root@localhost snmp]# snmpwalk -v 1 222.90.47.169 -c public ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: ppp0
表示;三个接口分别为
1 本地回路
2 以太网卡
3 ADSL连接