В этой статье опишу процесс установки и настройки Zabbix 6.4 сервера на Ubuntu 22.04, а также установку агентов на Linux, Windows сервера и добавление гипервизора Proxmox с целью мониторинга состояния.
Zabbix - это решение для мониторинга ИТ инфраструктуры корпоративного класса любого масштаба. Весь нюанс в том, что официально 6.4 еще не вышла и является пред релизом, а мы с вами уже ее затестим.
Содержание
- Задачи компании
- Системные требования
- Обновление и подготовка системы
- Установка Zabbix
- Настройка сервера
- Добавление гипервизора Proxmox в группу устройств для мониторинга
- Установка клиента на Ubuntu+Elma и добавление в группу устройств для мониторинга
- Установка клиента на Windows и добавление в группу устройств для мониторинга
- Вывод
Задачи компании
Организовать в компании современную систему мониторинга для оборудования и серверов.
Системные требования
Фактические параметры конфигурации для сервера под Zabbix, зависят от количества данных и их частоты обновления. Для мониторинга до 500 устройств рекомендуется CPU 2 ядра ОЗУ 2 ГБ.
Своей виртуальной машине я выделю следующие ресурсы:
- Процессор 1-ядро 1,8ггц
- Память 1гб
- Диск 30гб
Обновление и подготовка системы
Для начала повысим наши права в системе:
sudo -s
Обновим информацию о пакетах в репозиториях:
apt update
Обновим пакеты:
apt upgrade -y
Установим необходимые пакеты:
apt install nano mc net-tools wget
Устанавливаем сервис синхронизации времени:
apt install chrony
Добавляем в автозапуск службу:
systemctl enable chrony
Запускаем службу:
systemctl start chrony
Перезагрузим сервер:
reboot
Установка Zabbix
Zabbix можно собрать из исходников или установить готовый пакет из репозитория, я предпочитаю второе.
Скачиваем готовый пакет Zabbix из репозиториев:
wget https://repo.zabbix.com/zabbix/6.3/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.3-3+ubuntu22.04_all.deb
Устанавливаем пакет:
dpkg -i zabbix-release_6.3-3+ubuntu22.04_all.deb
Обновляем пакетные зависимости:
apt update
Устанавливаем Zabbix сервер, веб-сервер NGINX и агента:
apt install zabbix-server-pgsql zabbix-frontend-php php8.1-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Создадим базу данных для Zabbix
Установим Postgresql:
apt install postgresql
Запустим Postgresql:
systemctl start postgresql
Создадим пользователя zabbix:
sudo -u postgres createuser --pwprompt zabbix
Cистема попросит вас указать пароль, запомните его.
Создадим базу данных zabbiz:
sudo -u postgres createdb -O zabbix zabbix
Импортируем на сервер Zabbix начальную схему и данные. Вам будет предложено ввести недавно созданный пароль.
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
Отредактируем файл конфигурации Zabbix сервера, для доступа к базе данных:
nano /etc/zabbix/zabbix_server.conf
# ListenPort - Порт который слушает Zabbix, по умолчанию 10051
ListenPort=10051
# DBHost - указать хост на котором размещается база данных Zabbix, по умолчанию localhost
DBHost=localhost
# DBName - указать имя базы данных, по умолчанию zabbix
DBName=zabbix
# DBUser - имя пользователя базы данных, по умолчанию zabbix
DBUser=zabbix
# DBPassword - пароль от пользователя базы данных, обычно задается при создании пользователя
DBPassword=Пароль
# Порт подключения к базе данных. Для подключения к PostgreSQL по умолчанию используется DBPort=5432
DBPort=5432
Настроим файл конфигурации нашего веб-сервера, для этого рас комментируем и настроим директивы:
nano /etc/zabbix/nginx.conf
# listen 8080;
# server_name ip_address;
Перезапустим службы Zabbix сервера и агента:
systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
Добавление в автозапуск служб Zabbix сервера и агента:
systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
При установке zabbix файлы web движка копируются в каталог /usr/share/zabbix. Наш веб-сервер nginx по умолчанию работает с каталогом /var/www/html, поменяем путь в конфигурационном файле nginx:
nano /etc/nginx/sites-enabled/default
root /usr/share/zabbix;
Перезапускаем nginx:
systemctl restart nginx
Прежде чем перейдем в браузер для дальнейшей настройки zabbix, рекомендую прописать правила для нашего Брандмауэра UFW:
ufw allow 10050/tcp
ufw allow 10051/tcp
ufw allow 80/tcp
ufw reload
Открываем браузер и идем по адресу:
http://ip_address
Можно переходить к настройке
Настройка сервера
Выбираем русский язык:
Проверка предварительных условий, видим что у нас все хорошо
Оставляем все по умолчанию, вписываем порт и пароль от учетной записи которая имеет доступ к базе данных Zabbix на PostgreSQL
пишем имя сервера, часовой пояс выбираем свой, тему оставляем по умолчанию
Система сообщает, что мы с вами молодцы
Нажимаем Финиш и попадаем на страничку авторизации Zabbix сервера, вводим Логин: Admin и Пароль: zabbix
Первым делом поменяем пароль для пользователя admin, для этого перейдем в раздел:
Пользователи --> Пользователи --> admin --> Изменить пароль
Теперь добавим несколько устройств для мониторинга за ними
Добавление гипервизора Proxmox в группу устройств для мониторинга
Согласно документации Zabbix создадим Api токен для того, чтобы наш сервер мониторинга мог по http забирать статистику с proxmox.
Итак порядок действий следующий:
- Создадим на гипервизоре роль с правами аудита
- Добавим группу пользователей
- Свяжем группу пользователей с ролью по аудиту
- Создадим пользователя с правами которого Zabbix будет собирать статистику и добавим его в группу
- Добавим Api токен
Создаём роль с правами аудита:
pveum role add Zabbix.Audit --privs "Sys.Audit VM.Audit"
Zabbix.Audit — название роли
Sys.Audit VM.Audit — права на аудит
Создаем группу пользователей:
pveum group add Audit.Systems
Audit.Systems — название группы
Добавляем роль нашей группе пользователей:
pveum acl modify / -group Audit.Systems -role Zabbix.Audit
Создаём пользователя для Zabbix:
pveum user add zabbix@pam
Добавляем пользователя в группу Audit.Systems:
pveum user modify zabbix@pam -group Audit.Systems
Делаем запрос на получение токена:
pveum user token add zabbix@pam monitoring -privsep 0
Полученные реквизиты токена обязательно нужно сохранить
На этом с настройками на гипервизоре мы закончили.
Идем на GitHub и качаем шаблон для zabbix версии 6.4: https://github.com/zabbix/zabbix/blob/master/templates/app/proxmox/template_app_proxmox.yaml
На Zabbix идем в Data collection -->Группы узлов сети --> Hypervisors кликаем по ней и переименовываем, после чего нажимаем Обновить.
После этого идем в Data collection --> Узлы сети --> Создать узел сети
На вкладке макросы добавляем записи, в качестве значений вписываем параметры из карточки токена, ту что мы сохраняли с гипервизора, нажимаем Добавить:
На этом все ждем первых ласточек.
Установка клиента на Ubuntu+Elma и добавление в группу устройств для мониторинга
Загрузим файл последнего релиза из репозитория Центра загрузки Zabbix:
wget https://repo.zabbix.com/zabbix/6.3/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.3-3%2Bubuntu22.04_all.deb
Запустим его с помощью команды dpkg следующим образом:
dpkg -i zabbix-release_6.3-3+ubuntu22.04_all.deb
Обновим индекс пакетов zabbix для Ubuntu:
apt update
Проверяем версию пакета в репозитории:
apt show zabbix-agent
Package: zabbix-agent
Version: 1:6.4.0~beta4-1+ubuntu22.04
Установим Zabbix-agent:
apt install zabbix-agent
Проверим статус службы:
systemctl status zabbix-agent
Видим, что служба Zabbix agent запущена и работает.
Настроим конфигурационный файл /etc/zabbix/zabbix_agentd.conf, чтобы агент мог взаимодействовать с сервером Zabbix.
nano /etc/zabbix/zabbix_agentd.conf
Включаем пассивные проверки агента. Ищем переменные “server” и “Hostname” в файле zabbix_agentd.conf:
Server=ip_address
Hostname=zabbix
Перезапустим службу Zabbix agent:
systemctl restart zabbix-agent
Если у вас включен брандмауэр UFW, то необходимо добавить правило для tcp порта 10050:
ufw allow 10050/tcp
Перезагрузим брандмауэр:
ufw reload
Проверка статуса разрешенных портов брандмауэра:
ufw status
10050/tcp ALLOW Anywhere
На этом все с настройкой zabbix агента.
Добавим сервер в группу устройств для мониторинга
Переходим в раздел Data collection --> Узлы сети --> Создать узел сети
Указываем имя узла сети, шаблон, интерфейс по которому доступен сервер, да и пожалуй все.
Посмотреть статистику можно в разделе Мониторинг --> Проблемы или Узлы сети
Установка клиента на Windows и добавление в группу устройств для мониторинга
В нашем примере мы установим zabbix агент на Windows Server 2019 + MSSQL 2019 + 1C в качестве службы, а также сделаем необходимые настройки для отправки данных.
Переходим на страницу загрузки агента Zabbix https://www.zabbix.com/ru/download_agents и выбираем платформу операционной системы (x32 или x64) и версию агента, например:
https://cdn.zabbix.com/zabbix/binaries/stable/6.2/6.2.5/zabbix_agent2-6.2.5-windows-amd64-openssl.msi
Ждем окончания загрузки и переходим к установке.
Кликаем дважды по скачанному пакету и пробежимся по пунктам установки:
- В окне приветствия нажимаем Next
- Принимаем лицензионное соглашение, установив галочку I accept the terms in the License Agreement и нажимаем Next
- В следующем окне оставляем имя компьютера, на который устанавливается агент и вводим имя или IP-адрес сервера zabbix, после кликаем по Next
- Выбираем компоненты, которые хотим установить, можно просто оставить все по умолчанию и нажимаем Next
- Подтверждаем установку, кликая по Install
- Ждем завершения процесса, все агент установлен.
Необходимо настроить брандмауэр Windows, разрешая исходящие tcp пакеты с порта 10050 или приложение zabbix agent:
- Переходим в Панель управления - Система и безопасность - Брандмауэр Windows.
- Кликаем по Дополнительные параметры --> Правило для исходящего подключения
- Создаем правило Далее
- Протокол tcp, порт 10050 Далее
- Разрешить подключение Далее
- Для всех профилей стоит галочка Далее
- Задаем название zabbix готово
Добавим сервер в группу устройств для мониторинга
Переходим в раздел Data collection --> Узлы сети --> Создать узел сети
Указываем имя узла сети, шаблон, интерфейс по которому доступен сервер, да и пожалуй все.
Посмотреть статистику можно в разделе Мониторинг --> Проблемы или Узлы сети
Вывод
Zabbix заслуживающая вашего внимания передовая система мониторинга, продукт большой и вам потребуется потратить достаточно много времени на изучение специфики работы с ним.