zabbix使用snmp监控(亲测)

基于zabbix安装snmp服务(亲测)

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

snmpwalk是SNMP的一个工具,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户。

通过snmpwalk也可以查看支持SNMP协议(简单网络管理协议)的设备的一些其他信息,比如交换机或路由器IP地址、内存使用率等,也可用来协助开发SNMP功能。

在日常监控中,经常会用到snmp服务,而snmpwalk命令则是采集系统各种信息最有效的方法。

1、客户端安装net-snmp

[root@db01 ~]# yum install -y net-snmp

2、修改配置文件

[root@db01 ~]# vim /etc/snmp/snmpd.conf

# 注释 com2sec notConfigUser  default       public    
#社区名称定义为zabbix
com2sec notConfigUser default zabbix  

#添加一个采集项.1,意味着可以采集到所有mib tree的信息   
view systemview included .1           

3、启动服务

[root@db01 ~]# systemctl start snmpd.service

4、查看snmp端口

如果没有安装netstat ,则执行命令:

[root@db01 ~]#  yum install net-tools

查看snmp端口

[root@db01 ~]# netstat -lntup|grep 161

udp 0 0 0.0.0.0:161 0.0.0.0:* 59093/snmpd

5、在zabbix server上查询snmp监控的指标总数量

安装snmpwalk工具测试

[root@zabbix ~]# yum install -y net-snmp-utils

查询snmp监控的指标总数量

[root@zabbix ~]# snmpwalk -v 2c -c zabbix 192.168.16.136|wc -l

3724        #这里取到了3724项 

6、在zabbix server上导出snmp监控的指标到文件

[root@zabbix ~]#  snmpwalk -v 2c -c zabbix 192.168.16.136 > list.txt

查看文档:

 [root@zabbix ~]# vi list.txt

在这里插入图片描述
7、查看系统运行的进程(某一个)

  [root@zabbix ~]# snmpget -v 2c -c zabbix -On 192.168.16.136 HOST-RESOURCES-MIB::hrSWRunName.1

8、根据OID查看获取系统基本信息

  [root@zabbix ~]# snmpget -v 2c -c zabbix 192.168.16.136 .1.3.6.1.2.1.1.1.0

9、查询zabbix可以使用的OID

  [root@zabbix ~]#  snmpget -v 2c -c zabbix -On 192.168.16.136 HOST-RESOURCES-MIB::hrSWRunName.1

10、zabbix的web界面添加主机
参考zabbix官方文档:
https://www.zabbix.com/documentation/4.0/zh/manual/config/items/itemtypes/snmp

我用的zabbix版本是Zabbix 4.2.6,OID一定不能填错。

添加主机
在这里插入图片描述为添加的主机链接zabbix自带的Template OS Linux SNMPv2模板
在这里插入图片描述 填写主机的宏名称
在这里插入图片描述添加监控项
在这里插入图片描述查看最新数据
在这里插入图片描述

SNMP监控一些常用OID

网上有很多常用的OID,写的也很详细,我这里只是讲下注意事项
使用下面的命令可以更加准确的查询你自己需要的OID:

  [root@zabbix ~]#  snmpget -v 2c -c zabbix -On 192.168.16.136 HOST-RESOURCES-MIB::hrSWRunName.1

网上有很多常用的OID,写的也很详细,我就不在这里重复列举了,如:
参照:https://www.cnblogs.com/aspx-net/p/3554044.html
请求方式是get的OID可以直接拿到具体的值。但是请求方式是WALK的,拿到的值是一个list列表,需要在OID后面加上.1或者其他的序号。
在这里插入图片描述

get请求方式就是使用snmpget命令,walk请求方式就是使用snmpwalk命令

snmpget命令代表这个指标是特定的一个具体的值,snmpwalk命令代表这个指标是一个集合,如系统运行的进程列表,包括多个进程。

zabbix官方的snmp动态索引

概述
虽然你可能会在SNMP OID中找到所需的索引号(例如网络接口),但有时你不能完全依赖不变的索引号。
索引号可能是动态的 - 它们可能会随时间而改变,因此你的监控项可能会停止工作。
为了避免这种情况,可以定义一个考虑到索引号改变的可能性的OID。

例如,如果需要检索索引值以匹配Cisco设备上的 GigabitEthernet0/1 接口的 ifInOctets ,请使用以下OID:

ifInOctets["index","ifDescr","GigabitEthernet0/1"]

语法
使用OID的特殊语法:

<OID of data>["index","<base OID of index>","<string to search for>"]

在这里插入图片描述

示例
获取 apache 进程的内存使用率。
如果使用这种OID语法:

HOST-RESOURCES-MIB::hrSWRunPerfMem["index","HOST-RESOURCES-MIB::hrSWRunPath", "/usr/sbin/apache2"]

索引号将在这里查找:

...
HOST-RESOURCES-MIB::hrSWRunPath.5376 = STRING: "/sbin/getty"
HOST-RESOURCES-MIB::hrSWRunPath.5377 = STRING: "/sbin/getty"
HOST-RESOURCES-MIB::hrSWRunPath.5388 = STRING: "/usr/sbin/apache2"
HOST-RESOURCES-MIB::hrSWRunPath.5389 = STRING: "/sbin/sshd"
...

现在我们有索引5388.索引将附加到此数据OID,以便接收我们感兴趣的值:

HOST-RESOURCES-MIB::hrSWRunPerfMem.5388 = INTEGER: 31468 KBytes

索引查找缓存
当请求动态索引项时,Zabbix检索并缓存base OID下的整个SNMP表用于索引(即使早发现了匹配)。这是为了在另一个监控项稍后引用相同的base OID - Zabbix将在缓存中查找索引,而不是再次查询被监视的主机。请注意,每个轮询器进程使用单独的缓存。

在所有随后的值检索操作中,仅验证找到的索引。如果没有改变将请求结果值;如果已更改,则会重建高速缓存 - 遇到已更改索引的每个轮询器再次建立SNMP索引表。

zabbix界面操作

SNMP OID(apache 进程的内存使用率)
后面的 /usr/lib/systemd/systemd ,根据自己的apache 进程目录修改。

方式一:

HOST-RESOURCES-MIB::hrSWRunPerfMem["index","HOST-RESOURCES-MIB::hrSWRunPath","/usr/lib/systemd/systemd"]

方式二:
.1 代表第几个apache 进程,和方式一目的一样,都是获取具体的进程索引。

HOST-RESOURCES-MIB::hrSWRunPerfMem.1

在这里插入图片描述最新数据
在这里插入图片描述

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值