Введение
Напоминаю одну важную деталь. Если вы ставите Zabbix Server не с нуля, а обновляете старую версию, у вас не обновляются стандартные шаблоны. А они последнее время сильно изменились, плюс появились новые. Посмотреть их можно на github — https://github.com/zabbix/zabbix/tree/master/templates.
В данном случае я буду использовать шаблон из директории /db/mysql_agent/. Он написан для старого агента. Напомню, что начиная с версии 4.4 доступна новая версия агента, написанная на Go — zabbix_agent2. Для него появился новый функционал и новые шаблоны. Я пока буду использовать старого агента, так как с новым еще не разбирался.
Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:
- Установка CentOS 8.
- Настройка CentOS 8.
- Установка и настройка zabbix сервера.
То же самое на Debian 10, если предпочитаете его:
- Установка Debian 10.
- Базовая настройка Debian.
- Установка и настройка zabbix на debian.
Ставьте себе сервер и погнали настраивать.
Особенности веб-интерфейса
Система мониторинга Zabbix располагает удобным веб-интерфейсом, в котором сгруппированы элементы управления. Консоль предусматривает просмотр собранных данных, их настройку. Для безопасности входа и работы осуществляется автоматическое отсоединение через 30 минут пользовательского бездействия.
На главном экране всегда представлена информация о состоянии узлов сети и триггеров.
Пользователю доступны пять функциональных разделов, включая Monitoring («Мониторинг»), Inventory («Инвентарные данные»), Reports («Отчеты»), Configuration («Конфигурация») и Administration («Администрирование»).
В разделе «Конфигурации» можно найти группы хостов. По каждому элементу списка можно посмотреть более подробную информацию, например, последние события и графики данных.
Управлять шаблонами, доступными администратору, можно в соответствующем подразделе — Templates («Шаблоны»).
Самые большие таблицы в бд zabbix
Следующие таблицы занимают больше всего места в базе данных:
history | history_str | |
history_uint | history_text | events |
history_log |
- history хранит десятичные числа
- history_uint — целые
- history_str, history_text, history_log — текстовые данные
- events — всевозможные события: проблемы, внутренние события, события авторегистрации и автообнаружения
Посмотреть в базе Mysql, какая из таблиц занимает больше всего места можно следующим образом:
SELECT table_name, table_rows, data_length, index_length, round(((data_length + index_length) / 1024 / 1024 / 1024),2) "Size in GB" FROM information_schema.tables WHERE table_schema = "zabbix" ORDER BY round(((data_length + index_length) / 1024 / 1024 / 1024),2) DESC LIMIT 8;
И то же самое в PostgreSQL:
SELECT *, pg_size_pretty(total_bytes) AS total , pg_size_pretty(index_bytes) AS index , pg_size_pretty(toast_bytes) AS toast , pg_size_pretty(table_bytes) AS table FROM (SELECT *, total_bytes-index_bytes-coalesce(toast_bytes, 0) AS table_bytes FROM (SELECT c.oid, nspname AS table_schema, relname AS table_name , c.reltuples AS row_estimate , pg_total_relation_size(c.oid) AS total_bytes , pg_indexes_size(c.oid) AS index_bytes , pg_total_relation_size(reltoastrelid) AS toast_bytes FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE relkind = 'r' ) a) a;
Установка собственного сервера Veliam Box
Для начала расскажу пару слов об архитектуре решения, если вы с ним еще не знакомы. Veliam состоит из следующих компонентов:
- Veliam Center — ядро всей системы. В случае SaaS версии, оно расположено на серверах разработчиков. В версии BOX у вас есть возможность развернуть его у себя. Ядро взаимодействует с базой данных. Вся основная информация хранится в нем.
- Veliam Server — сервер мониторинга. Занимается непосредственно сбором данных с объектов мониторинга. Подобных серверов может быть развернуто несколько в зависимости от схемы наблюдаемой инфраструктуры.
- Veliam Client — приложение, которое устанавливается на компьютер администратора системы. С помощью этого приложения происходит управление всей системой. Client подключается напрямую к ядру.
Ечли вы знакомы с архитектурой мониторинга Zabbix, то сопоставить с Veliam их можно следующим образом:
- Veliam Center — Zabbix Server
- Veliam Server — Zabbix Proxy
- Veliam Client — Zabbix web interface
Для того, чтобы развернуть Veliam Center у себя, необходимо его скачать. Это можно сделать в личном кабинете, предварительно зарегистрировавшись в нем.
Дистрибутив весит чуть более 200мб. Установить его можно на любую современную Windows систему. Для экономии можно взять Windows 10, не обязательно серверную версию. Если предполагается мониторинг небольшой инфраструктуры, все 3 компонента системы можно установить на один и тот же компьютер или виртуальную машину. Если же потребуется масштабирование, то каждый компонент может быть установлен отдельно.
Инсталлятор показывает требуемое доступное место с большим запасом. Так как все данные будут храниться локально в базе данных, желательно озаботиться наличием свободного места заранее. Непосредственно для установки достаточно будет примерно 1 Гб свободного места на все.
После установки вам нужно будет подключить Veliam Server к Center. Если все установлено локально на один компьютер, то в качестве адреса укажите 127.0.0.1. Логин и пароль по умолчанию — admin / admin.
Если все прошло успешно, то увидите информационное сообщение об этом.
Теперь можно запустить Veliam Client Box (ярлык должен быть на рабочем столе) и подключиться к системе для дальнейшей настройки. Для этого нужно добавить адрес Center в клиенте. Если подключаетесь локально, указываем 127.0.0.1. Но я бы рекомендовал установить клиент на свое рабочее устройство. Так будет просто удобнее. Если вы будете активно использовать систему, то клиент нужен будет постоянно. При подключении используем ту же самую учетную запись — admin / admin.
После того, как вы первый раз подключитесь к Veliam Center, увидите информацию о том, что он не активирован. Активировать пробную версию на 30 дней можно через личный кабинет. Для этого в клиенте перейдите в раздел Активация и нажмите Активировать офлайн.
Скопируйте строку запроса лицензии и переместитесь в личный кабинет https://lic.veliam.com в раздел Лицензии коробочной версии и сертификаты поддержки. Там выберите строку с неактивированной лицензией и далее в поле с запросом лицензии вставьте запрос, который вы скопировали в клиенте. В ответ получите строку с активацией.
Скопируйте ее и вставьте в клиенте в поле Строка активации. Все, ваш Veliam Box активирован и готов к настройке.
Подготовка mysql к мониторингу
Для примера настроим мониторинг Mysql на самом сервере мониторинга Zabbix. Так как это часто узкое место производительности системы, мониторинг базы zabbix лишним не будет. Первым делом добавим новые параметры в агенте. Для этого создаем конфигурационный файл /etc/zabbix/zabbix_agentd.d/template_db_mysql.conf следующего содержания.
UserParameter=mysql.ping, mysqladmin -h"$1" -P"$2" ping UserParameter=mysql.get_status_variables, mysql -h"$1" -P"$2" -sNX -e "show global status" UserParameter=mysql.version, mysqladmin -s -h"$1" -P"$2" version UserParameter=mysql.db.discovery, mysql -h"$1" -P"$2" -sN -e "show databases" UserParameter=mysql.dbsize, mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'" UserParameter=mysql.replication.discovery, mysql -h"$1" -P"$2" -sNX -e "show slave status" UserParameter=mysql.slave_status, mysql -h"$1" -P"$2" -sNX -e "show slave status"
После этого сразу перезапустим zabbix-agent.
# systemctl restart zabbix-agent
Дальше идем в консоль mysql и создаем пользователя, от которого будет работать мониторинг. Ему достаточно ограниченных прав на чтение.
# mysql -uroot -p > CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'TTRy1bRRgLIB'; > GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%'; > quit
Теперь смотрим, где у нас домашняя директория пользователя zabbix.
# cat /etc/passwd | grep zabbix zabbix:x:990:986:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
У меня ее не было, так что создаем.
# mkdir /var/lib/zabbix
Кладем в эту директорию конфиг .my.cnf с реквизитами доступа к серверу mysql.
user='zbx_monitor' password='TTRy1bRRgLIB'
Назначаем пользователя zabbix владельцем своей домашней директории и файла в ней. Файлу ограничиваем доступ.
# chown -R zabbix. /var/lib/zabbix # chmod 400 /var/lib/zabbix/.my.cnf
Подготовка к мониторингу mysql сервера завершена. Идем теперь в web интерфейс системы мониторинга Zabbix.