一、目标
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:"
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
还可以在服务端直接使用命令获取客户端主机名:
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
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)
2019年12月14日22:55:20
六、zabbix监控系统web端设置
1.创建snmp主机组(创建被监控的客户端到zabbix的web上)
依次点击顶部导航栏,配置----主机群组---创建主机群组
2.创建主机
依次点击顶部导航栏,配置----主机群组---创建主机
主机名称:Com176.hiibm.com
可见名称:snmp176。这玩意有点像别名的意思
群组:选择(刚刚创建的那个xSnmpLinuxHostGroup)
SNMP接口:192.168.0.176,端口默认161,点添加
启用:勾中。
最后点【更新/添加】
3.给SNMP主机添加监控项
3-1.在主机列表中点开该主机的"监控项"
3-2.给具体主机0.176创建监控项
点右上角的【创建监控项】
名称:随便写
类型: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
已启用:选中
最后点【更新/添加】
到此snmp监控客户端的东西就填完了,去最新数据中查看一下
再看看添加的另外一个监控项写的是IF-MIB::ifOutUcastPkts.2,返回的结果就是这样的。
本篇博客仅仅是教如何用snmp如果使用snmp命令,如何使用snmp监控linux主机,如何在zabbix上使用snmp的形式去监控主机,博客内容中的监控项基本没实际意义,想监控什么东西自行去查一下,我想会炒鸡简单。
博客写着不容易,希望得到你的支持。