当前位置: 首页 > news >正文

全网独家:zabbixV7版本容器服务器无法访问Postgres V17数据库的问题解决

近期将zabbix平台从V6.2.6升级到7.2.4,遇到问题“PostgresoL server is not available. Waiting 5seconds”,容器无法访问Postgres V17数据库,本文记录问题解决过程。

一、系统环境

1、数据库版本

数据库版本:postgres-17.4-timescale-2.17.2,如下:

#  psql -U zabbix  zabbix -h 192.168.128.111  
Password for user zabbix: 
psql (13.3, server 17.4)
WARNING: psql major version 13, server major version 17.
         Some psql features might not work.
Type "help" for help.

zabbix=> \dx
                                                List of installed extensions
    Name     | Version |   Schema   |                                      Description                              
        
-------------+---------+------------+-------------------------------------------------------------------------------
--------
 plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural language
 timescaledb | 2.17.2  | public     | Enables scalable inserts and complex queries for time-series data (Community E
dition)
(2 rows)

zabbix=> \q

2、zabbix服务器容器版本

zabbix/zabbix-web-apache-pgsql:centos-7.2.4
zabbix/zabbix-server-pgsql:centos-7.2.4

二、报错信息

zabbix服务器连接数据库报错:“PostgresoL server is not available. Waiting 5seconds”

三、问题分析

1、数据库版本是否兼容

 从zabbix官网,可以看到相关数据库版本在兼容清单的

support for PostgreSQL versions:- 17.X  

support for TimescaleDB versions: 2.17.X 

 2、测试数据库外部连接情况
#  psql -U zabbix  zabbix -h 192.168.128.111  
Password for user zabbix: 
psql (13.3, server 17.4)
WARNING: psql major version 13, server major version 17.
         Some psql features might not work.
Type "help" for help.

zabbix=> \dx
                                                List of installed extensions
    Name     | Version |   Schema   |                                      Description                              
        
-------------+---------+------------+-------------------------------------------------------------------------------
--------
 plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural language
 timescaledb | 2.17.2  | public     | Enables scalable inserts and complex queries for time-series data (Community E
dition)
(2 rows)

zabbix=> \q

 可以看到,数据库外部访问正常,可以查询到库的信息,可以排除数据库自身的问题。

3、问题定位

经过本人全面检查,最终查到本问题是因为zabbix服务器官方容器包的问题。

原因为zabbix使用--list来检查数据库服务是否存活,在容器外本地使用该命令,反馈信息如下:

# psql -U zabbix  zabbix -h 192.168.128.111 --list
Password for user zabbix: 
                             List of databases
   Name    |  Owner   | Encoding  | Collate | Ctype |   Access privileges   
-----------+----------+-----------+---------+-------+-----------------------
 postgres  | postgres | SQL_ASCII | C       | C     | 
 template0 | postgres | SQL_ASCII | C       | C     | =c/postgres          +
           |          |           |         |       | postgres=CTc/postgres
 template1 | postgres | SQL_ASCII | C       | C     | =c/postgres          +
           |          |           |         |       | postgres=CTc/postgres
 zabbix    | zabbix   | UTF8      | C       | C     | 
(4 rows)

登入zabbix服务器容器,可以看到容器内封装的PostgreSQL客户端版本为16.6,该命令执行反馈信息报错“column d.daticulocale does not exist”:

# docker exec -it zbxsrv /bin/bash
bash-5.1$ psql -V
psql (PostgreSQL) 16.6
bash-5.1$ psql -h 192.168.128.111 -U zabbix -d zabbix --list
Password for user zabbix: 
psql: ERROR:  column d.daticulocale does not exist
LINE 8:   d.daticulocale as "ICU Locale",
          ^
HINT:  Perhaps you meant to reference the column "d.datlocale".
bash-5.1$ cat /etc/centos-release 
CentOS Stream release 9

 且zabbix官方Centos、ubuntu系统容器包都存在此问题。

四、解决办法

使用zabbix官方alpine系统平台的服务器容器镜像。

zabbix/zabbix-server-pgsql:alpine-7.2-latestalpine-7.2-latest(目前实际是7.2.4)

zabbix/zabbix-web-apache-pgsql:alpine-7.2.4

如下:

[root@localhost ~]# docker pull zabbix/zabbix-server-pgsql:alpine-7.2-latest
alpine-7.2-latest: Pulling from zabbix/zabbix-server-pgsql
f18232174bc9: Already exists 
145118636fb4: Pull complete 
2e36442cfc45: Pull complete 
90bbfafe739a: Pull complete 
ff10713dcc30: Pull complete 
39a26e625a05: Pull complete 
4f4fb700ef54: Pull complete 
db0d9b0bdf27: Pull complete 
Digest: sha256:c8db24a3fc509ea4b1a3d9f4ef197e1ee46f2656f586c3c5f9014ca6de61804b
Status: Downloaded newer image for zabbix/zabbix-server-pgsql:alpine-7.2-latest
docker.io/zabbix/zabbix-server-pgsql:alpine-7.2-latest
[root@localhost ~]# docker pull zabbix/zabbix-web-apache-pgsql:alpine-7.2.4
alpine-7.2.4: Pulling from zabbix/zabbix-web-apache-pgsql
f18232174bc9: Already exists 
0068142ce15f: Pull complete 
a2c25e127afd: Pull complete 
0f6189e461cd: Pull complete 
4f4fb700ef54: Pull complete 
5d085b3ca5ae: Pull complete 
Digest: sha256:3e91ca4aad3bd051ed33cdfa343fb9711b9dd5a33518798926af862a9bae4c41
Status: Downloaded newer image for zabbix/zabbix-web-apache-pgsql:alpine-7.2.4
docker.io/zabbix/zabbix-web-apache-pgsql:alpine-7.2.4

运行容器,可以看到,服务器已正常连接:

 问题得到解决。

相关文章:

  • 启智平台华为昇腾910B 运行DeepSeek Janus-Pro-7/1B
  • 高并发应用分层架构
  • C#调用Ni板卡进行实现采集任务(模拟量输入输出)示例1
  • 分布式事务【整理、总结】
  • 请解释 HTTP 中的状态码,常见的状态码有哪些?
  • C++ 学习(八)(模板,可变参数模板,模板专业化(完整模板专业化,部分模板专业化),类型 Traits,SFINAE(替换失败不是错误),)
  • MyBatis框架之映射文件加载方式
  • Notepad++ 8.6.7 安装与配置全攻略(Windows平台)
  • Python-04BeautifulSoup网络爬虫
  • IO学习day3
  • 【Java 基础】-- 设计模式
  • SLAM评估工具安装及使用EVO(Ubuntu20.04安装evo)--缺少 onnx 库还有Pandas 版本不兼容解决
  • C/C++输入输出(1)
  • huggingface镜像站hf-mirror的各大AI模型文件下载
  • 【VS2019】 .Net Core 3.1 无法打开项目文件
  • 前端基础之列表渲染
  • “沂路畅通”便利服务平台:赋能同城物流,构建高效畅通的货运生态
  • Java 日期和时间
  • Vue+el-upload配置minIO实现大文件的切片并发上传、上传进度展示、失败重试功能
  • CSS定位详解上
  • 手机访问pc网站跳转/建立网站的详细步骤
  • 惠州建设局网站/论坛seo设置
  • 建网页和网站的区别/十大禁止安装应用入口
  • 文案策划的网站/网络推广平台都有哪些
  • wordpress后台的使用技巧/在线seo
  • 网站开发drupal/推广计划怎么做