全网独家: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=> \dxList of installed extensionsName     | Version |   Schema   |                                      Description                              -------------+---------+------------+-------------------------------------------------------------------------------
--------plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural languagetimescaledb | 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=> \dxList of installed extensionsName     | Version |   Schema   |                                      Description                              -------------+---------+------------+-------------------------------------------------------------------------------
--------plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural languagetimescaledb | 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 databasesName    |  Owner   | Encoding  | Collate | Ctype |   Access privileges   
-----------+----------+-----------+---------+-------+-----------------------postgres  | postgres | SQL_ASCII | C       | C     | template0 | postgres | SQL_ASCII | C       | C     | =c/postgres          +|          |           |         |       | postgres=CTc/postgrestemplate1 | postgres | SQL_ASCII | C       | C     | =c/postgres          +|          |           |         |       | postgres=CTc/postgreszabbix    | 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

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

 问题得到解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程控制 ─── linux第15课

目录 进程控制 1.进程创建 (fork前面讲过了) 写时拷贝 进程终止 进程退出场景 退出码 进程终止方法 进程控制 1.进程创建 (fork前面讲过了) 在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父…

常见的网络协议介绍

一、什么是网络协议 指的是通信双方的数据发送和接收顺序,数据的封装规则。 通俗解释:描述双方发送和接收的每个字节是按照什么规则。 二、TCP/IP体系的常用协议 (一)应用层 HTTP:超文本协议;指的是用来传输文本网页的协议&#…

Hive-07之企业级调优

⭐️⭐️⭐️⭐️hive的企业级调优 1、Fetch抓取 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算 例如:select * from score;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果…

华为云 | 快速搭建DeepSeek推理系统

DeepSeek(深度求索)作为一款国产AI大模型,凭借其高性能、低成本和多模态融合能力,在人工智能领域崛起,并在多个行业中展现出广泛的应用潜力。 如上所示,在华为云解决方案实践中,华为云提供的快速…

Spring Boot 3 整合 MinIO 实现分布式文件存储

引言 文件存储已成为一个做任何应用都不可回避的需求。传统的单机文件存储方案在面对大规模数据和高并发访问时往往力不从心,而分布式文件存储系统则提供了更好的解决方案。本篇文章我将基于Spring Boot 3 为大家讲解如何基于MinIO来实现分布式文件存储。 分布式存…

3月5日作业

代码作业: #!/bin/bash# 清空目录函数 safe_clear_dir() {local dir"$1"local name"$2"if [ -d "$dir" ]; thenwhile true; doread -p "检测到 $name 目录已存在,请选择操作: 1) 清空目录内容 2) 保留目…

达梦数据库关于参数PK_WITH_CLUSTER的改动分析

目录 1、PK_WITH_CLUSTER取值为0 2、PK_WITH_CLUSTER取值为1 达梦数据库的参数PK_WITH_CLUSTER在最近使用过程中发现与前期使用的版本存在差异,特此测试分析一下。具体哪个版本改动的暂未得知。 PK_WITH_CLUSTER,默认值为0,动态会话级参数。…

android11使用gpio口控制led状态灯

目录 一、简介 二、解决方法 A、底层驱动 B、上层调用 C、验证 一、简介 1、需求:这里是用2个gpio口来控制LED灯,开机时默认亮蓝灯,按开机键,休眠亮红灯,唤醒亮蓝灯。 原理图: 这里由于主板上电阻R63…

windows 利用nvm 管理node.js 2025最新版

1.首先在下载nvm 下载链接 2. 下载最新版本的nvm 3. 同意协议 注意:选择安装路径 之后一直下一步即可 可以取消勾选 open with Powershell 勾选后它会自动打开Powershell 这里选用cmd 输入以下命令查看是否安装成功 nvm version 查看已经安装的版本 我之前自…

深入浅出:UniApp 从入门到精通全指南

