30.1 Zabbix 监控系统(基于 PostgreSQL)
Zabbix 是一款企业级分布式开源监控解决方案,可对网络设备、服务器、应用程序及云服务进行实时监控与告警。本节采用 Ports 方式,基于 PostgreSQL 给出完整安装与配置步骤。
安装 zabbix7-server
zabbix7-server 是服务器端(Zabbix Server),负责接收和处理监控数据,应安装在监控服务器上。
通过 pkg 安装将额外引入 MySQL 依赖,并可能导致绑定冲突,因此建议采用 Ports 方式安装,以更精确地控制依赖关系与配置选项。
# cd /usr/ports/net-mgmt/zabbix7-server/
# make config
依照图示配置,选中 PGSQL 选项后确认,随后执行编译安装命令,编译过程较为耗时:
安装 PostgreSQL
Zabbix 需要数据库以存储监控数据。
PostgreSQL 16 的安装、初始化及服务自启配置请参阅本书相关章节。
安装 Nginx
Zabbix 前端需要通过 Web 服务器访问。本节使用 Nginx 作为 Web 服务器。Nginx 的安装与服务自启配置请参阅本书相关章节。
安装 zabbix7-frontend
zabbix7-frontend 为 Web 前端(Zabbix Frontend),提供图形化的监控管理界面。
采用 pkg 安装:
上述安装过程将自动安装 PHP,本节安装的版本为 PHP 8.3。Zabbix 7.0.10 起也正式支持 PHP 8.4,如需使用可改用 zabbix7-frontend-php84 及相应的 php84 扩展包。具体可用版本可查阅 zabbix7-frontend,该站点提供最新的包信息与兼容性说明。
也可采用 Ports 方式安装:
PDO
Zabbix 前端需经 PHP 访问 PostgreSQL 数据库,因此必须安装相应的 PHP 数据库扩展。PDO(PHP Data Objects)是 PHP 访问数据库的统一接口。PHP 版本需与 Zabbix 前端兼容。
使用 pkg 安装 PHP 数据库扩展:
也可采用 Ports 方式安装 PHP 数据库扩展:
安装 zabbix7-agent
zabbix7-agent 为 Zabbix 的客户端代理程序,负责在被监控主机上采集监控数据并发送至 Zabbix Server。应安装在需要被监控的主机上,可部署于多台主机以实现分布式监控。
使用 pkg 安装 zabbix7-agent:
也可采用 Ports 方式安装 zabbix7-agent:
守护进程
需将相关服务配置为系统启动时自动运行。
设置 PostgreSQL 数据库
需要在 PostgreSQL 中创建专门的数据库和用户供 Zabbix 使用,并导入 Zabbix 的初始数据。PostgreSQL 数据库初始化完成后,执行以下命令:
技巧
上述示例中的
your_strong_password为占位符,需要替换为实际的强密码。
必须先退出当前会话,再以正确的用户权限继续后续操作:
参考文献
ShowMe.Codes. PostgreSQL15 Public Schema 没有权限问题解决[EB/OL]. [2026-03-25]. https://showme.codes/zh-cn/2024-01-01-postgresql15-public-schema-permission/. 详述了 PostgreSQL 15+ 中 public schema 权限变更及解决方案。
设置 Zabbix Server
需要配置 Zabbix Server 的主要配置文件,以连接 PostgreSQL 数据库。
目录结构:
Zabbix Server 的主要配置文件位于 /usr/local/etc/zabbix7/zabbix_server.conf。
添加以下内容:
设置 Zabbix Agent
需要配置 Zabbix Agent 的主要配置文件,以与 Zabbix Server 通信。Zabbix Agent 的配置文件位于 /usr/local/etc/zabbix7/zabbix_agentd.conf。
添加以下内容:
配置 Zabbix 前端
需要配置 Zabbix 前端的配置文件,以连接 PostgreSQL 数据库。Zabbix 前端配置文件模板位于 /usr/local/www/zabbix7/conf/zabbix.conf.php.example 文件(Zabbix Frontend 配置模板)。
复制 Zabbix 示例配置文件为正式配置文件:
编辑 /usr/local/www/zabbix7/conf/zabbix.conf.php 文件,将:
修改如下:
提示
以上配置适用于本地开发测试环境。生产环境中建议:
为 Zabbix Server、Agent 及 Web 前端之间的通信启用 TLS 加密
使用 Nginx 反向代理配置 HTTPS,避免监控数据和登录凭证明文传输
配置 Nginx
需要配置 Nginx 以提供 Zabbix 前端的 Web 访问服务。备份原有 Nginx 主配置文件:
编辑 /usr/local/etc/nginx/nginx.conf 文件,替换原有内容,修改如下:
配置 PHP
需配置 PHP 以满足 Zabbix 前端的运行要求。
编辑 /usr/local/etc/php.ini-production 文件
将生产环境 PHP 配置文件复制为默认配置文件:
编辑 /usr/local/etc/php.ini 文件:
找到
;date.timezone =修改为date.timezone = Asia/Shanghai(需要删除原行首的分号;)找到
post_max_size = 8M修改为post_max_size = 16M找到
max_execution_time = 30,修改为max_execution_time = 300找到
max_input_time = 60,修改为max_input_time = 300
启动服务
所有配置完成后,需要按顺序启动相关服务,确保 Zabbix 监控系统正常运行。
登录
服务启动成功后,可通过浏览器访问 Zabbix Web 前端完成登录与配置。Zabbix Web 前端的默认用户名和密码如下:
用户名:
Admin密码:
zabbix
提示
默认密码为公开信息,请登录后立即在「用户设置 → 修改密码」中更改为强密码。

配置中文
登录 Zabbix 后,可将界面语言设置为中文。



故障排除与未竟事宜
Zabbix 运行过程中如果出现异常,可通过查看相关日志文件排查。本节同时列出了若干待完善的事项。
日志
Zabbix 的日志文件分布在以下路径。
代理:/var/log/zabbix/zabbix_agentd.log 文件
服务器端:/var/log/zabbix/zabbix_server.log 文件
PHP 相关错误:/var/log/nginx/error.log 文件
待解决
以下为若干待研究的问题:
中文显示乱码;
部分监控项未显示;
HTTP 等安全配置有待完善。
参考文献
FreeBSD Foundation. Monitor Your Hosts with Zabbix[EB/OL]. (2024-01)[2026-03-25]. https://freebsdfoundation.org/our-work/journal/browser-based-edition/networking-10th-anniversary/practical-ports-monitor-your-hosts-with-zabbix/. 提供了 FreeBSD 上 Zabbix 监控部署的完整实践指南。
最后更新于