Очистка и уменьшение mysql базы zabbix
Начнем с очистки базы данных zabbix от ненужных данных. Рассмотрим по пунктам в той последовательности, в которой это нужно делать.
- Первым делом надо внимательно просмотреть все используемые шаблоны и отключить там все, что вам не нужно. Например, если вам не нужен мониторинг сетевых соединений windows, обязательно отключите автообнаружение сетевых интерфейсов. Оно само по себе находит десятки виртуальных соединений, которые возвращают нули при опросе и не представляют никакой ценности. Тем не менее, все эти данные собираются и хранятся, создавая лишнюю нагрузку. Если же вам нужен мониторинг сети в windows, зайдите в каждый хост и отключите руками лишние адаптеры, которые будут найдены. Этим вы существенно уменьшите нагрузку. По моему опыту, в стандартных шаблонах windows мониторинг всех сетевых интерфейсов дает примерно 2/3 всей нагрузки этих шаблонов.
- Отредактируйте в используемых стандартных шаблонах время опроса и хранения данных. Возможно вам не нужна та частота опроса и время хранения, которые заданы. Там достаточно большие интервалы хранения. Чаще всего их можно уменьшить. В целом, не забывайте в своих шаблонах ставить адекватные реальной необходимости параметры. Не нужно хранить годами информацию, которая теряет актуальность уже через неделю.
- После отключения лишних элементов в шаблонах, нужно очистить базу данных от значений неактивных итемов. По-умолчанию, они там остаются. Можно их очистить через web интерфейс, но это плохая идея, так как неудобно и очень долго. Чаще всего попытки очистить 50-100 элементов за раз будут сопровождаться ошибками таймаута или зависанием web интерфейса. Далее расскажу, как это сделать эффективнее.
Для очистки базы данных zabbix от значений неактивных итемов, можно воспользоваться следующими запросами. Запускать их можно как в консоли mysql сервера (максимально быстрый вариант), так и в phpmyadmin, кому как удобнее.
Данными запросами можно прикинуть, сколько данных будет очищено:
SELECT count(itemid) AS history FROM history WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); SELECT count(itemid) AS history_uint FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); SELECT count(itemid) AS history_str FROM history_str WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); SELECT count(itemid) AS history_text FROM history_text WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); SELECT count(itemid) AS history_log FROM history_log WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); SELECT count(itemid) AS trends FROM trends WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); SELECT count(itemid) AS trends_uint FROM trends_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
Если запросы нормально отрабатывают и возвращают счетчик данных, которые будут удалены, дальше можете их удалять из базы следующими sql запросами.
DELETE FROM history WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); DELETE FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); DELETE FROM history_str WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); DELETE FROM history_text WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); DELETE FROM history_log WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); DELETE FROM trends WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0'); DELETE FROM trends_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');
Данными запросами вы очистите базу данных zabbix от значений неактивных элементов данных. Но реально размер базы данных у вас не уменьшится, потому что в дефолтной настройке базы данных используется формат innodb. Все данные хранятся в файле ibdata1, который автоматически не очищается после удаления данных из базы.
Администрировать такую базу неудобно. Нужно как минимум настроить хранение каждой таблицы в отдельном файле. Этим мы далее и займемся, а заодно обновим сервер базы данных до свежей версии mariadb и реально очистим базу, уменьшив ее размер.
Подготовка сервера к установке
Начинаем традиционно с подготовки рабочего окружения. Первым делом нам необходимо установить и настроить сервер Debian 9. Дальше нам нужно настроить web сервер для работы интерфейса управления. В этой статье я буду делать стандартную установку Zabbix на традиционный веб сервер apache + php. Если вы хотите, чтобы ваш заббикс работал на веб сервере nginx + php-fpm, читайте отдельный материал по установке zabbix на nginx и php-fpm.
# apt update && apt upgrade
Работа будет проходить на следующей версии Debian:
Теперь установим mysql server — mariadb. Он необходим для хранения всей информации, которую использует zabbix.
На всякий случай упомяну для тех, кто не знает, что такое mariadb и почему мы ставим ее, а не mysql. Mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Есть информация, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. Разработчики CentOS начиная с версии 7 и Debian, начиная с 9-й предлагают ее как сервер баз данных по-умолчанию.
# apt install mysql-server mysql-client
Запускаем mariadb и добавляем ее в автозагрузку:
# systemctl start mariadb # systemctl enable mariadb.service
Запускаем скрипт первоначальной настройки mysql:
# /usr/bin/mysql_secure_installation
Все подготовительные работы выполнены, двигаемся дальше.
Установка
Офф.мануал с описанием под любую версию, ОС и СУБД вот.
$ wget http://repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1+stretch_all.deb
$ dpkg -i zabbix-release_3.4-1+stretch_all.deb
$ apt update
$ apt install zabbix-server-pgsql zabbix-frontend-php php-pgsql zabbix-agent
1 |
$wget http//repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1+stretch_all.deb $dpkg-izabbix-release_3.4-1+stretch_all.deb $apt update $apt install zabbix-server-pgsql zabbix-frontend-php php-pgsql zabbix-agent |
Главное, чтобы версии пакетов совпадали (у меня 3.4)
Установка Zabbix на Debian
1. Установка Zabbix
Загрузите последний пакет репозитория Zabbix с помощью следующей команды wget :
После загрузки файла установите его с помощью:
Обновите список пакетов и установите Zabbix сервер, веб-интерфейс с поддержкой базы данных MySQL и Zabbix агент:
Приведенная выше команда также установит Apache , PHP и все необходимые модули PHP.
2. Настройка PHP для веб-интерфейса Zabbix
Во время установки создается файл конфигурации Apache со всеми необходимыми настройками Apache и PHP.
/etc/apache2/conf-enabled/zabbix.conf
После этого сохраните файл и перезапустите службу Apache, чтобы изменения были активированы.
3. Настройка базы данных MySQL для Zabbix сервера
Импортируйте файл дампа MySQL, который включает исходную схему и данные для сервера Zabbix с MySQL.
При появлении запроса введите пароль пользователя, который вы создали ранее. В случае успеха результат не выводится.
Затем откройте конфигурацию Zabbix и установите пароль базы данных:
Найдите следующий раздел, раскомментируйте директиву и добавьте пароль базы данных.
/etc/zabbix/zabbix_server.conf
Сохраните и закройте файл.
Перезагрузите и включите Zabbix сервер и службы агента:
Убедитесь, что сервер Zabbix запущен:
Установка и настройка Zabbix Frontend
Веб-интерфейс Zabbix написан на PHP и позволяет настраивать сервер, просматривать собранные данные и добавлять хосты, которые вы хотите отслеживать.
Чтобы начать установку, откройте свой любимый браузер и введите доменное имя или общедоступный IP-адрес вашего сервера, а затем :
На первом экране вам будет представлено приветственное сообщение. Щелкните, чтобы продолжить.
Затем вы увидите информационную страницу со списком необходимых пакетов PHP, необходимых для запуска Zabbix Frontend. Прокрутите вниз, чтобы убедиться, что все установлено и настроено правильно. После проверки нажмите, чтобы продолжить.
На следующем экране мастер настройки попросит вас ввести данные подключения к базе данных. Введите данные пользователя MySQL и базы данных, которые вы создали ранее.
Ввод имени сервера не является обязательным. Введите его, если у вас более одного сервера мониторинга Zabbix. Если предоставлено, оно будет отображаться в строке меню и заголовках страниц.
Щелкните, чтобы продолжить.
На следующем экране вы увидите сводку перед установкой.
Нажмите, и после завершения установки вы попадете на страницу, показывающую, что веб-интерфейс Zabbix установлен. Чтобы получить доступ к странице входа в Zabbix, нажмите кнопку.
Пользователь по умолчанию — «Admin», а пароль — «zabbix». Введите имя пользователя и пароль и нажмите кнопку.
После входа в систему вы будете перенаправлены на панель администрирования Zabbix.
Отсюда вы можете начать настраивать установку Zabbix и добавлять новые хосты. Во-первых, вам нужно изменить текущий пароль. Для этого перейдите на страницу профиля пользователя, щелкнув значок профиля в верхней части навигации.
Установка и настройка Zabbix Frontend
Веб-интерфейс Zabbix написан на PHP и позволяет настраивать сервер, просматривать собранные данные и добавлять хосты, которые вы хотите отслеживать.
Чтобы начать установку, откройте свой любимый браузер и введите доменное имя или общедоступный IP-адрес вашего сервера, а затем :
На первом экране вам будет представлено приветственное сообщение. Щелкните чтобы продолжить.
Затем вы увидите информационную страницу со списком необходимых пакетов PHP, необходимых для запуска Zabbix Frontend. Прокрутите вниз, чтобы убедиться, что все установлено и настроено правильно. После проверки нажмите « чтобы продолжить.
На следующем экране мастер настройки попросит вас ввести данные подключения к базе данных. Введите данные пользователя MySQL и базы данных, которые вы создали ранее.
Ввод имени сервера необязательно. Введите его, если у вас более одного сервера мониторинга Zabbix. Если предоставлено, оно будет отображаться в строке меню и заголовках страниц.
Щелкните чтобы продолжить.
На следующем экране вы увидите сводку до установки.
Нажмите и после завершения установки вы попадете на страницу, показывающую, что веб-интерфейс Zabbix установлен. Чтобы получить доступ к странице входа в Zabbix, нажмите кнопку .
Пользователь по умолчанию — «Admin», а пароль — «zabbix». Введите имя пользователя и пароль и нажмите кнопку « .
После входа в систему вы будете перенаправлены на панель администрирования Zabbix.
Отсюда вы можете начать настраивать установку Zabbix и добавлять новые хосты. Во-первых, вам нужно изменить текущий пароль. Для этого перейдите на страницу профиля пользователя, щелкнув значок профиля в верхней части навигации.
Настройка email оповещений
Указываем следующие настройки для отправки почты через gmail.
Это мы настроили адрес отправки. Теперь нужно пользователю добавить адрес для получения. Для этого идем в Administration -> Users, выбираем пользователя Admin.
Идем в закладку Media и жмем Add.
Указываем почтовый ящик получателя уведомлений.
Жмем Add, затем Update. Дальше нужно активировать отправку уведомлений по событиям. Для этого идем в Configuration -> Actions и жмем на Disabled, чтобы она стала Enabled.
Все, отправку уведомлений мы настроили, осталось подождать срабатывания триггера, чтобы проверить. Сделаем это позже, когда подключим хост к мониторингу.
Если вам нужны оповещения в telegram, то читайте отдельную статью на эту тему.
Step 2 – Configure Apt Repository
Before installing Zabbix first configure Zabbix package repository in your system using following commands. Use commands as per your operating system.
## For Debian 10: wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+buster_all.deb sudo dpkg -i zabbix-release_4.0-3+buster_all.deb ## For Debian 9: wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+stretch_all.deb sudo dpkg -i zabbix-release_4.0-3+stretch_all.deb ## For Debian 8: wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+jessie_all.deb sudo dpkg -i zabbix-release_4.0-3+jessie_all.deb
Обновление сервера zabbix с версии 3.4 до 4 в операционной системе Debian
1. Открываем веб-интерфейс zabbix (если на том же компьютере, где установлен сервер zabbix, то это http://127.0.0.1/zabbix/), вводим логин и пароль пользователя. Далее смотрим в нижней части веб-интерфейса версию сервера.
.
3. Перед обновление сервера читаем соответствующие заметки по обновлению.
4. Далее начинается процесс обновления сервера. Он состоит из несколько этапов:
- остановить zabbix процессы;
- выполняем резервное копирование бинарных файлов, конфигурационных файлов и папки с PHP файлами, делаем дамп базы данных сервера zabbix;
- обновить пакет конфигурации текущего репозитория zabbix;
- обновить информацию о репозитории;
- скачать и обновить компоненты zabbix;
- запустить сервер и агент zabbix.
Для того, чтобы остановить демон zabbix сервера выполняем:
# service zabbix-server stop
Для резервного копирования необходимых работы сервера компонентов, выполняем команды:
# mkdir /opt/zabbix-backup/# cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/# cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/# cp -R /usr/share/zabbix/ /opt/zabbix-backup/# cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/
Делаем дамп базы данных:
# msqldump -u root -p zabbix > /opt/zabbix-backup/zabbix_db.sql
Для того, чтобы данная команда выполнилась, необходимо ввести пароль для root MySQL (имя базы данных в данном случае zabbix).
Проверить наличие резервных файлов можно с помощью команды:
# ls -la /opt/zabbix-backup/
Удаляем пакет текущего репозитория, добавляем новый репозиторий:
для Debian 8:
# rm -Rf /etc/apt/sources.list.d/zabbix.list# wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+jessie_all.deb
для Debian 9:
# rm -Rf /etc/apt/sources.list.d/zabbix.list# wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb
Устанавливаем пакет нового репозитория и обновляем информацию:
для Debian 8:
# dpkg -i zabbix-release_4.0-2+jessie_all.deb# apt-get update
для Debian 9:
# dpkg -i zabbix-release_4.0-2+stretch_all.deb# apt-get update
5. Обновляем компоненты сервера zabbix:
# apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent
«По умолчанию сохраняется текущая версия файла настройки» — отвечаем два раза «n».
6. После обновления сервера zabbix, запускаем сервер и агент:
# service zabbix-server start# service zabbix-agent start
7. Открываем веб-интерфейс сервера zabbix. Нажимаем кнопку обновления браузера и в нижней части интерфейса смотрим текущую версию zabbix сервера.
Посмотреть видео можно здесь:
https://youtube.com/watch?v=fcbWwOrFHXc
- Обновление Zabbix 3.0 до последней версии
- Установка, настройка и удаление zabbix агента на Windows
- Установка Zabbix 4 в Debian 9
Step 7 – Run Zabbix Web Installer
Zabbix web installer can be accessed on subdirectory URL on your servers IP or domain. For example, host.tecadmin.net is pointed to my Zabbix server. Now access the Zabbix using the following URL. You must change FQDN as per your setup.
http://host.tecadmin.net/zabbix/
and follow the steps as per given screenshots below.
This is the welcome screen of Zabbix web installer. Go forward by click on next button.
Check if your system has all required packages, if everything is ok click next.
Enter database details created in Step #4 and click next to continue.
Zabbix Server Details
This is the host and port of running Zabbix server. As your Zabbix server is running on the same host, so keep the values unchanged. You can give a name for your instance.
In this step will show the summary you have entered the previous steps, so simply click next.
Install Zabbix
If everything goes correctly, you will see a successful installation message on this page. This will also show you a message for the created configuration file.
Zabbix Login Screen
Login to Zabbix using default credentials.
Username: Admin Password: zabbix
After successful login, You will get Zabbix dashboard like below.
item became not supported
Во время отладки работ я столкнулся с проблемами. Периодически Item отваливались и получали статус: Not Supported. При этом в логах сервера были следующие записи:
27614:20150702:065936.698 item "videoserver:Temperature.CPU" became not supported: Timeout while executing a shell script. 27625:20150702:070938.720 item "videoserver:Temperature.CPU" became supported
То есть данные то собирались, то переставали собираться. Иногда, чтобы данные снова пошли, приходилось удалять итем и создавать его заново. Некоторое время я повозился, пока не понял, в чем дело.
Я обратил внимание, что при запуске батника из командной строки, вывод данных происходит с приличной задержкой в 3-5 секунд. В Zabbix по-умолчанию стоит параметр, по которому агент ожидает ответа от скрипта 3 секунды и на сервере есть подобный параметр, по которому сервер ждет ответа от агента 3 секунды
Если за это время данные не поступают, то итем переходит в статус Not Supported и данные с него не собираются.
Чтобы избавиться от этой ошибки, необходимо увеличить таймаут до 15-ти секунд. Меняем параметр в конфиге на клиентах и на сервере. Он и там и там один и тот же:
Timeout=15
Потом перезапускаем сервер и агентов и ждем результатов. Больше ошибок быть не должно.
На этом, собственно настройка мониторинга температуры окончена. Можно дальше все оформить как полагается: настроить тригеры, оповещения, графики красивые нарисовать. Кому что нужно. Я себе вывел вот такую картинку для наглядности:
Установка Zabbix на Ubuntu
1. Установка Zabbix
Загрузите последний пакет репозитория Zabbix с помощью следующей команды wget :
После загрузки файла добавьте репозиторий Zabbix в вашу систему Ubuntu 18.04, набрав:
Обновите индекс пакета и установите сервер Zabbix, веб-интерфейс с поддержкой базы данных MySQL и агент Zabbix:
Приведенная выше команда также установит Apache , PHP и все необходимые модули PHP.
2. Настройка PHP для веб-интерфейса Zabbix
Во время установки создается файл конфигурации Apache, содержащий все необходимые настройки Apache и PHP. Вам нужно только внести небольшое изменение и установить соответствующий часовой пояс .
/etc/apache2/conf-enabled/zabbix.conf
После этого сохраните файл конфигурации и перезапустите службу Apache, чтобы изменения вступили в силу:
3. Настройка базы данных MySQL для Zabbix сервера
Пакет установки Zabbix предоставляет файл дампа, который включает начальную схему и данные для сервера Zabbix с MySQL.
Импортируйте файл дампа MySQL, запустив:
При появлении запроса введите пароль пользователя, который вы создали ранее. В случае успеха результат не выводится.
Далее нам нужно отредактировать конфигурацию Zabbix и установить пароль базы данных.
Откройте файл конфигурации в вашем редакторе:
Найдите следующий раздел, раскомментируйте директиву и добавьте пароль базы данных.
/etc/zabbix/zabbix_server.conf
Сохраните и закройте файл.
Чтобы проверить, запущен ли Zabbix сервер, введите:
Установка Zabbix на Debian
На момент написания этой статьи последней стабильной версией Zabbix была версия 4.0. Пакеты Zabbix, доступные в репозиториях Debian, часто устарели, поэтому мы будем использовать официальный репозиторий Zabbix .
1. Установка Zabbix
Загрузите последний пакет репозитория Zabbix с помощью следующей команды wget :
После загрузки файла установите его с помощью:
Обновите список пакетов и установите Zabbix сервер, веб-интерфейс с поддержкой базы данных MySQL и Zabbix агент:
Приведенная выше команда также установит Apache , PHP и все необходимые модули PHP.
2. Настройка PHP для веб-интерфейса Zabbix
Во время установки создается файл конфигурации Apache со всеми необходимыми настройками Apache и PHP.
здесь
/etc/apache2/conf-enabled/zabbix.conf
После этого сохраните файл и перезапустите службу Apache, чтобы изменения вступили в силу.
3. Настройка базы данных MySQL для Zabbix сервера
Импортируйте файл дампа MySQL, который включает исходную схему и данные для сервера Zabbix с MySQL.
При появлении запроса введите пароль пользователя, который вы создали ранее. В случае успеха результат не выводится.
Затем откройте конфигурацию Zabbix и установите пароль базы данных:
Найдите следующий раздел, раскомментируйте директиву и добавьте пароль базы данных.
/etc/zabbix/zabbix_server.conf
Сохраните и закройте файл.
Перезагрузите и включите Zabbix сервер и службы агента:
Убедитесь, что сервер Zabbix запущен:
Заключение
Несмотря на то, что новые версии zabbix выходят достаточно часто, материалы по настройке мониторинга различных систем и сервисов не устаревают и остаются актуальным для самых новых релизов. Вот пример мониторинга служб и сервисов, приведенных на моем сайте:
- Настройка мониторинга Asterisk
- Cрок действия ssl сертификата
- Почтовый сервер Postfix
- Звонок-оповещение Zabbix через Asterisk на мобильный телефон
- Лог файлы
- Установка и настройка zabbix прокси на CentOS 7
- Размер бэкапа
- Значения из текстового файла
- Время делегирования домена
- Synology
- Актуальность бэкапов
- Транки (trunk) в asterisk
- Программный рейд mdadm
- Доступность службы linux
- MySQL репликация
- Web сайт
- Web сервер nginx и php-fpm
- Настройка мониторинга температуры
Команда заббикс внимательно следит за обратной совместимостью своих продуктов. Благодаря этому переход на новые версии проходит безболезненно. Нет необходимости перенастраивать или исправлять старые наработки. В новых версиях только добавляется функционал, старый чаще всего не претерпевает изменений, им можно дальше пользоваться.