LINUX.ORG.RU
ФорумAdmin

Перенос Zabbix на другой сервер с последующим обновлением

 , ,


0

1

Добрый день.

Zabbix-сервер версии 5.4.1 установлен на CentOS Stream release 8. Хочу zabbix обновить до 7-версии. Поиск показал, что необходимо через промежуточные версии заббикса и ОС.

Ставлю на новый сервер ubuntu 20.04 (потому что остальные серверы на ubuntu, чтобы зоопарка ОС не было), аналогичную версию заббикса, т.е. 5.4. Со старого задампил базу, перенёс на новый сервер. В веб-интерфейсе всё ок, т.е. к базе подключился. Сервер и агент в системд тоже загрузились, но в логе заббик-сервера пишет, что доступ запрещён: cat /etc/zabbix/zabbix_server.conf 122505:20250721:132437.944 [Z3001] connection to database ‘zabbix’ failed: [1045] Access denied for user ‘zabbix’@‘localhost’ (using password: YES) 122505:20250721:132437.944 database is down: reconnecting in 10 seconds

Самое интересное, что пароль в zabbix_server.conf в строке DBPassword принимает только тот, который был на старом сервере или вообще его можно закоментировать, только при этих условиях сервис грузится. Делегирование полных прав для пользователя zabbix на базу zabbix в mysql ни к чему ни привели.

На старом сервере в mysql есть пользователи zabbix_srv и zabbix_web, создание аналогичных пользователей на новом сервере с делегированием полных прав приводят к одному и тому же результату:

Access denied for user ‘тут любой юзер’@‘localhost’

В чём может быть проблема?



Последнее исправление: wdtae (всего исправлений: 3)

localhost

Шо, опять?

Забудьте вы про этот алиас уже, есть только 127.0.0.1, никакого localhost не существует!


И тег mysql стоит добавить, чтобы скастовать тех кто в теме.

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от wdtae

Не совсем понял. Где это исправить?

Там, где проявляется. Если это говорит MySQL, то в нём, если в Zabbix — то поправить путь к базе данных, заменив localhost на 127.0.0.1. С точки зрения баз данных localhost и 127.0.0.1 это разные хосты, даже если localhost ссылается на 127.0.0.1, никто не мешает заменить в /etc/hosts на любой другой адрес, даже WAN, и тогда случится ой.

задампил базу, перенёс на новый сервер

Не знаю как у MySQL, а в PostgreSQL разрешения находятся в отдельном файле и с дампом баз данных не переносятся. Это всё что я могу сказать по этому поводу.

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

Нет, это не помогает.

В конф заббикса:

etc/zabbix/zabbix_server.conf:

DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=password

Можно DBHost вообще закомментировать - результат тот же.

DBPassword только пароль со старого сервера, иначе сервис системд вообще не запускается, несмотря на то, что пароль на самом деле другой. А насчет имени хоста. На старом сервере:

mysql> SELECT user, host FROM mysql.user; +——————+———–+ | user | host | +——————+———–+ | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | | zabbix_srv | localhost | | zabbix_web | localhost | +——————+———–+

На новом:

MariaDB [(none)]> SELECT user, host FROM mysql.user; +————+———–+ | user | host | +————+———–+ | root | localhost | | zabbix | localhost | | zabbix_srv | localhost | +————+———–+

Везде локалхост.

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

DBHost=localhost

Ну вот оно и долбится в базу по localhost, а нормальные базы по умолчанию разрешают доступ только с 127.0.0.1/32.

С MariaDB/MySQL жди кого-то кто более компетентен (тег ты добавил, так что остаётся только ждать).

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

Само собой создавал:

create database zabbix character set utf8 collate utf8_bin; create user zabbix@localhost identified by ‘321’; grant all privileges on zabbix.* to zabbix@localhost;

После чего загрузил данный со старого сервера.

Также добавил:

create user zabbix@127.0.0.1 identified by ‘321’; grant all privileges on zabbix.* to zabbix@127.0.0.1;

А ошибка та же:

Access denied for user ‘zabbix’@‘localhost’ (using password: YES)

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

После чего загрузил данный со старого сервера.

Ну это с юзерскими данными и локалхост?

P.S. после добавление юзера и прав делают обновление … ну я думаю Вы сделали. Ну или тупо мю перегрузили …

