LINUX.ORG.RU

Zabbix «Error connecting to database» ошибка в web интерфейсе

 


0

1

Здравствуйте. Пытаюсь настроить Zabbix 6.2.3 c разделенной архитектурой (БД и Zabbix сервер на разных ВМ) Удалось развернуть такую сборку 6.2.3 + OL9 + Postgresql 13.7 + Nginx, все заработало хорошо. Далее решил подключить Postgresql 14 с расширением timescaledb 2.7.0.

Для этого пересоздал ВМ с БД, а заббикс сервер, не трогал. Развернул БД+timescale, и изменил параметр «DBHost=» в конфиге заббикс сервера так как ip c машиной где база данных изменился.

После этого фронтэнд нормально не запускается - сразу появляется ошибка «Database error Error connecting to database» Служба zabbix-server запускается, в логах ошибок нет.

Службы nginx, php-fpm запущенны, postgresql-14 на другой машине запущен.

Смущает отсутствие ошибок в логах заббикса, соответственно ему ничего не мешает, проблема именно с веб мордой.

Нужно ли теперь переустанавливать abbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf?, так как изначально веб морда настраивалась под другую БД (ip) при первом запуске.

Может еще что то не так в конфигах:

pg_hba.conf

local all all peer
host all all 127.0.0.1/32 scram-sha-256
host all all 192.168.56.0/24 md5
host zabbix zabbix 192.168.56.107/32 md5
host all all ::1/128 scram-sha-256
local replication all md5
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256

postgressql.conf

listen_addresses = '*'
port = 5432
max-connections = 100

/etc/nginx/conf.d/zabbix.conf

server {
          listen 80;
          server_name 192.168.56.107;

Больше никаких конфигов я не менял, во всяком случае при инсталляции с предыдущей версией БД и все работало

Ответ на: комментарий от AVL2

Это просто тестовая установка с нуля. Я не делал никаких миграций БД и бэкапов, потому что не настраивал никаких новых итемов в заббиксе (возможно там есть какойто сбор данных по умолчанию я не знаю), я просто Изначально когда была первая БД, сделал начальную настройку фронт энда, ввел ip БД, имя пользователя, зашел по Admin, убедился что нет ошибок и фронт работает, все это закрыл, пересоздал ВМ и установил новую БД, соеденил в конфиге БД + Сервер и теперь эта ошибка.

Silver_47
() автор топика
Ответ на: комментарий от targitaj

Да создал естественно на новом сервере новую базу, как положено БД zabbix, пользователя zabbix, импортировал схему таблиц для zabbix. Единственное отличие что теперь это Postgresql 14.x + timescaledb 2.7, а на старой виртуалке была просто Postgresql 13.7

Silver_47
() автор топика
Ответ на: комментарий от Silver_47

Я немного помониторил логи, выключая и запуская демон zabbix-server, и службу БД Выключаем бд, и при этом видим что в логе заббикс появляется ошибка подключения

2022-10-11 20:52:47.980 MSK [1087] ВАЖНО:  закрытие подключения по команде администратора
2022-10-11 20:52:47.981 MSK [1086] ВАЖНО:  закрытие подключения по команде администратора
2022-10-11 20:52:47.983 MSK [1094] ВАЖНО:  закрытие подключения по команде администратора
2022-10-11 20:52:47.984 MSK [2312] ВАЖНО:  закрытие подключения по команде администратора
2022-10-11 20:52:48.012 MSK [871] СООБЩЕНИЕ:  фоновый процесс "logical replication launcher" (PID 1054) завершился с кодом выхода 1
2022-10-11 20:52:48.012 MSK [871] СООБЩЕНИЕ:  фоновый процесс "TimescaleDB Background Worker Launcher" (PID 1053) завершился с кодом выхода 1
2022-10-11 20:52:48.016 MSK [871] СООБЩЕНИЕ:  фоновый процесс "TimescaleDB Background Worker Scheduler" (PID 1056) завершился с кодом выхода 1
2022-10-11 20:52:48.017 MSK [1048] СООБЩЕНИЕ:  выключение
2022-10-11 20:52:48.056 MSK [2361] ВАЖНО:  система баз данных останавливается
2022-10-11 20:52:48.063 MSK [2362] ВАЖНО:  система баз данных останавливается
2022-10-11 20:52:48.068 MSK [871] СООБЩЕНИЕ:  система БД выключена

заббикс:

 2092:20221011:204927.028 server #40 started [history poller #2]
  2093:20221011:204927.035 server #41 started [history poller #3]
  2094:20221011:204927.037 server #42 started [history poller #4]
  2095:20221011:204927.042 server #43 started [history poller #5]
  2098:20221011:204927.043 server #46 started [odbc poller #1]
  2097:20221011:204927.045 server #45 started [trigger housekeeper #1]
  2096:20221011:204927.046 server #44 started [availability manager #1]
[root@Oracle9Server zabbix]# tail -n 100 zabbix_server.log
  2073:20221011:205259.023 database is down: reconnecting in 10 seconds
  2052:20221011:205259.679 [Z3001] connection to database 'zabbix' failed: [0] could not connect to server: Connection refused
        Is the server running on host "192.168.56.108" and accepting
        TCP/IP connections on port 5432?

  2071:20221011:205300.025 [Z3001] connection to database 'zabbix' failed: [0] could not connect to server: Connection refused
        Is the server running on host "192.168.56.108" and accepting
        TCP/IP connections on port 5432?

Далее я запускаю постгрес и опять смотрю логи:


2022-10-11 20:58:17.997 MSK [2374] СООБЩЕНИЕ:  запускается PostgreSQL 14.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9), 64-bit
2022-10-11 20:58:17.998 MSK [2374] СООБЩЕНИЕ:  для приёма подключений по адресу IPv4 "0.0.0.0" открыт порт 5432
2022-10-11 20:58:17.998 MSK [2374] СООБЩЕНИЕ:  для приёма подключений по адресу IPv6 "::" открыт порт 5432
2022-10-11 20:58:18.000 MSK [2374] СООБЩЕНИЕ:  для приёма подключений открыт Unix-сокет "/var/run/postgresql/.s.PGSQL.5432"
2022-10-11 20:58:18.005 MSK [2374] СООБЩЕНИЕ:  для приёма подключений открыт Unix-сокет "/tmp/.s.PGSQL.5432"
2022-10-11 20:58:18.008 MSK [2376] СООБЩЕНИЕ:  система БД была выключена: 2022-10-11 20:52:48 MSK
2022-10-11 20:58:18.014 MSK [2374] СООБЩЕНИЕ:  система БД готова принимать подключения
2022-10-11 20:58:18.021 MSK [2382] СООБЩЕНИЕ:  TimescaleDB background worker launcher connected to shared catalogs

