1、首先按照“snmp监控快速配置”文本文档在被监控的主机上安装、配置及启动snmp服务, 具体内容如下:

1)、安装snmp

yum install net-snmp* -y

cp -a /etc/snmp/snmpd.conf{,.ori}

cat > /etc/snmp/snmpd.conf<<EOF
com2sec local localhost public
com2sec mynetwork 10.0.91.0/24 public
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local
group MyROGroup v1 mynetwork
group MyROGroup v2c mynetwork
group MyROGroup usm mynetwork
view all included .1 80                  #注意最后的80是16进制,最好写成0x80,做掩码使用
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none
syslocation cacti.com
syscontact Me <hyran@126.com>
proc mountd
proc ntalkd 4
proc sendmail 10 1
proc httpd 10 1
exec echotest /bin/echo hello world
#exec disk_used_shell /bin/sh /root/current_disk_used.sh
#exec httpd_proc /bin/sh /root/current_httpd_proc.sh
disk / 10000
disk /boot 10000
load 12 14 14
EOF

cat -n /etc/snmp/snmpd.conf
#/etc/init.d/snmpd start
#chkconfig snmpd on

systemctl start snmpd
systemctl enable snmpd
systemctl status snmpd

netstat -tunlp|grep snmpd
lsof -i :snmp
ps -ef|grep snmp

测试
snmpget -v 1 -c public localhost system.sysUpTime.0          #localhost为指定从本机获取数据, 也可指定的为具体的IP地址, 表示获取某个远程主机的数据
snmpget -v 2c -c public localhost sysDescr.0

snmpget不同于snmpwalk,必须在命令行给出<object>.<instance>的格式,不能只给出object, 而snmpwalk可以仅给出<object>
如:
snmpwalk -v 2c -c public localhost system      #可获得数据(snmpwalk仅给出object)
snmpget -v 2c -c public localhost system       #获取不到数据(仅给出object, 没有给instance, 获取不到数据)

1.3.6.1.2.1
1(iso).3(identified organization).6(dod).1(internet).2(private).1(system) 系统相关
1(iso).3(identified organization).6(dod).1(internet).2(private).2(interface) 网络接口相关
1(iso).3(identified organization).6(dod).1(internet).2(private).3(at) 地址转换相关
1(iso).3(identified organization).6(dod).1(internet).2(private).4(ip) IP分组相关
1(iso).3(identified organization).6(dod).1(internet).2(private).5(icmp) icmp相关
1(iso).3(identified organization).6(dod).1(internet).2(private).6(tcp) tcp相关
1(iso).3(identified organization).6(dod).1(internet).2(private).7(udp) udp相关
1(iso).3(identified organization).6(dod).1(internet).2(private).8(egp) egp相关

MIB中的对象1.3.6.1.4.1,即enterprises(企业),其所属结点数已超过3000。
例如
IBM为1.3.6.1.4.1.2},
Cisco为{1.3.6.1.4.1.9},
Novell为{1.3.6.1.4.1.23}等

net-snmp工具介绍
1、snmpget
模拟snmp的GetRequest操作的工具。用来获取一个或几个管理信息。用来读取管理信息的内容。

2、snmpbulkget
模拟snmp的GetBulkRequest操作的工具。用来获取大块的数据(仅用于v2版本)
一般在大量读取大块数据时使用,以提高带宽利用率,并且比使用snmpget、snmpgetnext及snmpwalk有更强的容错能力,代理会返回尽可能多的数据,比其它命令更有保证。

3、snmpgetnext
模拟snmp的GetNextRequest操作的工具。用来获取一个管理信息实例的下一个可用实例数据。一般用来遍历SNMP中的表格数据。

4、snmpset
模拟snmp的SetRequest操作的工具。用来设置可以写的管理信息。一般用来配置设备或对设备执行操作。

5、snmpwalk
利用GetNextRequest对给定的管理树进行遍历的工具。一般用来对表格类型管理信息进行遍历。

6、snmptrap
模拟trap的工具, 用来发送模拟trap。一般用来测试管理站安装和配置是否正确,或者用来验证开发的Trap接收程序是否可以正常工作。

7、snmptrapd
接收并显示trap的工具。一般在代理的开发过程中,接收代理agent发来的Trap,并将PDU细节打印出来,也来测试Trap发送功能是否正常。

8、snmpinform
模拟发送InformRequest的工具。跟snmptrap类似,用来发送模拟的带应答的Trap,以测试管理站或自己开发的接收程序。