Самое интересное, что пароль в zabbix_server.conf в строке DBPassword принимает только тот, который был на старом сервере или вообще его можно закоментировать, только при этих условиях сервис грузится.

P.P.S. Вы же дампили только базу заббикс, юзера в мю нужно делать 1 в 1 как на старом серваке …

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 3)
Ответ на: комментарий от skyman

Само собой.

Пользователь zabbix: mysql -h localhost -u zabbix -p zabbix

MariaDB [zabbix]> show grants ; +—————————————————————————————————————+ | Grants for zabbix@localhost | +—————————————————————————————————————+ | GRANT USAGE ON . TO zabbix@localhost IDENTIFIED BY PASSWORD ‘*7297C3E22DEB91303FC493303A8158AD4231F486’ | | GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost | +—————————————————————————————————————+ 2 rows in set (0,000 sec)

Пользователь со старого сервера zabbix_srv с паролем тоже со старого: mysql -h localhost -u zabbix_srv -p zabbix

MariaDB [zabbix]> show grants ; +——————————————————————————————————————-+ | Grants for zabbix_srv@localhost | +——————————————————————————————————————-+ | GRANT USAGE ON . TO zabbix_srv@localhost IDENTIFIED BY PASSWORD ‘*D219F080054BC9511119097D81AE0780BDDB9074’ | | GRANT ALL PRIVILEGES ON zabbix.* TO zabbix_srv@localhost | +——————————————————————————————————————-+ 2 rows in set (0,000 sec)

Теперь возвращаемся к файлу конфигурации заббикс /etc/zabbix/zabbix_server.conf, вписываем туда пользователя со старого сервера

DBuser=zabbix_srv

и его же старый пароль,

DBPassword=пароль zabbix_srv

перезапускаем сервисы:

systemctl restart zabbix-server zabbix-agent

и получаем незапущенный сервис сервера, но агент при этом запущен.

Возвращаемся к конфигу, меняем пользователя на:

DBuser=zabbix

но ПАРОЛЬ ОСТАВЛЯЕМ ОТ СТАРОГО, т.е. от zabbix_srv, только тогда сервис zabbix-server запустится, иначе - НЕТ.

Вот это совсем непонятно.

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

Вы же дампили только базу заббикс, юзера в мю нужно делать 1 в 1 как на старом серваке

Так и делал, добавил zabbix_srv с паролем от старого сервера с предоставлением всех прав на базу zabbix.

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

Тему не читал, но, чувак: уже которое сообщение ты постишь игнорируя правила разметки markdown, из-за чего всё вытягивается в одну нечитаемую колбасу.

Это банально неуважение к тем, кто пытается тебе помочь: люди вынуждены пытаться прочитать таблицу, которую ты превратил в одну длинную строку с мешаниной спецсимволов.

Притом под каждым сообщением есть ссылка на краткие правила, доступные любому, о том, как можно красиво оформить, например, обернув вывод таблиц в тройные обратные кавычки.

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

Прошу прощения, действительно неуважение с моей стороны.

MariaDB [zabbix]> show grants ;
+-------------------------------------------------------------------------------------------------------------------+
| Grants for zabbix_srv@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `zabbix_srv`@`localhost` IDENTIFIED BY PASSWORD '*D219F080054BC9511119097D81AE0780BDDB9074' |
| GRANT ALL PRIVILEGES ON `zabbix`.* TO `zabbix_srv`@`localhost`                                                    |
+-------------------------------------------------------------------------------------------------------------------+

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

Спасибо, уже удалил всё. Заново создал базу, запустилось и подключилось, т.е. всё ок. Сдамплю и проверю уже заполненную базу.

wdtae
() автор топика
Последнее исправление: wdtae (всего исправлений: 1)
Ответ на: комментарий от wdtae

Разная структура БД, хз почему. Версия БД одинаковая?

Как там …my.cnf одинаковый? php.ini? Когда я последний раз юзал zabbix он был на пхп.

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 1)
Ответ на: комментарий от mx__

Нашел причину такого поведения - эта таблица item_rtdata. Может попробовать выгрузить (не дампом) данные в файл (таблицу, xml И пр.) и уже с него загрузить в соответствующую базу на новом сервере?

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