Заббикс теперь ошибка:

  2097:20221011:205817.695 database is down: reconnecting in 10 seconds
  2090:20221011:205818.126 database connection re-established
  2070:20221011:205818.134 database connection re-established
  2070:20221011:205818.139 item "Zabbix server:zabbix[cluster,discovery,nodes]" became not                                                                                                   supported: database error
  2074:20221011:205818.729 database connection re-established
  2084:20221011:205819.000 database connection re-established
  2073:20221011:205819.083 database connection re-established
  2071:20221011:205820.084 database connection re-established
  2067:20221011:205820.495 database connection re-established
  2077:20221011:205820.699 database connection re-established
  2072:20221011:205821.089 database connection re-established
  2085:20221011:205822.015 database connection re-established
  2068:20221011:205822.384 database connection re-established
  2087:20221011:205824.037 database connection re-established
  2065:20221011:205825.700 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ВАЖНО:  закрытие под                                                                                                  ключения по команде администратора
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
 [select hostid,key_,evaltype,formula,lifetime from items where itemid=39807]
  2088:20221011:205825.986 database connection re-established
  2073:20221011:205826.144 item "Zabbix server:zabbix[cluster,discovery,nodes]" became supp                                                                                                  orted
  2053:20221011:205827.094 database connection re-established
  2054:20221011:205827.397 database connection re-established
  2069:20221011:205827.686 database connection re-established
  2097:20221011:205827.721 database connection re-established
  2055:20221011:205835.201 database connection re-established
  2064:20221011:205925.778 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ВАЖНО:  закрытие под                                                                                                  ключения по команде администратора
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
 [select hostid,key_,evaltype,formula,lifetime from items where itemid=39807]