https://juejin.cn/post/7440119937644101684 uni-app官网 本文是关于 UniApp 从入门到精通的全指南,涵盖基础入门(环境搭建、创建项目、项目结构、编写运行)、核心概念与进阶知识(组件与开发、页面路由与导航、数据绑定与响应式…

MySQL ——数据的增删改查

一、DML语言 1.1 insert插入数据 语法:insert [into] 表名 [字段名] values(值列表); 插入一行数据 第一种:insert into file1(id,name,age) values (1,‘aa’,11); 第二种:insert into file1 values(1,‘aa’,11); 插入多行数…

【CF记录】贪心——A. Scrambled Scrabble

https://codeforces.com/contest/2045/problem/A 思路: 由于Y有两种选择,NG也是,那我们可以枚举以下情况:选i个Y做辅音,j个NG做辅音 然后贪心选择最长的即可,观察到S最长为5000,即使是也不会…

C语言【指针篇】(四)

前言:正文1. 字符指针变量2. 数组指针变量2.1 数组指针变量是什么?2.2 数组指针变量怎么初始化 3. 二维数组传参的本质4. 函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 两段有趣的代码4.3.1 typedef关键字 5. 函数指针数组6. 转移表 总结 前言&am…

React + TypeScript 实战指南:用类型守护你的组件

TypeScript 为 React 开发带来了强大的类型安全保障,这里解析常见的一些TS写法: 一、组件基础类型 1. 函数组件定义 // 显式声明 Props 类型并标注返回值 interface WelcomeProps {name: string;age?: number; // 可选属性 }const Welcome: React.FC…

【玩转正则表达式】将正则表达式中的分组(group)与替换进行结合使用

在文本处理和数据分析领域,正则表达式(Regular Expressions,简称regex)是一种功能强大的工具。它不仅能够帮助我们匹配和搜索字符串中的特定模式,还能通过分组(Grouping)和替换(Subs…

Flutter 学习之旅 之 flutter 不使用插件,简单实现一个 Toast 功能

Flutter 学习之旅 之 flutter 不使用插件,简单实现一个 Toast 功能 目录 Flutter 学习之旅 之 flutter 不使用插件,简单实现一个 Toast 功能 一、简单介绍 二、简单介绍 Toast 1. 确保正确配置 navigatorKey 2. 避免重复显示 Toast 3. 确保 Toast …

《OpenCV》——dlib(人脸应用实例)

文章目录 dlib库dlib库——人脸应用实例——表情识别dlib库——人脸应用实例——疲劳检测 dlib库 dlib库的基础用法介绍可以参考这篇文章:https://blog.csdn.net/lou0720/article/details/145968062?spm1011.2415.3001.5331,故此这篇文章只介绍dlib的人…

学习日记-250305

阅读论文:Leveraging Pedagogical Theories to Understand Student Learning Process with Graph-based Reasonable Knowledge Tracing ps:代码逻辑最后一点还没理顺,明天继续 4.2 Knowledge Memory & Knowledge Tracing 代码研究: 一般…

【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解

目录 一、前言 二、传统 PPT 制作问题 2.1 传统方式制作 PPT 2.2 AI 大模型辅助制作 PPT 2.3 适用场景对比分析 2.4 最佳实践与推荐 三、DeepSeek Kimi 高效制作PPT操作实践 3.1 Kimi 简介 3.2 DeepSeek Kimi 制作PPT优势 3.2.1 DeepSeek 优势 3.2.2 Kimi 制作PPT优…

【ESP-ADF】在 VSCode 安装 ESP-ADF 注意事项

1.检查网络 如果您在中国大陆安装,请使用魔法上网,避免无法 clone ESP-ADF 仓库。 2.VSCode 安装 ESP-ADF 在 VSCode 左侧活动栏选择 ESP-IDF:explorer,展开 advanced 并点击 Install ESP-ADF 然后会出现选择 ESP-ADF 安装目录。 如果出现…