zabbix-数据采集【zabbix_agentd、zabbix_get】
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 收集远程客户端节点的指定的监控条目,检测环境