一、环境准备(适用于新安装场景)
-
安装PostgreSQL数据库
# CentOS 8示例(参考网页[7]) sudo dnf install postgresql15-server postgresql15-contrib sudo /usr/pgsql-15/bin/postgresql-15-setup initdb sudo systemctl enable postgresql-15 --now
-
创建Zabbix专用账户
CREATE DATABASE zabbix WITH ENCODING='UTF8'; CREATE USER zabbix WITH PASSWORD 'StrongPassword@123'; GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;
二、Zabbix服务端配置
-
安装Zabbix组件
# 添加官方仓库(参考网页[7]) rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-release-7.0-1.el8.noarch.rpm # 安装核心组件 sudo dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-apache-conf
-
修改数据库配置
编辑/etc/zabbix/zabbix_server.conf
:DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=StrongPassword@123 DBPort=5432 # 非默认端口时需指定
三、数据库初始化
-
导入表结构
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
-
验证表创建
echo "SELECT count(*) FROM information_schema.tables WHERE table_schema='public'" | psql -U zabbix -d zabbix # 正常应输出 200+ 的数值
四、Web界面配置
-
PHP时区设置
修改/etc/php-fpm.d/zabbix.conf
:php_value[date.timezone] = Asia/Shanghai # 参考网页[4]
-
Web配置文件
复制并编辑/etc/zabbix/web/zabbix.conf.php
:$DB['TYPE'] = 'POSTGRESQL'; $DB['SERVER'] = 'localhost'; $DB['PORT'] = '0'; // 使用默认5432时填0 $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'StrongPassword@123';
五、安全加固
-
SELinux策略调整
sudo setsebool -P httpd_can_connect_zabbix=1 # 参考网页[7] sudo setsebool -P httpd_can_network_connect_db=1
-
防火墙规则
sudo firewall-cmd --permanent --add-service={postgresql,http} sudo firewall-cmd --reload
六、服务启动验证
sudo systemctl restart zabbix-server httpd postgresql-15
sudo tail -f /var/log/zabbix/zabbix_server.log # 观察无报错信息
七、常见问题排查
-
连接超时
- 检查PostgreSQL的
pg_hba.conf
文件,确保有host all all 127.0.0.1/32 md5
规则(参考网页[5])
- 检查PostgreSQL的
-
权限不足
- 确认用户zabbix拥有数据库的CONNECT和CREATE权限
- 执行
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO zabbix;
-
字符集异常
- 重建数据库时指定编码:
CREATE DATABASE zabbix WITH ENCODING 'UTF8' LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';
- 重建数据库时指定编码:
扩展建议:对于生产环境,建议配置PostgreSQL连接池(如pgBouncer)并开启Zabbix的TimescaleDB扩展以优化历史数据存储(参考网页[3]的新特性说明)。
最佳实践总结:
- 推荐使用Zabbix 7.0 LTS + PostgreSQL 15组合,可获得最佳性能和新功能支持
- 使用
pg_stat_statements
扩展监控数据库性能(需在postgresql.conf中配置) - 定期执行
VACUUM ANALYZE
维护数据库健康