一、目标

centos7下Zabbix客户端安装配置,将客户端agent添加到服务器监控起来

二、平台

[root@xserver ~]# cat /etc/redhat-release 
 CentOS Linux release 7.6.1810 (Core)
 [root@Com176 ~]# snmpd -v
 NET-SNMP version:  5.7.2

三、解析

四、客户端(被监控端)主机的配置

1.安装snmp和相关组件

yum install net-snmp net-snmp-utils -y

2.创建snmp用户

net-snmp-create-v3-user

如果此处报错:Apparently at least one snmpd demon is already running. You must stop them in order to use this command,则使用命令:systemctl stop snmpd。去停止snmp服务,然后再使用ps aux |grep snmp 查到进程后执行【kill -9 进程ID】 然后再去创建用户。
2-1.输入snmp用户的用户名,如:zabbix
2-2.Enter encryption pass-phrase 输入加密密码,如:zabbix@hiibm.com
2-3.再次输入一下加密密文,zabbix@hiibm.com

3.检验创建用户是否成功

grep zabbix /var/lib/net-snmp/snmpd.conf

这句话的意思是,去看snmp配置文件中是否有包含一行刚才创建的用户名zabbix,注意是一行,不是多行包含zabbix,多了的话注释掉多余的,值保留一行即可。

4.启动snmp服务,并查看snmpd服务状态

systemctl start snmpd
systemctl status snmpd

5.配置snmpwalk

snmpwalk -v 3 -u zabbix -a MD5 -A 'zabbix@hiibm.com' -l authPriv -x DES -X 'zabbix@hiibm.com' localhost

-v 3 ---->代表使用snmp v3版本
-u zabbix ---->代表使用用户zabbix
-a MD5 ---->代表用户zabbix使用的是MD5加密验证
-A 'zabbix@hiibm.com' ---->验证字符串是zabbix@hibim.com(感觉这东西有点像salt)
-l authPriv ---->验证级别为认证加秘钥
-x DES ---->指定加密协议为DES
-X 'zabbix@hiibm.com' ---->加密字符串,只有-l指定为authPriv时才需要写这个参数。
localhost  ---->指的是抓取本机snmp得到的消息,也可写成ip地址

 

五、zabbix服务端

1.查看zabbix安装的时候是否支持了snmp监控

head /var/log/zabbix/zabbix_server.log |grep "SNMP monitoring:"

zabbix snmp代理与snmp trap zabbix proxy snmp_服务端

2.服务端也安装snmp及相关组件

yum install net-snmp net-snmp-utils -y

3.服务端0.68执行snmpwalk命令去尝试收集客户端0.176的数据

snmpwalk -v 3 -u zabbix -a MD5 -A 'zabbix@hiibm.com' -l authPriv -x DES -X 'zabbix@hiibm.com' 192.168.0.176

这样能获取一大坨来自客户端192.168.0.176的信息。

4.使用snmpget获取单条客户端信息,如获取客户端主机名(snmpInfo.txt是上面那条命令重定向保存下来的信息)

grep SNMPv2-MIB::sysName.0 snmpInfo.txt

zabbix snmp代理与snmp trap zabbix proxy snmp_客户端_02

还可以在服务端直接使用命令获取客户端主机名:

snmpget -v 3 -u zabbix -a MD5 -A 'zabbix@hiibm.com' -l authPriv -x DES -X 'zabbix@hiibm.com' 192.168.0.176 SNMPv2-MIB::sysName.0

zabbix snmp代理与snmp trap zabbix proxy snmp_客户端_03

5.在服务端使用MIB(我也不知道这玩意叫啥,就是snmpwalk获取到的一坨值的每行冒号开头的一部分)获取OID(一串数字)

snmpget -v 3 -u zabbix -a MD5 -A 'zabbix@hiibm.com' -l authPriv -x DES -X 'zabbix@hiibm.com' -O fn 192.168.0.176 SNMPv2-MIB::sysName.0

 上面这条命令是利用MIB(SNMPv2-MIB::sysName.0)获取对应的OID值(.1.3.6.1.2.1.1.5.0)

zabbix snmp代理与snmp trap zabbix proxy snmp_主机名_04

zabbix snmp代理与snmp trap zabbix proxy snmp_服务端_05

2019年12月14日22:55:20 

六、zabbix监控系统web端设置

1.创建snmp主机组(创建被监控的客户端到zabbix的web上)

依次点击顶部导航栏,配置----主机群组---创建主机群组

zabbix snmp代理与snmp trap zabbix proxy snmp_客户端_06

2.创建主机

依次点击顶部导航栏,配置----主机群组---创建主机

主机名称:Com176.hiibm.com

可见名称:snmp176。这玩意有点像别名的意思

群组:选择(刚刚创建的那个xSnmpLinuxHostGroup)

SNMP接口:192.168.0.176,端口默认161,点添加

启用:勾中。

最后点【更新/添加】

zabbix snmp代理与snmp trap zabbix proxy snmp_客户端_07

zabbix snmp代理与snmp trap zabbix proxy snmp_客户端_08

3.给SNMP主机添加监控项

3-1.在主机列表中点开该主机的"监控项"

zabbix snmp代理与snmp trap zabbix proxy snmp_主机名_09

3-2.给具体主机0.176创建监控项

点右上角的【创建监控项】

zabbix snmp代理与snmp trap zabbix proxy snmp_客户端_10

zabbix snmp代理与snmp trap zabbix proxy snmp_主机名_11


名称:随便写

类型:SNMPv3客户端

键值:随便写

主机接口:默认的本次设定的主机ip0.176

SNMP OID:SNMPv2-MIB::sysName.0          这里为了演示,这个OID是获取客户端的主机名,这里可以自行去查自定义设定

安全名称:zabbix       这里写的是我们在客户端主机上使用snmp创建(net-snmp-create-v3-user)的snmpv3用户名

安全级别:authPriv 

验证协议:MD5       上面我们有用命令获取客户端的信息(snmpwalk -v 3 -u zabbix -a MD5 -A 'zabbix@hiibm.com' -l authPriv -x DES -X 'zabbix@hiibm.com' localhost)

验证口令:zabbix@hiibm.com

隐私协议:DES

私钥:zabbix@hiibm.com

端口:161

信息类型:字符    ,你怎么知道这里是字符不是其他的呢?用命令查啊,上面有写

更新时间:30s

历史数据保留时间,90d

已启用:选中

最后点【更新/添加】

zabbix snmp代理与snmp trap zabbix proxy snmp_服务端_12


到此snmp监控客户端的东西就填完了,去最新数据中查看一下

zabbix snmp代理与snmp trap zabbix proxy snmp_客户端_13

zabbix snmp代理与snmp trap zabbix proxy snmp_主机名_14

再看看添加的另外一个监控项写的是IF-MIB::ifOutUcastPkts.2,返回的结果就是这样的。

zabbix snmp代理与snmp trap zabbix proxy snmp_客户端_15

本篇博客仅仅是教如何用snmp如果使用snmp命令,如何使用snmp监控linux主机,如何在zabbix上使用snmp的形式去监控主机,博客内容中的监控项基本没实际意义,想监控什么东西自行去查一下,我想会炒鸡简单。

博客写着不容易,希望得到你的支持。