9、snmptable
使用GetNextRequest和GetBulkRequest操作读取表信息,以列表形式显示的工具。

10、snmpstatus
从SNMP实体读取几个重要的管理信息以确定设备状态的工具。用来简单测定设备状态。

11、snmpbulkwalk
利用GetBulkRequest实现对给定管理树进行遍历的工具。对表格类型的管理信息进行遍历读取。

12、snmpdelta
用来监视Integer类型的管理对象,会及时报告值改变情况的工具。用于监测一个设备或开发中的代理。

13、snmptest
是一个复杂的工具,可以监测和管理一个网络实体的信息,通过SNMP请求操作与管理实体通信。

14、snmptranslate
将对象名字和标识符相互转换的工具。用于数据格式的对象标识和可读式字符串的数据名称的转换。类似于域名与IP地址的关系。
以上14个指定使用的选项均和snmpwalk相同,具体参见snmpwalk的使用详解

15、snmpusm
SNMPv3USM配置工具。用于SNMPv3的用户管理。

16、snmpvacm
为一个网络实体创建和维护SNMPv3的基于视图访问控制参数的工具。用于维护SNMPv3的视图访问控制。

17、snmpconf
生成snmpd配置文件的工具。用于生成snmpd的各种配置文件,用作模板,以生成用户级配置文件。

18、snmpd
Net-snmp开发的主代理程序,包括众多标准MIB的实现。还可以使用子代理对其进行扩展,是一个功能强大的SNMP代理。Linux、Unix和Windows系统运行snmpd后,直接具备了SNMP协议支持,可以被管理站管理。许多商业化的Linux中使用snmpd作为系统的SNMP代理。

19、snmpdf
通过SNMP访问并显示网络实体磁盘利用情况的工具。用来监测网络实体的磁盘。

下面我们来说几个最常用的net-snmp工具,
常用命令:
(1).snmpget命令
snmpget [OPTIONS] AGENTOID[OID]...
选项:
-v 1|2c|3 #指定SNMP版本
-c COMMUNITY #指定共同体名称
-m MIB[:...] #指定MIB文件
注:snmpget不同于snmpwalk,必须在命令行给出<object>.<instance>的格式,不能只给出object
如:
snmpwalk -v 2c -c public localhost system      #可获得数据
snmpget -v 2c -c public localhost system        #获取不到数据
示例:
snmpget -v 2c -c public localhost system.sysDescr.0       #获取设备的描述信息。
snmpget -v 2c -c public localhost sysDescr.0          #获取设备的描述信息。

[root@node1~]# snmpget -v 2c -c public localhost system.sysDescr.0
SNMPv2-MIB::sysDescr.0=STRING:Linuxnode1.test.com2.6.32-358.el6.x86_64#1SMPFriFeb2200:31:26UTC2013x86_64

(2).snmpwalk/snmpbulkwalk命令
snmpwalk/snmpbulkwalk [OPTIONS] AGENT[OID]
选项:
-v 1|2c|3 #指定SNMP版本
-c COMMUNITY #指定communitystring
-m MIB[:...] #指定MIB文件
注:
snmpbulkwalk命令:获取snmp服务器的mib-2各种资讯,snmpbulkwalk用于通过SNMPv2的SNMPGETBULK请求命令与其它网络实体通信,只能用于snmpv2, 速度快于snmpwalk

示例:
[root@node1~]# snmpbulkwalk -v 2c -c public 127.0.0.1 .1.3.6.1.2.1.1 #获取mib-2的system的数据。

(3).snmpwalk命令
获取snmp服务器的HOST-RESOURCES的各种资讯。
示例:
[root@node1~]# snmpwalk -v 2c -c public localhost system #这条指令用于查看本机系统信息。

(4).snmpdelta命令
监控网卡流量等信息,指定共同体为public,协议为snmpv1,以表格的方式输出结果,显示时间戳。
示例:
snmpdelta -c public -v 1 -Cs -CT 127.0.0.1   IF-MIB::ifInUcastPkts.2    IF-MIB::ifOutUcastPkts.2
#监控IF-MIB::ifInUcastPkts(输入流量),IF-MIB::ifOutUcastPkts(输出流量),如监控本地的第二块网卡instance为2。

snmpdelta -c public -v 1 -Cs -CT 127.0.0.1 ifInDiscards.2
#监控ifInDiscards(已经丢弃的收到的数据包的总数),格式同上。

