centos7 snmp安装与配置

    1、安装
        yum install -y net-snmp net-snmp-utils net-snmp-perl
        
    2、开启
        systemctl start snmpd
        systemctl enable snmpd
        
    3、查看udp端口161是否运行
        [root@localhost xxx]# netstat -apn|grep 161
        udp        0      0 0.0.0.0:161             0.0.0.0:*                           42951/snmpd 
        
        或者 lsof -i:161
    
    4、配置修改
        a. 首先定义一个共同体名称(community),这里是 public ,及可以访问这个 public 的用户名(sec name),这里是 notConfigUser 。public 相当于用户 notConfigUser 的密码。

        # sec.name                source      community
          com2sec notConfigUser  default       public
        b. 定义一个组名(groupName)这里是 notConfigGroup,及组的安全级别,把 notConfigGroup 这个用户加到这个组中。

        #  groupName         securityModel    securityName
        group   notConfigGroup   v1           notConfigUser  
        group   notConfigGroup   v2c          notConfigUser
        c. 定义一个可操作的视图(view)名, 这里是 all,范围是 .1。

        # name           incl/excl     subtree         mask(optional)
          view  all      included        .1
        d. 定义 notConfigUser 这个组在 all 这个视图范围内可做的操作,这时定义了 notConfigUser 组的成员可对 .1 这个视图做只读操作。

        # group        context sec.model sec.level prefix read   write  notif
         access  notConfigGroup ""      any       noauth    exact  all  none none
        这样对 snmpd.conf 文件就基本完成了,用service snmpd restart重启 snmpd 服务
    
    5、自定义oid
         a、编写一个获取系统连接的脚本
             vim /root/snmp_sh/top_conn.sh
             内容如下:
             #!/bin/sh
             conn=`netstat -s -t | grep connections\ established |awk '{print $1}'`
             echo $conn
        
        b、snmp配置文件中添加自定义oid
             vim /etc/snmp/snmpd.conf
             添加
             extend .1.3.6.1.4.1.2021.18  top_conn /bin/sh /root/snmp_sh/top_conn.sh  key_test
        
        解释:
            extend    snmpd.conf提供的扩展功能选项
            .1.3.6.1.4.1.2021.18   这个OID是自定义的,一般选用空闲OID(.1.3.6.1.4.1.2021.xx),也可以覆盖已经定义的OID
            top_conn  标识符     标识符,用以区分不同扩展项目
            /bin/sh /root/snmp_sh/top_conn.sh 命令或脚本    命令或脚本的执行结果,添加到snmp的查询中(类似于赋予,VAR=123)
            key_test  键值    自定义的键值,在zabbix中添加snmp监控项时需要填写的键值就是这个
            
            在snmpd.conf中自定义好之后,重启snmp服务使之生效
            systemctl restart snmpd
        
        问题解决:
            a、自定以的oid脚本没权限执行
               关闭selinux  vim /etc/selinux/config
               永久关闭:
                  SELINUX=disabled
               临时关闭:
                  setenforce 0
               重新执行,问题解决
            b、获取不到数据
                按照3中配置文件修改访问权限
                
        
        6、python获取oid对应的参数信息
         

# -*- coding: UTF-8 -*-
import traceback
from pysnmp.hlapi import getCmd,SnmpEngine,CommunityData,UdpTransportTarget,ContextData,ObjectType,ObjectIdentity

def get_value_of_snmp(oid,ip,port=161,community="public"):
    try:
        errorIndication, errorStatus, errorIndex, varBinds = next(
            getCmd(
                SnmpEngine(),
                CommunityData(community),
                UdpTransportTarget((ip, port), timeout=3, retries=2,),
                ContextData(),
                ObjectType(ObjectIdentity(oid))
            )
        )
        if not errorIndication:
            if not errorStatus:
                for varBind in varBinds:
                    print(varBind[1])
                    print("one of varBind: %s, length of varBinds:%s,type is:%s"%(varBind,len(varBinds),type(varBinds[0])))
                return varBinds[0][1]

    except Exception as e:
        traceback.print_exc()
        print(e)



if __name__ == "__main__":
    ip="192.168.133.129"
    oid = "1.3.6.1.4.1.2021.4.5.0" #系统全部内存
    #oid = "1.3.6.1.4.1.2021.18.4.1.2.8.116.111.112.95.99.111.110.110.1"  #自定义脚本
    value = get_value_of_snmp(oid,ip)
    print("*******value==",value)

                 

        7、其他常用oid汇总:            
            CPU的 
                Load 
                    1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1 
                    5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2 
                    15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3 

                CPU 
                    percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0 
                    raw user cpu time: .1.3.6.1.4.1.2021.11.50.0 
                    percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0 
                    raw system cpu time: .1.3.6.1.4.1.2021.11.52.0 
                    percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0 
                    raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0 
                    raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0 


            内存的 
                Total Swap Size: .1.3.6.1.4.1.2021.4.3.0 
                Available Swap Space: .1.3.6.1.4.1.2021.4.4.0 
                Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0 
                Total RAM used: .1.3.6.1.4.1.2021.4.6.0 
                Total RAM Free: .1.3.6.1.4.1.2021.4.11.0 
                Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0 
                Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0 
                Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0 

            硬盘的
                The snmpd.conf needs to be edited. Add the following (assuming a machine with a single ‘/’ partition): 

                disk / 100000 (or) 

                includeAllDisks 10% for all partitions and disks 

                The OIDs are as follows 

                Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1 
                Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1 
                Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1 
                Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1 
                Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1 
                Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1 
                Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1 
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值