Ad Widget

Collapse

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

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • wdtae
    Junior Member
    • Jul 2025
    • 4

    #1

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

    Добрый день.
    Zabbix-сервер версии 5.4.1 установлен на CentOS Stream release 8. Хочу zabbix обновить до 7-версии. Поиск показал, что необходимо через промежуточные версии заббикса и ОС.
    Ставлю на новый сервер ubuntu 20.04 (потому что остальные серверы на ubuntu, чтобы зоопарка ОС не было), почти аналогичную версию заббикса, т.е. 5.4.12 (другой не нашел). Со старого задампил базу, перенёс на новый сервер. В веб-интерфейсе всё ок, но там же и пишет, что сервер не запущен. Агент в системд тоже загрузился. В логе заббик-сервера пишет, что доступ запрещён:

    cat /etc/zabbix/zabbix_server.conf

    122505:20250721:132437.944 [Z3001] connection to database ‘zabbix’ failed: [1045] Access denied for user ‘zabbix_srv’@‘localhost’ (using password: YES)
    122505:20250721:132437.944 database is down: reconnecting in 10 seconds

    В zabbix_server.conf указал данные для пользователя со старой базы. Делегирование полных прав для пользователя zabbix_srv на базу zabbix в mysql ни к чему ни привели.


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

    Удалил базу zabbix, создал новую, естественно, сервер запустился. Пробовал перенести только некоторые таблицы из старой базы, например, хосты и пользователей, перенеслось корректно, т.е. сервер запускается, но это слишком долго и муторно будет каждую таблицу переносить. Что мешает запуску сервера при дампе базы целиком? Какая-то таблица некорректная/изменённая?
  • wdtae
    Junior Member
    • Jul 2025
    • 4

    #2
    Перенёс потаблично/группой таблиц - причиной такого поведения оказалась таблица item_rtdata.

    Дамп с оригинальной таблицы (новый сервер) без данных (только заголовок):
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

    --
    -- Table structure for table `item_rtdata`
    --

    DROP TABLE IF EXISTS `item_rtdata`;
    /*!40101 SET @saved_cs_client = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `item_rtdata` (
    `itemid` bigint(20) unsigned NOT NULL,
    `lastlogsize` bigint(20) unsigned NOT NULL DEFAULT 0,
    `state` int(11) NOT NULL DEFAULT 0,
    `mtime` int(11) NOT NULL DEFAULT 0,
    `error` varchar(2048) NOT NULL DEFAULT '',
    PRIMARY KEY (`itemid`),
    CONSTRAINT `c_item_rtdata_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    /*!40101 SET character_set_client = @saved_cs_client */;

    --
    -- Dumping data for table `item_rtdata`
    --

    LOCK TABLES `item_rtdata` WRITE;

    Дамп с таблицы со старого сервера без данных (только заголовок):

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!50503 SET NAMES utf8mb4 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

    --
    -- Table structure for table `item_rtdata`
    --

    DROP TABLE IF EXISTS `item_rtdata`;
    /*!40101 SET @saved_cs_client = @@character_set_client */;
    /*!50503 SET character_set_client = utf8mb4 */;
    CREATE TABLE `item_rtdata` (
    `itemid` bigint unsigned NOT NULL,
    `lastlogsize` bigint unsigned NOT NULL DEFAULT '0',
    `state` int NOT NULL DEFAULT '0',
    `mtime` int NOT NULL DEFAULT '0',
    `error` varchar(2048) COLLATE utf8_bin NOT NULL DEFAULT '',
    PRIMARY KEY (`itemid`),
    CONSTRAINT `c_item_rtdata_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    /*!40101 SET character_set_client = @saved_cs_client */;

    --
    -- Dumping data for table `item_rtdata`
    --

    LOCK TABLES `item_rtdata` WRITE;​

    Можно как-то изменить/привести в соответствие и загрузить данные из этой таблицы. Если правильно понял, эта таблица историческая. Без её старых данных сервре будет функционировать?

    Comment

    • wdtae
      Junior Member
      • Jul 2025
      • 4

      #3
      Вопрос решён, дело было не в базе.

      Comment

      • Pochinok
        Senior Member
        • Oct 2024
        • 114

        #4
        Originally posted by wdtae
        Вопрос решён, дело было не в базе.
        А можете сказать в чём в итоге была проблема?

        Comment

        • wdtae
          Junior Member
          • Jul 2025
          • 4

          #5
          Originally posted by Pochinok

          А можете сказать в чём в итоге была проблема?
          Дело было в размере кэша - установил в:
          CacheSize=256M
          ValueCacheSize=128M

          и всё загрузилось и запустилось.

          Comment

          Working...