(5).snmpnetstat命令
查看snmp服务器的端口连接信息,协议为snmp2c。
示例:snmpnetstat -v 2c -c public -Can -Cp tcp 127.0.0.1
#获取127.0.0.1的TCP协议的开放端口状态
#-Ca显示所有的套接字, 一般情况下套接字被服务进程使用而不显示
#-Cn所有地址以数字形式显示
#-Cp指定协议
#-Ci显示所有的网络接口
#-Co显示所有网络接口的简单状态, 需配合-Ci使用
#-CI 后接网络接口名, 如eth0 显示该接口的相关信息
#-Cs 显示统计信息
#-Cr 显示路由信息, 配合-Cn使用, 显示数字形式

(6).snmptranslate命令
在MIBOID在数字和文字名称之间进行转换。
例子,
snmptranslate -On -IR HOST-RESOURCES-MIB::hrSystem
#用snmptranslate把symbol(字符串)格式的HOST-RESOURCES-MIB::hrSystem转换为numberic(数值)格式的oid
用     -On(输出数字格式的oid)
用     -IR(允许“随机”访问MIB)
[root@node1~]#snmptranslate -On -IR HOST-RESOURCES-MIB::hrSystem
.1.3.6.1.2.1.25.1                              #numberic(数值)格式的oid

snmptranslate -Onf -IR HOST-RESOURCES-MIB::hrSystem
#用snmptranslate把symbol(字符串)格式的HOST-RESOURCES-MIB::hrSystem转换为symbol(字符串)格式的oid
用-Onf(输出符号格式的oid)

[root@node1~]#snmptranslate -Onf -IR HOST-RESOURCES-MIB::hrSystem
.iso.org.dod.internet.mgmt.mib-2.host.hrSystem                     #symbol(字符串)格式的oid

[root@localhost ~]# snmptranslate -Td iso.org.dod.internet.mgmt.mib-2 #用snmptranslate输出该对象(iso.org.dod.internet.mgmt.mib-2)的详细定义
SNMPv2-SMI::mib-2 #用-Td(包括文字名称、所属MIB、类型、状态、读写权限、描述信息,数字格式的OID)
mib-2 OBJECT-TYPE
-- FROM SNMPv2-SMI
::= { iso(1) org(3) dod(6) internet(1) mgmt(2) 1 }

[root@node1~]#snmptranslate -Tp iso.org.dod.internet.mgmt.mib-2        #用snmptranslate打印从指定OID(.1.3.6.1.2.1)开始一直到该OID(.1.3.6.1.2.1)所属的MIB子树末端的树型结构信息

snmptranslat -Ta            #用snmptranslate导出所有已经加载的MIB的数据,每个对象一行
snmptranslate -Tl           #用snmptranslate导出所有已经加载的MIB的对象,并且输出完整的oid路径
snmptranslate -To          #用snmptranslate导出已经加载的所有MIB的数字格式的oid,不含值和类型,仅仅有oid而已
snmptranslate -Ts          #用snmptranslate只输出文字格式的OID名称而已

2、在zabbix server主机上执行如下操作:

yum  install  net-snmp*  -y

snmpget  -v 1  -c public   10.0.91.10  system.sysUpTime.0

snmpget  -v 2c  -c public  10.0.91.10  sysDescr.0

10.0.91.10是被监控主机的IP地址(已经按照1中正确配置)

system.sysUpTime.0和sysDescr.0是要被监控的项目(必须事先查询, 最好是使用OID)

示例:

1、物理主机监控

1.1 snmpv2

监控10.0.91.10主机的物理内存

在命令行上测试是否可获取到数据

字符串形式的监控项翻译成数字形式OID

将字符串形式的监控项翻译成字符串形式OID

在zabbix中配置监控项时, 上述的字符串形式的监控项、数字形式OID、字符串形式OID 3种形式均可使用

查看监控的数据

1.2 snmpv3

主机snmd.conf配置文件中需要配置如下两行

           用户名(security name)    认证算法       认证密码                  加密算法       加密密码

createUser   testuser         SHA       admin@123         DES       china123

为读写用户设置权限                                       上述创建的用户      安全级别(noauth|auth(认证)|priv(认证且加密))

rwuser               testuser       priv

zabbix server主机上执行如下命令行:

snmpwalk  -v 3 -u testuser  -a SHA  -A admin@123  -x DES -X china123 -l authPriv  10.0.91.10 sysDescr.0

查看监控数据:

