文章目录
- 1 介绍
- 2 工作模式
- 2 部署
- 2.1 RPM 包方式部署
- 3 配置
- 3.1 配置文件位置
- 3.2 主配置文件布局
- 3.2.1 常规参数
- 3.2.2 高级参数
- 3.3 部分配置参数详解
- 3.3.1 通用参数
- 3.3.2 被动模式参数
- 3.3.3 主动模式参数
- 4 测试
- 4.1 Agent 本机测试
- 4.2 在服务端 Zabbix-server 测试和 Agent 的通信
- 4.2.1 安装工具
- 4.2.2 用法介绍
1 介绍
Zabbix Agent 部署在监视目标上,以主动监视本地资源和应用程序(硬盘,内存,处理器统计信息等)。
该 Agent 在本地收集操作信息,并将数据报告给Zabbix服务器以进行进一步处理。
Zabbix Agent 非常有效,因为使用了本机系统调用来收集统计信息。
目前 zabbix-agent 有两个版本
- zabbix-agent c 语言编写。
- zabbix-agent2 go 语言编写。
本课程使用的是 zabbix-agent2, 后面篇幅如果特定说明,都会使用 zabbix-agent 代表 zabbix 客户端。
2 工作模式
工作模式就是 zabbix-agent 如何向 zabbix-server 传输监控指标数据。
对于 zabbix-agent 有两种模式:
- 被动(默认) Agent 会响应来自Zabbix Server(或 Proxy)的数据请求。例如CPU负载,然后Zabbix Agent 将结果发送回去。
- 主动 需要更复杂的处理。Agent 必须首先从Zabbix Server 获取到需要的监控项列表。然后它将定期将获取到的监控项和其对应的新值发送到服务器。
2 部署
2.1 RPM 包方式部署
RPM 包的安装方式和之前安装服务端的部署几乎一样,就是再按包的时候是只安装 agent相关的包。
首先选择适合自己操作系统的版本,比如这里我选择的是在一个 Centos7 上部署 Agent2。
- 安装 YUM 源
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/7/x86_64/zabbix-release-7.0-5.el7.noarch.rpm
- 安装软件包
yum install zabbix-agent2 zabbix-agent2-plugin-*
大概会安装如下包,除了 zabbix-agent2 是必须的,其他插件用途的包,都是可选的。
-
zabbix-agent2.x86_64 0:7.0.2-release1.el7
必须,这是 Zabbix Agent 2 的主程序,Zabbix Agent 2 是 Zabbix 的新版本,提供了更好的性能和功能。 -
zabbix-agent2-plugin-ember-plus.x86_64 0:7.0.2-release1.el7
这个插件用于监控 Ember+ 协议的设备。Ember+ 是一种用于控制和监控设备的协议,通常用于专业音视频设备和照明控制系统。通过这个插件,Zabbix 可以收集与 Ember+ 设备相关的数据。 -
zabbix-agent2-plugin-mongodb.x86_64 0:7.0.2-release1.el7
此插件用于监控 MongoDB 数据库。它可以收集 MongoDB 的性能指标和状态信息,如连接数、操作计数、内存使用等,帮助管理员监控和优化 MongoDB 的运行。 -
zabbix-agent2-plugin-mssql.x86_64 0:7.0.2-release1.el7
这个插件用于监控 Microsoft SQL Server 数据库。它可以收集 SQL Server 的各种性能指标,例如查询性能、连接数、事务数等,帮助数据库管理员监控 SQL Server 的健康状态。 -
zabbix-agent2-plugin-postgresql.x86_64 0:7.0.2-release1.el7
此插件用于监控 PostgreSQL 数据库。它提供了对 PostgreSQL 的性能监控,包括数据库连接、查询性能、缓存使用等指标。
启动 agent
systemctl enable --now zabbix-agent2
Agent 的默认端口是 10050
3 配置
3.1 配置文件位置
配置文件路径默认在 **/etc/zabbix/目录下。
主配置文件是 /etc/zabbix/zabbix_agent2.conf
3.2 主配置文件布局
配置文件主要分为两大部分:
3.2.1 常规参数
常规参数中又分为: 被动模式 相关的参数 和 主动模式 相关的参数
3.2.2 高级参数
高级参数中分为:
-
用户定义的监控参数
可以配置用户自定义的监控项,以及如何获取这些监控项等。 -
TLS相关参数
主要配置和安全相关的一些参数,比如加密算法,证书路径等。 -
插件特定参数
可以对插件的相关内容进行配置,比如插件的路径等。
3.3 部分配置参数详解
这里仅介绍一下常用的、重要的参数。
3.3.1 通用参数
- 指定程序的日志路径
LogFile=/var/log/zabbix/zabbix_agent2.log
- 指定日志文件最大容量 MB, 0-禁用自动日志轮换。配置范围
0-1024
LogFileSize=0
3.3.2 被动模式参数
就是在 ##### Passive checks related 下面的一些参数。
- 服务端IP,就是将监控项汇报给谁。用逗号分隔的IP地址列表,可选CIDR表示法,或Zabbix服务器和Zabbix代理的DNS名称。
Server=127.0.0.1
- Agent 程序的监听端口
ListenPort=10050
- 程序自身的监听地址,代理应监听的逗号分隔的IP地址列表。
如果连接到Zabbix服务器以检索活动检查列表,则会将第一个IP地址发送到Zabbix服务器。
ListenIP=0.0.0.0
3.3.3 主动模式参数
- zabbix server 或者 zabbix proxy 的IP地址和端口。IP和端口之间使用英文冒号,不指定端口,则使用默认端口
10051
。
Agent 会主从向这个地址发送查询需要汇报的监控项,并把监控项结果发送给这个地址。
ServerActive=127.0.0.1
配置示例:
ServerActive=192.168.0.12:10051
- 主机名
逗号分隔的唯一区分大小写的主机名列表。主动检查所需,并且必须与服务器上配置的主机名要一致。
如果未定义,则从 HostnameItem 配置项获取值。
Hostname=my-agent-hostname
3.获取主机名的监控项
指定一个 zaibbix-agent 提供的key, 用于获取agent 上的主机名。如果定义了 Hostname 配置项,则忽略此配置项。
HostnameItem=system.hostname
4 测试
zabbix_get 程序可以从 Agent 程序获取到这个 Agent 所提供的监控项和值。通常用于测试服务端和客户端之间的通信情况。
4.1 Agent 本机测试
可以使用如下命令测试配置文件是否有语法错误。
zabbix_agent2 -T
可以查看当前 Agent 都有哪些监控项和对应的值。
zabbix_agent2 -p | less
能获取到监控项和值,说明自身运行没有问题。
4.2 在服务端 Zabbix-server 测试和 Agent 的通信
4.2.1 安装工具
首先可以在服务端使用如下命令,安装软件包
yum install zabbix-get -y
4.2.2 用法介绍
使用语法:
zabbix_get -h
部分常用参数简介
-s --host <host name or IP> 指定 Agent 的主机的主机名或 IP 地址。必须。
-p --port <port number> 指定在主机上运行的agent程序的端口号(默认值: 10050)。
-I --source-address <IP address> 指定自己服务端的源 IP 地址。不是必须的参数。
-t --timeout <seconds> 指定超时。有效范围:1-30 秒(默认值:30 秒)。
-k --key <item key> 指定监控项的键以检索其值。必须。
-P --protocol <value> 指定和agent通信使用的协议. 取值:
auto - 使用 JSON 协议连接,回退和重试使用 plaintext 协议(默认)
json - 使用 JSON 协议连接
plaintext - 使用 plaintext 协议连接,该协议仅发送监控项的键(6.4.x 和之前的版本)
-h --help 显示帮助信息
-V --version 显示版本号
示例:
zabbix_get -s 127.0.0.1 -p 10050 -k "key-name[参数1,参数2]"
实例:
zabbix_get -s 10.10.40.47 -p 10050 -k "agent.hostname"