Home » Zabbix » Ошибка Zabbix - database is not upgraded to use double precision values

Ошибка Zabbix - database is not upgraded to use double precision values

Обновлял версию Zabbix Server с 4.4 до 5.0 на очередном сервере и столкнулся с ошибкой, которую раньше не замечал. Все делал по своей статье - обновление zabbix 4.4 -> 5.0. Для версии Centos 7 она полностью актуальна, сделал по ней простым копипастом. Но возникла проблема с базой. Рассказываю, как решить.

Хочешь научиться автоматически разворачивать и поддерживать высоконагруженные проекты? Тогда рекомендую познакомиться с онлайн курсом " Infrastructure as a code." в OTUS. Актуально для системных администраторов и devops инженеров. Подробности по .

После обновления в логах zabbix-server заметил ошибку:

database is not upgraded to use double precision values

database is not upgraded to use double precision values

А в web интерфейсе было сообщение:

Таблицы истории в базе данных обновлены Нет

или в английской версии:

Database history tables upgraded No

Ошибка быстро нагуглилась, но решение взял из двух мест. В каждом из них ошибка решалась только наполовину. В итоге вам надо сделать следующее. Останавливаем zabbix-server:

# systemctl stop zabbix-server

Добавляем в конфиг /etc/zabbix/web/zabbix.conf.php:

$DB['DOUBLE_IEEE754'] = 'true';

Дальше идем в консоль mysql, заходим в базу данных zabbix и делаем там некоторые изменения:

# mysql -uroot -p
> use zabbix;
> ALTER TABLE trends MODIFY value_min DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_avg DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_max DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
> ALTER TABLE history MODIFY value DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;

После этого запускаем zabbix-server. Ошибка в и логе, и в веб интерфейсе должна пропасть.

Также часто возникает ошибка с кодировкой базы данных, особенно если ставили сервер давно и последовательно его обновляли год от года. Раньше этого требования к кодировке не было. База данных и таблицы должны быть в кодировке utf8. Если у вас другая кодировка, получите ошибку - Неподдерживаемая кодовая страница. Как ее решать, смотрите по ссылке.

 

Онлайн курс Основы сетевых технологий

Теоретический курс с самыми базовыми знаниями по сетям. Курс подходит и начинающим, и людям с опытом. Практикующим системным администраторам курс поможет упорядочить знания и восполнить пробелы. А те, кто только входит в профессию, получат на курсе базовые знания и навыки, без воды и избыточной теории. После обучения вы сможете ответить на вопросы:
  • На каком уровне модели OSI могут работать коммутаторы;
  • Как лучше организовать работу сети организации с множеством отделов;
  • Для чего и как использовать технологию VLAN;
  • Для чего сервера стоит выносить в DMZ;
  • Как организовать объединение филиалов и удаленный доступ сотрудников по vpn;
  • и многое другое.
Уже знаете ответы на вопросы выше? Или сомневаетесь? Попробуйте пройти тест по основам сетевых технологий. Всего 53 вопроса, в один цикл теста входит 10 вопросов в случайном порядке. Поэтому тест можно проходить несколько раз без потери интереса. Бесплатно и без регистрации. Все подробности на странице .

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

12 комментариев

  1. Сергей

    Может подскажите, что будет если не менять тип столбца?

  2. Все сделал - ничего не поменялось.
    Кроме того у меня еще пишет:
    MariaDB 5.05.05 Minimum required database version is 10.00.37.
    Хотя у меня версия 10.3.27

  3. Алексей

    Напишите статья про уведомления sms в ubuntu, раньше использовал centos, smstools и все отлично. В ubuntu smstools не работает как надо, gammu мозг мучает.

  4. Вячеслав

    Добрый день! не по теме совсем, но может кто то поможет?

    Есть такой шаблон в zabbix -Template Tel Asterisk by HTTP
    в общем вот такую ошибку выдает

    " Preprocessing failed for: HTTP/1.1 200 OK..Server: Asterisk..Date: Fri, 05 Mar 2021 15:53:03 GMT..Cache-Control: no-cache, ...
    1. Failed: Request failed with message Error. Check debug log for more information."

    куда только не копал ни грамму не продвинулся. Версия zabbix 5.0

  5. Владимир

    А для пользователей postgresql команда такая же? подскажите плиз!

  6. Отбой, решение помогло.
    Я почему-то добавил $DB['DOUBLE_IEEE754'] = 'true'; по пути /etc/zabbix/web/zabbix.conf.php :)

  7. Странно, сделал по аналогии, ошибка не пропала в web-интерфейсе (Database history tables upgraded - No).
    БД Zabbix не ругается на какое-либо не верное исполнение скрипта.
    В конфиг нужное значение ($DB['DOUBLE_IEEE754'] = 'true';) добавил, помимо службы zabbix-server, перезагрузил и сам сервер.

    MariaDB [(none)]> use zabbix;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    MariaDB [zabbix]> ALTER TABLE trends MODIFY value_min DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_avg DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_max DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
    Query OK, 0 rows affected (0.00 sec)
    Records: 0 Duplicates: 0 Warnings: 0

    MariaDB [zabbix]> ALTER TABLE history MODIFY value DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
    Query OK, 0 rows affected (0.00 sec)
    Records: 0 Duplicates: 0 Warnings: 0

  8. Ошибка ушла. Спасибо. Правда, я не особо понимаю на что это всё влияет. Это получается поменяли точность каких-то значений?

    • Нет, дело не в точности. У каждого приложения свои требования к типу базы данных и ее кодировке в зависимости от типа хранимых значений. Так трудно сходу объяснить в комментариях. Можно просто загуглить тему кодировок базы данных и разобраться при желании.

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.