Затем я перезапускаю zabbix-server,все ошибки пропадают:

 2051:20221011:210455.634 Zabbix Server stopped. Zabbix 6.2.3 (revision 98ee88fc19d).
  2299:20221011:210455.646 Starting Zabbix Server. Zabbix 6.2.3 (revision 98ee88fc19d).
  2299:20221011:210455.646 ****** Enabled features ******
  2299:20221011:210455.646 SNMP monitoring:           YES
  2299:20221011:210455.646 IPMI monitoring:           YES
  2299:20221011:210455.646 Web monitoring:            YES
  2299:20221011:210455.646 VMware monitoring:         YES
  2299:20221011:210455.646 SMTP authentication:       YES
  2299:20221011:210455.646 ODBC:                      YES
  2299:20221011:210455.646 SSH support:               YES
  2299:20221011:210455.646 IPv6 support:              YES
  2299:20221011:210455.646 TLS support:               YES
  2299:20221011:210455.646 ******************************
  2299:20221011:210455.646 using configuration file: /etc/zabbix/zabbix_server.conf
  2299:20221011:210455.785 current database version (mandatory/optional): 06020000/06020002
  2299:20221011:210455.785 required mandatory version: 06020000
  2300:20221011:210455.874 starting HA manager
  2300:20221011:210455.905 HA manager started in active mode
  2299:20221011:210455.906 server #0 started [main process]
  2302:20221011:210455.907 server #2 started [configuration syncer #1]
  2301:20221011:210455.907 server #1 started [service manager #1]
  2307:20221011:210456.162 server #7 started [preprocessing manager #1]
Silver_47
() автор топика
Ответ на: комментарий от Silver_47

И еще через терминал psql c сервера заббикс подключился к бд забикса без проблем, используя тот же пароль из конфига забикса

[root@Oracle9Server zabbix]# psql -U zabbix -h 192.168.56.108 -d zabbix
Пароль пользователя zabbix:
psql (13.7, сервер 14.5)
ПРЕДУПРЕЖДЕНИЕ: psql имеет базовую версию 13, а сервер - 14.
                Часть функций psql может не работать.
Введите "help", чтобы получить справку.

zabbix=> \d
                          Список отношений
 Схема  |            Имя             |        Тип         | Владелец
--------+----------------------------+--------------------+----------
 public | acknowledges               | таблица            | zabbix
 public | actions                    | таблица            | zabbix
 public | alerts                     | таблица            | zabbix
 public | auditlog                   | таблица            | zabbix
 public | autoreg_host               | таблица            | zabbix
 public | changelog                  | таблица            | zabbix
 public | changelog_changelogid_seq  | последовательность | zabbix
 public | conditions                 | таблица            | zabbix
 public | config                     | таблица            | zabbix
Silver_47
() автор топика

Почитай документацию по заббикс, он работает не со всеми версиями ,timescaledb. Официально поддерживается более младшая версия timescaledb, скорее всего.

Но думаю возможно поставить опцию для игнорирования версии timescaledb.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Спасибо за ответ, максимальная версия поддерживаемая - 2.7.0 У меня такая и есть

[root@Oracle9BD2 pgsql]# dnf list installed | grep timescaledb
timescaledb-2-loader-postgresql-14.x86_64 2.7.0-0.el8                         @@commandline
timescaledb-2-postgresql-14.x86_64        2.7.0-0.el8                         @@commandline
timescaledb-tools.x86_64                  0.14.1-0.el8 
Silver_47
() автор топика
Ответ на: комментарий от Silver_47

Извините, мимо проходил в поисках во что бы поиграть.

Вот это:

2097:20221011:205817.695 database is down: reconnecting in 10 seconds
  2090:20221011:205818.126 database connection re-established
  2070:20221011:205818.134 database connection re-established
По моему странно выглядит. Обещал же 10 секунд ждать, а сам флудит попытками соединений в сотых долях секунды. Будь я ПГ - я б удивился на кой ляд столько запросов на подключение и схлопнулся бы на всякий случай.

У вас на этой машине sleep() точно работает?

Там по идее zbx_sleep(ZBX_DB_WAIT_DOWN) должен вызываться, который в линуксах простой sleep().

Не может быть, что на этой машине что-то с таймером не то? HPET не сломался?

Toxo2 ★★★
()
Ответ на: комментарий от targitaj

Я решил проблему, оказывается при подключении другой БД, (не той которая настраивалась при настройке WEB), необходимо внести изменения в конфиге zabbix.conf.php (я так понимаю он изначально создается автоматически при введени настроек,при первоначальном запуске веб морды) Вот эти параметры должны соответствовать тому что в конфигурации сервера забикс $DB[‘TYPE’]= ''; $DB[‘SERVER’]= ''; $DB[‘PORT’]= ''; $DB[‘DATABASE’]= ''; $DB[‘USER’]= ''; $DB[‘PASSWORD’]= ''; // Schema name. Used for PostgreSQL. $DB[‘SCHEMA’]= '';

Однако timscaledb расширение у меня так и не заработало, соответствующие параметры сжатия в настройках Заббикса не появилось: Сжатие истории и динамики изменений Включить сжатие Сжатие записей старше чем: 7d

буду дальше ковырять, наверное переустановлю Постгрес и timescale, скорее всего не соблюдаю правильный порядок установки и настройки (знать бы правильный)

Silver_47
() автор топика