Ad Widget

Collapse

Обновление zabbix 5.0 до 7.2

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • unknowndef
    Junior Member
    • Oct 2024
    • 6

    #1

    Обновление zabbix 5.0 до 7.2

    Добрый день, прошу помощи.
    был zabbix 5.0 на centos , поставил с нуля на debian12 zabbix 7.2 запустил с чистой базой, все работает.
    Начал процесс востановления старой базы zabbix (только базы zabbix), востановление завершено успешно. база весит 140GB
    В веб интерфейсе забикса сразу увидел ошибку:
    Code:
    Database error
    The Zabbix database version does not match current requirements. Your database version: 5000000. Required version: 7020000. Please contact your system administrator.
    Retry
    Далее начал пробовать все варианты конвертации базы какие есть в сети, так же консультировался в grok , попытки починить ошибки из /var/log/zabbix/zabbix_server.log особого эфекта не давали.
    Ниже список ошибок какие следовали по ходу их исправлений:

    Code:
    452.922 using configuration file: /etc/zabbix/zabbix_server.conf 452.927 current database version (mandatory/optional): 05000000/05000007 452.927 required mandatory version: 07020000
    452.927 mandatory patches were found
    [23005] query failed: [1054] Unknown column 'ha_failover_delay' in 'SELECT' [select unix_timestamp (),ha_failover_delay from config]
    cannot retrieve database time
    452.927 Zabbix Server stopped. Zabbix 7.2.9 (revision 7cf2aafa415).
    
    [23005] query failed: [1050] Table 'item_parameter' already exists [create table item_parameter ( `item_parameterid bigint unsigned not null, itemid bigint unsigned not null,
    `name varchar (255) default not null,
    `value varchar (2048) default
    primary key (item_parameterid)
    ) engine-innodb]
    not null,
    6726:20250630:102412.450 database upgrade failed on patch 05010049, exiting in 10 seconds
    
    starting automatic database upgrade
    [23005] query failed: [1146] Table 'zabbix.item_parameter' doesn't exist [alter table item_parameter add constraint c_item_parameter 1 foreign key (itemid) references items (itemid) on delete cascade] 14013:20250630:110834.940 database upgrade failed on patch 05010051, exiting in 10 seconds
    
    [Z3005] query failed: [1452] Cannot add or update a child row: a foreign key constraint fails (`zabbix` #sql-alter-453c-5e`, CONSTRAI NT 'c_item_parameter 1 FOREIGN KEY ('itemid') REFERENCES items (itemid) ON DELETE CASCADE) [alter table item_parameter add constraint c_item_parameter_1 f oreign key (itemid') references items ('itemid) on delete cascade]
    
    
    [Z3005] query failed: [1050] Table 'role' already exists [create table role ( roleid bigint unsigned not null,
    name varchar (255) default "not null,
    type integer default '0' not null,
    'readonly integer default '0' not null,
    primary key (roleid)
    ) engine-innodb]​
    Направьте на правильный путь... кажется я в тупике
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Originally posted by unknowndef
    Добрый день, прошу помощи.
    был zabbix 5.0 на centos , поставил с нуля на debian12 zabbix 7.2 запустил с чистой базой, все работает.
    Начал процесс востановления старой базы zabbix (только базы zabbix), востановление завершено успешно. база весит 140GB
    [...]
    Направьте на правильный путь... кажется я в тупике
    Обычно если ничего не получается, то читают инструкцию
    Вот ссылка на русский перевод документации по версии 7.0 (в версии 7.2 в этой части ничего принципиально нового нет, просто она не переведена).

    В двух словах:
    • после установки новой версии - останавливаем там сервер Zabbix и веб-интерфейс, чтобы не было обращений к базе.
    • восстанавливаем базу со старой версии.
    • запускаем процесс сервера Zabbix. Он обращается к базе, видит, что она от старой версии Zabbix'а, и вносит в неё необходимые изменения. Процесс конвертации базы можно отслеживать по лог-файлу сервера (zabbix_server.log).
    • только после успешной конвертации базы можно запускать веб-интерфейс.
    • если конвертация базы где-то споткнулась, то остановиться и разобраться с этой проблемой.

    Comment

    • unknowndef
      Junior Member
      • Oct 2024
      • 6

      #3
      Originally posted by Kos
      [*]если конвертация базы где-то споткнулась, то остановиться и разобраться с этой проблемой.[/LIST]
      Я делал все так как написано, процесс конвертации прерывается на тех ошибках что я написал внизу поста. именно по этому пришел сюда за помощью.
      База используется mysql(Maria)

      Проблема в логе /var/log/zabbix/zabbix_server.log на этапе обновления(Самая первая ошибка которая возникает при первом запуске процесса сервера zabbix) :
      Code:
      .495 Starting Zabbix Server. Zabbix 7.2.9 (revision 7cf2aafa415). .496 ****** Enabled features ******
      .496 SNMP monitoring:YES
      .496 IPMI monitoring:YES
      .496 Web monitoring:YES
      .496 VMware monitoring:YES
      .496 SMTP authentication:YES
      .496 ODBC:YES
      .496 SSH support:YES
      .496 IPv6 support:YES
      .496 TLS support:YES
      .496 **************
      .496 using configuration file: /etc/zabbix/zabbix_server.conf
      .504 current database version (mandatory/optional): 05000000/05000007
      .504 required mandatory version: 07020000 .504 mandatory patches were found
      .504 [23005] query failed: [1054] Unknown column 'ha_failover_delay' in 'SELECT' [select unix_timestamp (),ha_failover_dela y from config]
      .504 cannot retrieve database time
      .504 Zabbix Server stopped. Zabbix 7.2.9 (revision 7cf2aafa415).

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        Что-то сдаётся мне, что вы что-то недоговариваете...

        При нормальном старте сервера он в свой лог сначала пишет запись "Starting Zabbix Server" с указанием версии, потом - "шапку" с перечислением "фич", которые скомпилированы или нет, затем - используемый конфиг-файл и текущую версию, прописанную в базе данных. Это всё в вашем последнем сообщении есть.
        А вот затем, если эта версия ниже версии самого сервера, то выводится запись о том, что есть обязательные патчи для базы данных ("mandatory patches were found") и о начале их применения - старте процесса конвертации базы данных ("starting automatic database upgrade"), а вот этого сообщения я не вижу. Как не вижу и других сообщений о применённых патчах (а их между версиями 5.0 и 7.2 набежало довольно много).

        Кстати, поле ha_failover_delay в таблице config и в самом деле в версии 5.0.х ещё отсутствует, а в версии 6.0.х - уже есть. Но оно должно появиться как раз в результате упомянутой процедуры.

        Попробуйте ещё раз восстановить базу при условии, что к ней никто не обращается, и затем запустить процесс zabbix_server.

        Comment

        • unknowndef
          Junior Member
          • Oct 2024
          • 6

          #5
          Originally posted by Kos
          базы данных ("starting automatic database upgrade"), а вот этого сообщения я не вижу. Как не вижу и других сообщений о применённых патчах
          Я показал полный лог с момента запуска zabbix-server . если в нем нет таких сообщений значит их нет.
          С момента старта systemctl start zabbix-server проходит 1 секунда и результат лога выше. Подскажите куда копать?
          Базу восстанавливал командой gunzip -c /mnt/nas/zabbix.17-июн-2025.sql.gz | mysql -hlocalhost -uzabbix -p zabbix

          Comment

          • Kos
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • Aug 2015
            • 3404

            #6
            С момента старта systemctl start zabbix-server проходит 1 секунда и результат лога выше. Подскажите куда копать?
            Ну, если других сообщений и в самом деле нет, то тут несколько вариантов:
            • зарегистрироваться на сайте support.zabbix.com и открыть баг-репорт, описав проблему. Только писать надо по-английски, и нет гарантии, что проблему решат оперативно.
            • пытаться обращаться в платную техподдержку (если есть возможность). Тогда проблему точно решат.
            • продублировать вопрос на англоязычном форуме - больше вероятность, что кто-то откликнется.
            • пытаться решать проблему самостоятельно - например, повысив в конфиг-файле сервера параметр DebugLevel (возможно, получится найти в логе более информативное сообщение об ошибке).
            • попробовать обновиться через промежуточный шаг - например, установить сначала Zabbix версии 6.0.х и обновить базу до этой версии, а уже после этого обновлять бинарники до версии 7.х.

            Comment

            • unknowndef
              Junior Member
              • Oct 2024
              • 6

              #7
              Попробовал поставить версию 6.0 zabbix и при первом запуске получаю почти аналогичную картину:
              Полный лог при запуске сервера с debuglevel=5

              Code:
              36017:20250703:120827.053 Starting Zabbix Server. Zabbix 6.0.40 (revision cd5d20afe2c).
               36017:20250703:120827.053 ****** Enabled features ******
               36017:20250703:120827.053 SNMP monitoring:           YES
               36017:20250703:120827.053 IPMI monitoring:           YES
               36017:20250703:120827.053 Web monitoring:            YES
               36017:20250703:120827.053 VMware monitoring:         YES
               36017:20250703:120827.053 SMTP authentication:       YES
               36017:20250703:120827.053 ODBC:                      YES
               36017:20250703:120827.053 SSH support:               YES
               36017:20250703:120827.053 IPv6 support:              YES
               36017:20250703:120827.053 TLS support:               YES
               36017:20250703:120827.053 ******************************
               36017:20250703:120827.053 using configuration file: /etc/zabbix/zabbix_server.conf
               36017:20250703:120827.053 In zbx_load_modules()
               36017:20250703:120827.053 End of zbx_load_modules():SUCCEED
               36017:20250703:120827.053 In zbx_ipc_service_start() service:rtc
               36017:20250703:120827.053 In zbx_ipc_socket_open()
               36017:20250703:120827.053 End of zbx_ipc_socket_open():FAIL
               36017:20250703:120827.053 End of zbx_ipc_service_start():SUCCEED
               36017:20250703:120827.053 In DBconnect() flag:0
               36017:20250703:120827.056 End of DBconnect():0
               36017:20250703:120827.056 In zbx_db_get_database_type()
               36017:20250703:120827.056 query [txnlev:0] [select userid from users limit 1]
               36017:20250703:120827.057 there is at least 1 record in "users" table
               36017:20250703:120827.057 End of zbx_db_get_database_type():ZBX_DB_SERVER
               36017:20250703:120827.057 In init_database_cache()
               36017:20250703:120827.057 In zbx_mem_create() param:'HistoryCacheSize' size:16777216
               36017:20250703:120827.057 valid user addresses: [0x7f0a77812170, 0x7f0a78811ff0] total size: 16776832
               36017:20250703:120827.057 End of zbx_mem_create()
               36017:20250703:120827.057 In zbx_mem_create() param:'HistoryIndexCacheSize' size:4194304
               36017:20250703:120827.057 valid user addresses: [0x7f0a77412180, 0x7f0a77811ff0] total size: 4193904
               36017:20250703:120827.057 End of zbx_mem_create()
               36017:20250703:120827.057 In init_trend_cache()
               36017:20250703:120827.057 In zbx_mem_required_size() size:0 chunks_num:1 descr:'trend cache' param:'TrendCacheSize'
               36017:20250703:120827.057 End of zbx_mem_required_size() size:422
               36017:20250703:120827.057 In zbx_mem_create() param:'TrendCacheSize' size:4194304
               36017:20250703:120827.057 valid user addresses: [0x7f0a77012170, 0x7f0a77411ff0] total size: 4193920
               36017:20250703:120827.057 End of zbx_mem_create()
               36017:20250703:120827.057 End of init_trend_cache()
               36017:20250703:120827.057 End of init_database_cache()
               36017:20250703:120827.057 query [txnlev:0] [select default_character_set_name,default_collation_name from information_schema.SCHEMATA where schema_name='zabbix']
               36017:20250703:120827.057 query [txnlev:0] [select count(*) from information_schema.`COLUMNS` where table_schema='zabbix' and data_type in ('text','varchar','longtext') and (character_set_name not in ('utf8','utf8mb3','utf8mb4') or collation_name not in ('utf8_bin','utf8mb3_bin','utf8mb4_bin'))]
               36017:20250703:120827.059 In zbx_dbms_version_info_extract()
               36017:20250703:120827.059 MariaDB fork detected
               36017:20250703:120827.059 End of zbx_dbms_version_info_extract() version:101111
               36017:20250703:120827.059 In DBcheck_version()
               36017:20250703:120827.059 query [txnlev:0] [show tables like 'dbversion']
               36017:20250703:120827.059 query [txnlev:0] [select mandatory,optional from dbversion]
               36017:20250703:120827.060 current database version (mandatory/optional): 05010048/05010048
               36017:20250703:120827.060 required mandatory version: 06000000
               36017:20250703:120827.060 optional patches were found
               36017:20250703:120827.060 starting automatic database upgrade
               36017:20250703:120827.060 query [txnlev:1] [begin;]
               36017:20250703:120827.060 query [txnlev:1] [select optional,mandatory from dbversion for update]
               36017:20250703:120827.060 query [txnlev:1] [create table item_parameter (
              `item_parameterid` bigint unsigned not null,
              `itemid` bigint unsigned not null,
              `name` varchar(255) default '' not null,
              `value` varchar(2048) default '' not null,
              primary key (item_parameterid)
              ) engine=innodb]
               36017:20250703:120827.060 [Z3005] query failed: [1050] Table 'item_parameter' already exists [create table item_parameter (
              `item_parameterid` bigint unsigned not null,
              `itemid` bigint unsigned not null,
              `name` varchar(255) default '' not null,
              `value` varchar(2048) default '' not null,
              primary key (item_parameterid)
              ) engine=innodb]
               36017:20250703:120827.060 query [create table item_parameter (
              `item_parameterid` bigint unsigned not null,
              `itemid` bigint unsigned not null,
              `name` varchar(255) default '' not null,
              `value` varchar(2048) default '' not null,
              primary key (item_parameterid)
              ) engine=innodb] failed, setting transaction as failed
               36017:20250703:120827.060 query [txnlev:1] [rollback;]
               36017:20250703:120827.060 database upgrade failed on patch 05010049, exiting in 10 seconds
              Last edited by unknowndef; 03-07-2025, 11:10.

              Comment

              • Kos
                Senior Member
                Zabbix Certified SpecialistZabbix Certified Professional
                • Aug 2015
                • 3404

                #8
                Попробовал поставить версию 6.0 zabbix и при первом запуске получаю почти аналогичную картину
                В данном случае ругань на невозможность создать таблицу из-за того, что она уже есть.
                Но похоже, что вы пытаетесь продолжить с базой, которая уже находится в битом состоянии.
                Суда по этому:
                Code:
                current database version (mandatory/optional): 05010048/05010048
                либо это, всё же, не первый запуск, либо это не база, восстановленная из бэкапа, сделанного с версией 5.0.
                Там у вас раньше было:
                Code:
                current database version (mandatory/optional): 05000000/05000007

                Comment

                • teddy
                  Senior Member
                  • Dec 2017
                  • 234

                  #9
                  не могу сказать что помогаю но мне тоже в свое время не удалось подняться с 5.хх до 6.0 через upgrade. возможно в репо скриптов есть ошибка, может что то еще.
                  я поднимал 6.0 с нуля и копировал крайне необходимые исторические данные скриптом из БД в БД. скрипт брал где то на просторах интернета, к сожалению не сохранил.
                  версии уже не поддерживаемые потому расчитывать на правки от разраба мало вероятно.

                  Comment

                  Working...