全網獨家: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.pswp.cn/news/896994.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896994.shtml
英文地址,請注明出處:http://en.pswp.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 安裝目錄。 如果出現…