Обновлял версию Zabbix Server с 4.4 до 5.0 на очередном сервере и столкнулся с ошибкой, которую раньше не замечал. Все делал по своей статье - обновление zabbix 4.4 -> 5.0. Для версии Centos 7 она полностью актуальна, сделал по ней простым копипастом. Но возникла проблема с базой. Рассказываю, как решить.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
После обновления в логах zabbix-server заметил ошибку:
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. Если у вас другая кодировка, получите ошибку - Неподдерживаемая кодовая страница. Как ее решать, смотрите по ссылке.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Может подскажите, что будет если не менять тип столбца?
Все сделал - ничего не поменялось.
Кроме того у меня еще пишет:
MariaDB 5.05.05 Minimum required database version is 10.00.37.
Хотя у меня версия 10.3.27
Напишите статья про уведомления sms в ubuntu, раньше использовал centos, smstools и все отлично. В ubuntu smstools не работает как надо, gammu мозг мучает.
Добрый день! не по теме совсем, но может кто то поможет?
Есть такой шаблон в 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
А для пользователей postgresql команда такая же? подскажите плиз!
Там другой код. Посмотреть можно в репе zabbix на github - https://git.zabbix.com/projects/ZBX/repos/zabbix/raw/database/postgresql/double.sql
Отбой, решение помогло.
Я почему-то добавил $DB['DOUBLE_IEEE754'] = 'true'; по пути /etc/zabbix/web/zabbix.conf.php :)
Странно, сделал по аналогии, ошибка не пропала в 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
Ошибка ушла. Спасибо. Правда, я не особо понимаю на что это всё влияет. Это получается поменяли точность каких-то значений?
Нет, дело не в точности. У каждого приложения свои требования к типу базы данных и ее кодировке в зависимости от типа хранимых значений. Так трудно сходу объяснить в комментариях. Можно просто загуглить тему кодировок базы данных и разобраться при желании.
Не пробовали потом запустить хаускипинг? Работает, нет?
Да, конечно.