• snmp协议 及snmpwalk


    推荐阅读:

    snmp及工具:https://www.jianshu.com/p/dc2dc0222940
    snmp协议详解:https://blog.csdn.net/shanzhizi/article/details/11606767

    SNMP协议

    snmp--简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议.

    snmpwalk工具下载环境

    [root@server ~]# yum install net-snmp net-snmp-utils -y
    ...
    [root@server ~]# rpm -qa | grep snmp
    net-snmp-utils-5.7.2-43.el7_7.3.x86_64  
    net-snmp-agent-libs-5.7.2-43.el7_7.3.x86_64
    net-snmp-libs-5.7.2-43.el7_7.3.x86_64
    net-snmp-5.7.2-43.el7_7.3.x86_64      #自定义OID配置文件
    
    

    使用方法

    snmpwalk -v 1或2c(代表SNMP版本) -c SNMP读团体密码 IP地址 OID(对象标示符)
    –v:指定snmp的版本, 1或者2,该参数必须有。
    –c:指定连接设备SNMPSNMP读团体密码,该参数必须有。
    IP:指定要walk的设备的IP地址,该参数必须有。
    OID:代表要获取设备的指标oid,该参数不是必须的。
    ..................................................................................
    实例:
    snmpwalk -v 2c -c public 192.168.137.145 .1.3.6.1.4.1.2021.10.1.3   #监控cpuload
    snmpwalk -v 2c -c public 192.168.137.145 .1.3.6.1.2.1.25.2.2    #取得系统总内存
    snmpwalk -v 2c -c public 192.168.137.145 hrSystemNumUsers    #取得系统用户数(注意:hrSystemNumUsers与.1.3.6.1.2.1.25.1.5是等效的)
    snmpwalk -v 2c -c public 192.168.137.145 .1.3.6.1.2.1.4.20    #取得IP信息
    snmpwalk -v 2c -c public 10.1.1.1 system     #查看系统信息
    snmpwalk -v 2c -c public 10.1.1.1 ifDescr   #获取网卡信息
    

    OID列表

    http://www.ttlsa.com/monitor/snmp-oid/

    snmpwalk -v 2c -c public .     #如果你想获取SNMP字符串,你可以使用命令snmpwalk来实现,当然在安装zabbix的时候你需要增加snmp的支持
    

    报错处理(UCD-SNMP-MIB::ssCpuIdle.0 = No more variables left in this MIB View(It is past the end of the MIB tree))

    报错场景

    [root@server ~]# snmpwalk -v 2c -c public localhost hrMemory 
       #运行这个命令时候报错提示
    UCD-SNMP-MIB::ssCpuIdle.0 = No more variables left in this MIB View(It is past the end of the MIB tree)
    

    解决方法

    这时候,若要获取主机的一些重要信息,则要修改snmp的默认配置。
    配置方法:修改/etc/snmp/snmpd.conf文件

    [root@server ~]# vim /etc/snmp/snmpd.conf
    ...
    view    systemview    included  .1   #添加本行内容
    ...
    [root@server ~]# systemctl restart snmpd    #重启服务使文件生效
    

    解释原因:

    TIPS:view:定义了可以查看哪些节点设备的信息。snmp默认配置只能查 看.1.3.6.1.2.1.1和.1.3.6.1.2.1.25.1.1节点下的设备信息,而主机CPU和内存等设备都不在这些节点下,所以无法获取这 些数据。 view systemview included .1 表示可以查看.1节点下的所有设备信息。


    自定义OID

    https://blog.csdn.net/killerover84/article/details/17793757

    #比如你需要用 CACTI 来进行监控一个游戏服务器的在线人数,那么你就可以通过自定义OID的办法来进行部署。下面举一个很简单的例子:
    
    #首先,我们需要写一个自定义的脚本来获取在线人数:
    
    [root@server ~]# cat /usr/local/bin/online.sh 
    #!/bin/sh
    echo .1.3.6.1.4.1.102.8
    GW01=`ssh GW01 "netstat -antp|grep ESTABLISHED|grep 8888|wc -l"`
    GW02=`ssh GW02 "netstat -antp|grep ESTABLISHED|grep 8888|wc -l"`
    GW03=`ssh GW03 "netstat -antp|grep ESTABLISHED|grep 8888|wc -l"`
    ALL=$(($(($GW01+$GW02))+$GW03))
    echo integer
    echo $ALL
    
    然后在snmp的配置文件里加入OID信息:
    vi /etc/snmp/snmp.conf
    pass .1.3.6.1.4.1.102.8 /bin/sh /usr/local/bin/online.sh
    
    重新启动snmp服务:
    service snmpd restart
    
    测试数据:
    snmpwalk -v2c -c public 192.168.0.1 .1.3.6.1.4.1.102.8
    
    #然后你就可以用这个OID来做图,对人数进行监控了!
    #步骤很简单,但是注意OID不能重复
    
  • 相关阅读:
    Docker
    Oracle-----RAC重启步骤 RAC管理(crs_stat、crsctl、srvctl)
    kubernetes 设备插件
    golang signal.Notify 信号,如何优雅的退出
    golang 通过fsnotify监控文件
    Golang中基础的命令行模块urfave/cli的用法说明
    fatal: unable to access 'xxx': Encountered end of file
    client-go 和 golang 源码中的技巧
    Golang之wait.Until 简单测试用例
    go viper 库
  • 原文地址:https://www.cnblogs.com/du-z/p/12570584.html
Copyright © 2020-2023  润新知