zoukankan      html  css  js  c++  java
  • Linux配置snmp

    机器环境

    [root@linux-node1 ~]# cat /etc/redhat-release 
    CentOS Linux release 7.1.1503 (Core) 
    [root@linux-node1 ~]# hostname
    linux-node1.nmap.com
    [root@linux-node1 ~]# 
    

    安装net-snmp等工具

    [root@linux-node1 ~]# yum install net-snmp net-snmp-utils -y
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.zju.edu.cn
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    Package 1:net-snmp-5.7.2-24.el7_2.1.x86_64 already installed and latest version
    Package 1:net-snmp-utils-5.7.2-24.el7_2.1.x86_64 already installed and latest version
    Nothing to do
    [root@linux-node1 ~]# 
    

    到现在为止,我们已经有了可以运行的SNMP代理程序  

    设置安全的验证方式

    将SNMP代理程序暴露给网络上的所有主机是很危险的,为了防止其它主机访问你的SNMP代理程序,我们需要在SNMP代理程序上加入身份验证机制。
    SNMP支持不同的验证机制,这取决于不同的SNMP协议版本,监控宝目前支持v2c和v3两个版本,其中v2c版本的验证机制比较简单,它基于明文密码和授权IP来进行身份验证,
    而v3版本则通过用户名和密码的加密传输来实现身份验证,我们建议使用v3
    当然,只要按照以下的介绍进行配置,不论是v2c版本还是v3版本,都可以保证一定的安全性,你可以根据情况来选择。
    注意一点,SNMP协议版本和SNMP代理程序版本是两回事,刚才说的v2c和v3是指SNMP协议的版本
    而Net-SNMP是用来实现SNMP协议的程序套件

    编辑配置文件

    v2c
    先来看如何配置v2c版本的SNMP代理

    [root@linux-node1 ~]# cd /etc/snmp/
    [root@linux-node1 snmp]# ls
    snmpd.conf  snmptrapd.conf
    [root@linux-node1 snmp]# cp snmpd.conf snmpd.conf.bak
    [root@linux-node1 snmp]# vim snmpd.conf
    

      

    默认有如下内容,全部清空了

    改成如下内容

    [root@linux-node1 snmp]# vim snmpd.conf
    [root@linux-node1 snmp]# cat snmpd.conf
    rocommunity nmap 192.168.58.11
    [root@linux-node1 snmp]# 
    

    注意:添加用户时,请确保snmp服务没有运行,否则无法添加。
    注意,这里的“rocommunity”表示这是一个只读的访问权限,从你的服务器上获取信息,而不能对服务器进行任何设置。
    紧接着的“nmap”是团体名,相当于密码,很多平台喜欢使用“public”这个默认字符串。这里的“nmap”只是一个例子,你可以设置其它字符串作为密码。
    最右边的“192.168.58.11”代表指定的监控点IP,这个IP地址意味着只有192.168.58.11这个地址的机器有权限来访问你的SNMP代理程序。
    在zabbix server上使用snmp添加服务器的时候,需要提供这个“snmp”字符串。

      

    启动服务,查看监听,它默认监听udp的161端口

    [root@linux-node1 ~]# systemctl start snmpd
    [root@linux-node1 ~]# netstat -lunp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    udp        0      0 192.168.122.1:53        0.0.0.0:*                           1345/dnsmasq        
    udp        0      0 0.0.0.0:67              0.0.0.0:*                           1345/dnsmasq        
    udp        0      0 0.0.0.0:123             0.0.0.0:*                           863/chronyd         
    udp        0      0 0.0.0.0:161             0.0.0.0:*                           4402/snmpd          
    udp        0      0 127.0.0.1:323           0.0.0.0:*                           863/chronyd         
    udp6       0      0 ::1:323                 :::*                                863/chronyd         
    [root@linux-node1 ~]# 
    

      

    下面工具是安装net-snmp-utils之后出现的,server端-也就是取数据的需要用它向运行snmp协议的机器取数据

    [root@linux-node1 ~]# snmp
    snmpbulkget    snmpdf         snmpset        snmptranslate  snmpwalk
    snmpbulkwalk   snmpget        snmpstatus     snmptrap       
    snmpconf       snmpgetnext    snmptable      snmptrapd      
    snmpd          snmpinform     snmptest       snmpusm        
    snmpdelta      snmpnetstat    snmptls        snmpvacm       
    [root@linux-node1 ~]# snmp
    

     学snmp得知道mib,它里面存的是linux所有性能指标

    SNMP的技术术语
    SNMP:Simple Network Management Protocol(简单网络管理协议),是一个标准的用于管理基于IP网络上设备的协议。
    MIB:Management Information Base(管理信息库),定义代理进程中所有可被查询和修改的参数。
    SMI:Structure of Management Information(管理信息结构),SMI定义了SNMP中使用到的ASN.1类型、语法,并定义了SNMP中使用到的类型、宏、符号等。SMI用于后续协议的描述和MIB的定义。每个版本的SNMP都可能定义自己的SMI。

    OID(对象标识符),是SNMP代理提供的具有唯一标识的键值。MIB(管理信息基)提供数字化OID到可读文本的映射。每个对象都有一个oid

    可以使用OID获取服务器一些当前性能指标

    [root@linux-node1 ~]# snmpget -v2c -c nmap 192.168.58.11 1.3.6.1.4.1.2021.10.1.3.1
    UCD-SNMP-MIB::laLoad.1 = STRING: 0.00
    [root@linux-node1 ~]# snmpget -v2c -c nmap 192.168.58.11 1.3.6.1.4.1.2021.10.1.3.2
    UCD-SNMP-MIB::laLoad.2 = STRING: 0.01
    [root@linux-node1 ~]# snmpget -v2c -c nmap 192.168.58.11 1.3.6.1.4.1.2021.10.1.3.3
    UCD-SNMP-MIB::laLoad.3 = STRING: 0.05
    [root@linux-node1 ~]# uptime
     13:50:02 up  1:17,  1 user,  load average: 0.00, 0.01, 0.05
    [root@linux-node1 ~]# 
    

    比如还可以获取内存

    [root@linux-node1 ~]# snmpget -v2c -c nmap 192.168.58.11 1.3.6.1.2.1.25.2.2.0
    HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 4033636 KBytes
    [root@linux-node1 ~]# free -k
                  total        used        free      shared  buff/cache   available
    Mem:        4033636      128248     3150580        8688      754808     3670732
    Swap:       3905532           0     3905532
    [root@linux-node1 ~]# 
    

      

     其余一些服务器指标可以搜索snmp的常用OID

    http://blog.csdn.net/buster2014/article/details/46925633

      

  • 相关阅读:
    mysql千万级数据量根据索引优化查询速度
    Centos 7 开放查看端口 防火墙关闭打开
    Spring-Quartz 配置执行时间参数
    Curl命令查看请求响应时间
    Centos 7 安装 Mongodb
    配置Docker加速器
    TCP端口状态说明ESTABLISHED、TIME_WAIT
    Maven依赖项Scope属性设置含义
    实战JAVA虚拟机 JVM故障诊断与性能优化(十)---字节码的执行
    代理模式(Proxy)_java实现
  • 原文地址:https://www.cnblogs.com/nmap/p/6580289.html
Copyright © 2011-2022 走看看