1、基础知识
1.1、数据采集
zabbix server的数据采集从组成方式上来说,主要靠两种采集方式:
1、本机采集: zabbix_agentd
2、跨主机组合采集: zabbix_get + zabbix_agentd
1.2、zabbix-agent软件简介
1.2.1、zabbix_agentd
zabbix_agentd 是一个专门用于在客户端节点主机上查看默认的有效监控条目信息,它本质上是一个Zabbix守护程序,用于监视各种服务器参数。
这些数据都会在zabbix server的最新数据界面中体现
1.2.2、zabbix_get
Zabbix-Get是Zabbix中的一个程序,用于Zabbix-Server到Zabbix-Agent的数据获取,通常可以用来检测验证Agent的配置是否正确。可以在启动agent之前定位错误原因。
2、zabbix-get-软件安装
2.1、安装软件
apt info zabbix-agent
apt install zabbix-get -y
2.2、查看配置文件位置
2.2.1、zabbix-get
# dpkg -L zabbix-get
/.
/usr
/usr/bin
/usr/bin/zabbix_get
/usr/share
/usr/share/doc
/usr/share/doc/zabbix-get
/usr/share/doc/zabbix-get/changelog.Debian.gz
/usr/share/doc/zabbix-get/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/zabbix_get.1.gz
2.2.2、zabbix_agentd
# dpkg -L zabbix-agent
/.
/etc
/etc/init.d
/etc/init.d/zabbix-agent
/etc/logrotate.d
/etc/logrotate.d/zabbix-agent
/etc/zabbix
/etc/zabbix/zabbix_agentd.conf
/etc/zabbix/zabbix_agentd.d
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/zabbix-agent.service
/usr
/usr/bin
/usr/lib
/usr/lib/tmpfiles.d
/usr/lib/tmpfiles.d/zabbix-agent.conf
/usr/sbin
/usr/sbin/zabbix_agentd
/usr/share
/usr/share/doc
/usr/share/doc/zabbix-agent
/usr/share/doc/zabbix-agent/changelog.Debian.gz
/usr/share/doc/zabbix-agent/copyright
/usr/share/doc/zabbix-agent/userparameter_mysql.conf
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/zabbix_agentd.8.gz
/var
/var/log
/var/log/zabbix
3、命令解析
3.1、zabbix_agentd解析
3.1.1、命令介绍
# 查看帮助
zabbix_agentd -h
# 命令格式
zabbix_agentd [-c config-file] -p| -t item-key
# 属性解析
-c 指定zabbix的客户端配置文件,不写表示使用默认的配置文件
-p 打印所有的有效监控条目
-t 测试指定监控条目的数据获取效果
3.1.2、获取当前所有有效监控条目
zabbix_agentd -p
...
system.swap.size[all,free] [u|1961881600]
system.swap.in[all] [u|0]
system.swap.out[all] [u|0]
system.uptime [u|14403]
结果显示:
所有的item名称都是 "字母.字母"的样式出现的,还有一些是以[xxx,xxx,...]样式存在的。
[]格式的意思就是,给指定的item监控项,传递参数,参数彼此间使用逗号隔开。
3.1.3、测试获取指定监控节点的有效条目
# zabbix_agentd -t agent.hostname
agent.hostname [s|Zabbix server]
# zabbix_agentd -t system.swap.size
system.swap.size [u|1961881600]
结果显示:
每个item监控项都是以键值对的形式存在,键名是我们定制的,值是自动获取的。
这些值都是在zabbix的最新数据中进行使用
3.2、zabbix_get解析
3.2.1、命令介绍
# 查看帮助
zabbix_get --help
# 命令格式
zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key
# 属性解析
-s: 远程Zabbix-Agent配置文件中设置的IP地址或者是主机名。如果指定的ip不存在则发生报错
-p: 远程Zabbix-Agent的端口。
-l: 本机出去的IP地址,用于一台机器中又多个网卡的情况。
-k: 获取远程Zabbix-Agent数据所使用的Key(监控条目关键字,可以通过zabbit_agentd命令获取)。
# 用zabbix_get命令可以很方便地知道key是否能正常获取到数据,这在测试自定义监控的时候特别有用
3.2.2、测试指定主机的指定监控条目
# 收集zabbix 客户端主机的名称
# zabbix_get -s 127.0.0.1 -p 10050 -k "agent.hostname"
Zabbix server
# 测试客户端主机状态是否正常
# zabbix_get -s 127.0.0.1 -p 10050 -k "agent.ping"
1
# 测试不存在的主机
# zabbix_get -s 192.168.10.20 -p 10050 -k "agent.ping"
zabbix_get [23983]: Get value error: cannot connect to [[192.168.10.20]:10050]: [113] No route to host
3.3、zabbix主机配置
3.3.1、测试当前的主机ip
# zabbix_get -s 192.168.10.21 -p 10050 -k "agent.ping"
zabbix_get [23997]: Check access restrictions in Zabbix agent configuration
结果显示:在zabbix的配置中没有该地址,那么我们添加一下
3.3.2、修改客户端节点配置文件【zabbix_agentd.conf】
# 修改配置文件
# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,192.168.10.21
# 重启服务
systemctl restart zabbix-agent
# 测试看看
# zabbix_get -s 192.168.10.21 -p 10050 -k "agent.ping"
1
4、总结
zabbix_agentd 收集客户端本地所有信息,守护进程
zabbix_get 收集远程客户端节点的指定的监控条目,检测环境