1 环境

ubuntu 16.04


2. 安装

sudo apt-get install snmpd snmp snmp-mibs-downloader


3. 配置

sudo vi /etc/snmp/snmpd.conf


(1)、配置允许网络访问
  找到【AGENT BEHAVIOUR】,如下图所示:
  
    snmp 安装配置

  修改如下:添加"agentAddress udp:161"配置项,如下图所示:
  
  snmp 安装配置


(2)、选择v2c SNMP协议的版本
  找到【ACTIVE MONITORING】,如下图所示:
  
    snmp 安装配置
  修改如下:
  
    snmp 安装配置
  


(3)、设置访问权限
  找到【ACCESS CONTROL】如下图所示:
  
    snmp 安装配置
  找到【rocommunity public default -V systemonly】,把 -V systemonly去掉,这是设置访问权限的,去掉后能访问全部,如下图所示:
  
  snmp 安装配置

(4)、保存snmpd.conf后退出
  按下键盘左上角上的【Esc】键退出vi编辑器的编辑模式,然后输入命令":wq"保存文件并退出,如下图所示:
  
snmp 安装配置
  经过以上的4个步骤,针对SNMP的snmpd.conf文件的配置工作算是全部完成了。




4. 操作命令

(1)启动snmp服务
  
由于我们刚才修改SNMP的snmpd.conf文件,所以在启动snmp服务之前,先使用命令

停止服务:
sudo service snmpd stop
  
查看snmp的服务是否启动:
netstat -an |grep 161
  
启动snmp服务:
sudo service snmpd start

备注:
snmpd.conf 路径 /etc/snmp/snmpd.conf

mib 路径
执行命令 net-snmp-config --snmpconfpath

  
(2)、测试SNMP

MIB结构:

snmp 安装配置


这里以.iso.org.dod.internet.mgmt.mib-2.system为例,其Oid为:.1.3.6.1.2.1.1。结构如下:
   ………system                     .1.3.6.1.2.1.1
            |——sysDescr          .1.3.6.1.2.1.1.1
            |——sysObjectID       .1.3.6.1.2.1.1.2
            |——sysUpTimeInstance .1.3.6.1.2.1.1.3
            |——sysContact.0      .1.3.6.1.2.1.1.4
            |——sysName.0         .1.3.6.1.2.1.1.5
            |——sysLocation.0     .1.3.6.1.2.1.1.6



  获取本机的系统名字:
snmpget -v 2c -c public localhost SNMPv2-MIB::sysName.0

或者
snmpget -v 2c -c public 本机的ip地址 SNMPv2-MIB::sysName.0

或者
snmpget -v 2c -c public 本机的ip地址 1.3.6.1.2.1.1.5.0


执行以下的几个命令都可以获取到本机的系统名字:
  snmpget -v 2c -c public localhost SNMPv2-MIB::sysName.0
  snmpget -v 2c -c public 127.0.0.1 SNMPv2-MIB::sysName.0
  snmpget -v 2c -c public 192.168.1.229 SNMPv2-MIB::sysName.0
  snmpget -v 2c -c public localhost .1.3.6.1.2.1.1.5.0
  snmpget -v 2c -c public 127.0.0.1 .1.3.6.1.2.1.1.5.0
  snmpget -v 2c -c public 192.168.1.229 .1.3.6.1.2.1.1.5.0
  如下图所示:

  snmp 安装配置
  能够正常返回系统的名字就说明SNMP安装配置成功了。也可以使用命令"snmpget --version"查看当前的安装版本号来验证是否安装成功,如果安装成功,则显示当前的安装版本号,如下图所示:
  
snmp 安装配置



(3)、开启UDP 161端口的访问权限

  完成snmpd的配置并且SNMP测试通过之后,要确保Linux的iptables防火墙对外开放了udp 161端口的访问权限,可以使用"sudo iptables -L -n"查看当前iptables规则,如下图所示:

snmp 安装配置
  可以看到,目前iptables防火墙并没有对外开放udp 161端口的访问权限,也就是说,此时外面的计算机是无法访问Linux下的SNMP服务的,可以使用"sudo iptables -I INPUT -p udp --dport 161 -j ACCEPT"命令添加UDP 161端口到iptables防火墙中,然后执行"sudo iptables-save"命令保存防火墙的更改,如下图所示:
    
snmp 安装配置











相关文章: