Zabbix — это популярный инструмент, предназначенный для мониторинга серверов, сетей, сервисов, облачных ресурсов, а также бизнес-показателей. Zabbix является продуктом с открытым исходным кодом.
В состав Zabbix входят такие компоненты как:
Zabbix-сервер — основной компонент системы. Основные функции сервера — хранение данных и управление сетевыми сервисами.
Zabbix-агент — утилита, работающая в фоновом режиме (режим «демона»), которая мониторит и собирает статистику по таким ресурсам, как RAM (оперативная память), процессор и т.д. Также собирает метрики приложений. Агент поддерживает два режима работы: активный режим, при котором агент самостоятельно запрашивает необходимые данные, а также пассивный режим, когда агент ожидает запросы от сервера.
Zabbix-прокси — необязательный компонент, который отвечает за распределение нагрузки на Zabbix сервер.
Веб-интерфейс — веб-панель, предназначенная для отслеживания показателей системы. Также при помощи веб-интерфейса можно производить настройку как самого Zabbix, так и отслеживаемых компонентов.
В данной статье мы установим Zabbix 6 версии на операционную систему Ubuntu 22.04, а также подключим и настроим один агент.
cloud
Чтобы произвести установку Zabbix нам необходимо следующее:
Два сервера или две виртуальные машины с предустановленной ОС Ubuntu 22.04 — один сервер для установки сервера Zabbix, второй для установки агента Zabbix.
СУБД MySQL/MariaDB или PostgreSQL, заранее установленная на тот хост, куда будет установлен сервер Zabbix.
Установить нужную СУБД на Ubuntu вам помогут наши инструкции: Установка MySQL, Установка MariaDB, Установка PostgreSQL.
В данной статье будет использоваться PostgreSQL.
Чтобы арендовать облачный или выделенный сервер в Timeweb Cloud, необходимо пройти регистрацию.
Переходим по ссылке для регистрации нового пользователя. Мы выберем регистрацию на физическое лицо и заполним следующие данные:
Номер телефона можно указать по желанию. Также регистрацию можно пройти, воспользовавшись одним из сторонних сервисов: Google-аккаунт, ВКонтакте и GitHub.
После регистрации на указанный адрес почты придет сообщение с ссылкой для активации аккаунта и входа в панель — перейдите по ней.
После того, как учетная запись была создана и активирована, можно арендовать облачный сервер.
1) Переходим на страницу авторизации и входим в аккаунт при помощи логина или адреса электронной почты и пароля или при помощи ВКонтакте, GitHub, Google.
2) После успешной авторизации отобразится панель управления текущего проекта. Переходим в раздел «Облачные серверы» и нажимаем «Создать» или «Добавить».
3) Выбираем операционную систему, которая будет установлена на сервер. В нашем случае нам необходима Ubuntu 22.04.
4) Выбираем регион, в котором будет находиться наш сервер. Выбирать рекомендуется тот регион, который ближе всего находится к вам физически. У каждого доступного региона справа вверху отображается ping, т.е. время, необходимое для передачи данных с вашего компьютера на сервер. Чем меньше указанное время, тем быстрее будет осуществляться передача данных.
5) Далее выбираем необходимую конфигурацию сервера. Для Zabbix-сервера выберем двухъядерный процессор и 40 ГБ жесткого диска, для агента выберем одноядерный процессор и 2 ГБ оперативной памяти:
6) Далее необходимо решить, будет ли сервер доступен из внешний сети или же только из приватной (частной) сети. Для выхода сервера в Интернет, нужно заказать плавающий IP.
7) По желанию можно оформить дополнительные услуги, включая резервные копии и защиту от DDoS-атак (последняя доступна только в Санкт-Петербурге и Москве).
8) Также заранее можно загрузить SSH-ключ, чтобы не входить на север при помощи пароля.
9) Можно задать необходимое имя для сервера которое будет отображаться в панели управления, а также выбрать проект.
10) Для оплаты необходимо нажать на кнопку «Заказать».
Если на вашем аккаунте недостаточно средств, то будет выведено предупреждение о необходимости пополнить баланс. После оплаты и создания сервера откроется Дашборд сервера, где можно будет найти IP-адрес, логин и пароль для подключения.
Все последующие шаги необходимо выполнять под учетной записи root
или от имени пользователя с правами sudo
.
1) Для начала необходимо добавить официальный репозиторий Zabbix. Скачиваем пакет в формате .deb
при помощи утилиты wget
:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
2) Устанавливаем скачанный файл с помощью утилиты dpkg
:
dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
3) После того как пакет успешно был установлен, переходим к установке Zabbix-сервера и его зависимостей. Сначала обновляем списки репозиториев. Помимо самого сервера Zabbix, будет установлен интерпретатор языка PHP, агент Zabbix, необходимые плагины, а также веб-сервер Nginx:
apt update && apt -y install zabbix-server-pgsql zabbix-frontend-php php8.1-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
4) Создаем пользователя в PostgreSQL с именем zabbix
(напомню, что СУБД уже должна быть заранее установлена, инструкции можно найти в начале статьи):
sudo -u postgres createuser --pwprompt zabbix
Необходимо задать пароль для создаваемой учетной записи и повторить его.
Далее создаем базу данных с именем zabbix
:
sudo -u postgres createdb -O zabbix zabbix
5) Импортируем файлы, содержащие схему данных, в созданную ранее БД с именем zabbix
:
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
6) Открываем на редактирование файл zabbix_server.conf
при помощи любого текстового редактора:
nano /etc/zabbix/zabbix_server.conf
Ищем параметр DBPassword
и задаем пароль от БД:
Сохраняем изменения и выходим из файла.
7) Далее открываем на редактирование файл nginx.conf
:
nano /etc/zabbix/nginx.conf
В блоке server
раскомментируем параметры listen
и server_name
, задав порт (по умолчанию используется порт 8080), на котором будет доступен веб-интерфейс Zabbix (параметр listen
), и адрес сервера, по которому будет открываться веб-интерфейс (параметр server_name
). Использовать можно как доменное имя, так и IP-адрес:
Сохраняем изменения и выходим из файла.
8) Перезапускаем сервер Zabbix, агент Zabbix, Nginx, PHP-FPM и добавляем их в автозагрузку:
systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm && systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
Проверяем статус сервера Zabbix:
systemctl status zabbix-server
Если в статусе отображается active (running)
, то сервер Zabbix успешно запущен и работает. На этом установка завершена.
При возникновении ошибок более подробную информацию можно будет найти в лог-файле zabbix_server.log
, который расположен в /var/log/zabbix/
.
Дальнейшая настройка Zabbix производится в веб-интерфейсе. Для этого необходимо перейти по доменному имени и порту, которые были указаны в параметрах server_name
и port
конфигурационного файла nginx.conf
.
При первом переходе отобразится приветственное меню.
1) На первом шаге выбираем необходимый язык:
2) Далее система проверит наличие необходимых компонентов, их версии и необходимые технические требования:
3) После того как все проверки будут пройдены, необходимо проверить и при необходимости изменить параметры, связанные с базой данных. Так как ранее база данных с именем zabbix
уже была создана, то необходимо только ввести имя пользователя БД — zabbix
(параметр User) и его пароль (параметр Password):
Указывать имя схемы БД (Database schema) не нужно.
4) В последнем шаге необходимо задать имя для Zabbix-сервера (Zabbix server name), указать необходимый часовой пояс (Default time zone) и при желании изменить тему оформления по умолчанию (Default theme):
5) Система отобразит ранее указанные настройки. Если все правильно, нажимаем на кнопку Next step:
После подтверждения Zabbix оповестит, что настройка успешно завершена:
После настройки отобразится форма с авторизацией в веб-интерфейсе Zabbix. По умолчанию используется логин Admin и пароль zabbix:
После успешной аутентификации откроется главное меню:
Переходим на второй сервер, куда мы будем устанавливать агент Zabbix. Установка агента аналогична установке сервера Zabbix. Все последующие шаги будут выполняться под учетной записью root
.
1) Добавляем официальный репозиторий Zabbix. Скачиваем пакет в формате .deb
при помощи утилиты wget
:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu22.04_all.deb
2) Устанавливаем скачанный файл с помощью утилиты dpkg
:
dpkg -i zabbix-release_latest+ubuntu22.04_all.deb
3) Обновляем списки репозиториев и устанавливаем Zabbix-агент:
apt update && apt -y install zabbix-agent
4) Открываем на редактирование файл zabbix_agentd.conf
при помощи любого текстового редактора:
nano /etc/zabbix/zabbix_agentd.conf
Необходимо изменить следующие параметры:
Server
— необходимо задать доменное имя или IP-адрес, на котором находится сервер Zabbix.
ServerActive
— продублировать доменное имя или IP-адрес, на котором находится сервер Zabbix. Данный параметр отвечает за активный режим, когда Zabbix самостоятельно запрашивает необходимые данные.
Hostname
— указать hostname агента в точности как он указан в системе. Чтобы узнать имя хоста можно воспользоваться командой hostname
. Если неправильно указать имя хоста, тогда агент не сможет подключиться к серверу Zabbix.
5) После того как все необходимые изменения были внесены, необходимо перезапустить Zabbix-агент и добавить его в автозагрузку:
systemctl restart zabbix-agent && systemctl enable zabbix-agent
Проверяем статус агента:
systemctl status zabbix-agent
Если в статусе отображается active (running)
, то агент Zabbix успешно запущен и работает. На этом установка и настройка агента Zabbix завершены.
При возникновении ошибок более подробную информацию можно будет найти в лог-файле zabbix_agentd.log
, который расположен в /var/log/zabbix/
.
Для добавления Zabbix-агента, необходимо следующее:
1) Переходим в веб-интерфейс Zabbix-сервера и раскрываем раздел Configuration, далее пункт Hosts:
2) В появившемся меню справа сверху будет находиться кнопка Create host, нажимаем на неё:
3) Необходимо заполнить следующие поля:
Host name — задать любое удобное имя для агента Zabbix. Данное имя будет отображаться в веб-интерфейсе Zabbix-сервера.
Groups — создать новую группу или выбрать уже существующую, например с названием Linux servers. Группы используются для организационных целей и для назначения прав доступа к данным.
Templates — выбрать шаблон, который используется в точности как у агента установленного на сервере.
Interfaces — нажать на add и добавить IP-адрес хоста, где установлен агент Zabbix. Также вместо IP-адреса можно использовать доменное имя.
При использовании IP-адреса необходимо вписать его в поле IP address и выбрать IP в разделе Connect to.
При использовании доменного имени необходимо вписать имя в раздел DNS name и выбрать DNS в в разделе Connect to.
Также обязательно указываем порт агента. Порт, используемый по умолчанию, — 10050:
После того как данные агенты внесены, необходимо нажать на кнопку Update. Агент подключится в течение минуты и отобразится в списке агентов:
После того как агент был успешно подключен, проверим работоспособность метрик. Переходим в раздел Monitoring, в открывшемся меню выбираем пункт Hosts:
В списке находим ранее подключенный агент и наводим на него курсор мыши. Выбираем пункт Graphs:
Zabbix автоматически создает метрики для мониторинга ресурсов серверов, включая потребление оперативной памяти, загрузку процессора, использование диска и т.д:
Разверните Zabbix на серверах Timeweb Cloud
При помощи Zabbix можно организовать как мониторинг своего оборудования (включая сетевое), так и отслеживать показатели сервисов, включая бизнес-логику приложений. Также Zabbix отлично подходит как для работы в корпоративной среде, так и в домашней.