(38)zabbix中配置snmp监控的更多相关文章

  1. 自学Zabbix11.1 Zabbix 配置SNMP监控

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix11.1 Zabbix 配置SNMP监控 1. 概述 zabbix采集数据方式: ...

  2. zabbix 配置SNMP监控

    什么是SNMP? 简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol).数据库模型(database schema)和一组 ...

  3. zabbix问题之snmp监控端口流量断图

    zabbix之snmp监控端口断图问题 在使用zabbix的snmp方式的监控端口流量时,某一个图总是断断续续的(被监控设备有较大的端口流量),经常会出现几分钟内没有图像的问题. 端口流量断图原因: ...

  4. zabbix中配置当memory剩余不足20%时触发报警

    在zabbix中默认当内存剩余量不足2G的时候触发报警,并没有使用百分比来触发如下: 现在需要配置:当memory剩余不足20%时触发报警,具体操作方法如下: 1)创建itemConfiguratio ...

  5. Zabbix 触发器配置多监控项阈值

    配置内存自定义监控项 # 监控内存命令 [root@web01 ~]# free -m|awk '/^Mem/{print $NF/$2}' 0.664609 [root@web01 ~]# free ...

  6. tomcat中配置jmx监控

    1.在tomcat的start.bat中添加下面代码, -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote. ...

  7. Openstack-Mitaka Ceilometer 中使用 SNMP 监控真实物理机

    Ceilometer 是 Openstack 的监控管理计费模块,我所用的版本为 Mitaka 版本.在 Ceilometer 中,可以使用 SNMP 监控服务器的实时硬件资源信息. 系统环境为 Ce ...

  8. zabbix中文配置指南(转)-服务器监控

    一.Zabbix简介 1.1 Zabbix简介 Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利.官方网站:htt ...

  9. Zabbix通过SNMP监控多核CPU使用率时, 计算CPU平均使用率

    环境:没有Agent,只能通过SNMP监控时,需要获取多核CPU的平均使用率. ZABBIX的使用SNMP监控CPU使用率时,由于设备都是多核CPU,监控的都是单独某一核心的使用率,但单独某一核使用率 ...

随机推荐

  1. 自然语言处理(五)——实现机器翻译Seq2Seq完整经过

    参考书 <TensorFlow:实战Google深度学习框架>(第2版) 我只能说这本书太烂了,看完这本书中关于自然语言处理的内容,代码全部敲了一遍,感觉学的很绝望,代码也运行不了. 具体 ...

  2. RT-Thread 设备驱动UART浅析

    OS版本:RT-Thread 4.0.0 芯片:STM32F407 RT-Thread的串口驱动框架与Linux相识,分成 I/O设备框架 + 设备底层驱动: 1. serial设备初始化及使用 将配 ...

  3. cmd,bat和dos的区别

    区别 dos是磁盘操作系统(Disk Operating System),是个人计算机上的一类操作系统. bat是DOS命令,在任何dos环境下都可以使用. bat文件是dos下的批处理文件,批处理文 ...

  4. 自定义的cell上面有图片时,如果产生了重用,图片可能会错乱问题

    当被重用的cell将要显示时,会调用这个方法,这个方法最大的用武之地是当你自定义的cell上面有图片时,如果产生了重用,图片可能会错乱(当图片来自异步下载时及其明显),这时我们可以重写这个方法把内容抹 ...

  5. JS面向对象方法(二) 面向对象方法实现橱窗式图面预览以及放大功能

     效果图: HTML结构如下: <div id="preview"> <div id="mediumDiv"> <img id=& ...

  6. [51Nod1952] 栈

    Description 不支持后端删除的dequeue,每次操作后查询最大值. \(n\leq10^7\).时限1.5s,不用考虑读入/输出复杂度. Solution 首先考虑如果没有后端删除怎么做, ...

  7. Python enumerate() 函数----枚举

    描述 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中. Python 2.3. 以上版本可用,2. ...

  8. 修复在unix系统里的文件打开不能显示正常的颜色问题

    在mac上面看到mysql的配置文件的颜色永远是白色,为了让配置文件的颜色更加分明些,这个时候只需进入到home目录下新建一个.vimrc文件, vim  .vimrc set nu syntax o ...

  9. Hive_Hive的数据类型

    Hive Basic Data Type: Basic Types: tinyint/samllint/int/bigint float/double boolean string Complex T ...

  10. 117 Populating Next Right Pointers in Each Node II 每个节点的右向指针 II

    这是“每个节点的右向指针”问题的进阶.如果给定的树可以是任何二叉树,该怎么办?你以前的解决方案仍然有效吗?注意:    你只能使用恒定的空间.例如,给定以下二叉树,         1       / ...