
В прошлой статье мы рассказали, что нужно учитывать при мониторинге SAAS-сервиса интернет-магазинов. Теперь займемся практикой — установкой сервера Zabbix.
Для начинающих системных администраторов процедура установки Zabbix может показаться непростой, однако на самом деле в обычных случаях, если речь не идет о тысячах контролируемых хостов, особой сложности нет. Надеемся, что наша статья поможет вам внедрить этот мощный инструмент мониторинга в своей компании.
Приступаем к внедрению Zabbix
Если вы только приступаете к внедрению Zabbix, то установите сервер мониторинга Zabbix на виртуальную машину, например, арендованную в одном из дата-центров.
Также необходимо установить на каждый контролируемый сервер (хост) клиентское ПО Zabbix — агент и так называемую программу-траппер zabbix-sender, отправляющую данные мониторинга на сервер Zabbix из командной строки.
Для установки сервера Zabbix мы будем использовать виртуальные машины (ВМ) с ОС Debian 11. Перед тем как приступить к их заказу и установке ПО, нужно выбрать конфигурацию ВМ и дата-центры, где они будут установлены.
Выбор конфигурации виртуальной машины Zabbix
Как выбрать конфигурацию для виртуальной машины Zabbix?
Инструкцию по выбору конфигурации можно найти в документации (для версии 6.0 есть на русском языке).
Так как наш SAAS-сервис интернет-магазинов содержит пока только десятки хостов (а не сотни и тысячи, как хотелось бы), то нам будет достаточно ВМ с 4 ядрами, объемом оперативной памяти 4 Гбайт и диском 40 Гбайт. Если же требуется контролировать всего несколько хостов, хватит и двух процессорных ядер.
Заметим, что при размещении ВМ Zabbix в облаке есть возможность управлять количеством ядер и объемом оперативной памяти, выделяя при необходимости больше или меньше ресурсов.
Тут, однако, имеет смысл сравнить цены — облачные решения могут оказаться дороже простой виртуальной машины при одинаковых конфигурациях. Кроме того, у некоторых хостинг-провайдеров есть гибкие тарифы, которые позволяют изменять количество ядер и объём памяти после создания ВМ. Поэтому перед заказом сервера стоит проконсультироваться со специалистами хостинга и выяснить все детали.
Размещение серверов Zabbix в нескольких дата-центрах
Наличие нескольких серверов мониторинга в разных дата-центрах позволит контролировать доступность узлов из разных мест с учетом связности дата-центров. Когда возникнет проблема с доступностью, вы сможете быстро понять, с чем связана эта проблема — с работоспособностью самих хостов или с каналами передачи данных. Это важно, когда нужно как можно быстрее локализовать проблему.
Если к мониторингу предъявляются повышенные требования, используйте возможность создавать резервные серверы Zabbix (есть в Zabbix версии 6.x). Резервный сервер автоматически возьмет на себя работу при выходе из строя основного сервера мониторинга.
Установка серверного ПО Zabbix
Для получения инструкции по установке откройте страницу https://www.zabbix.com/download. Выберите здесь нужный вариант установки, платформу и другие параметры (рис. 1).

После выбора на странице появятся инструкция по установке в виде команд, которые нужно вводить в консоли ОС виртуальной машины сервера Zabbix.
Мы выбрали установку самой новой на момент написания этой статьи версии Zabbix 6.2 в ОС Debian 11, с базой данных MySQL и веб-сервером nginx.
Начнем с того, о чем не будет сказано в полученной таким способом инструкции.
Обновление ОС
Прежде всего, обновите ОС:
# apt update
# apt upgrade
Это нужно делать от пользователя root
или с помощью sudo
.
Установка fail2ban
Далее установите fail2ban для защиты от брутфорса, который начнется сразу, как только ваш виртуальный сервер станет доступен в интернете:
# apt install fail2ban
Проверьте, что fail2ban
работает:
# systemctl status fail2ban
Включите автоматический запуск fail2ban
при загрузке ОС:
# systemctl enable fail2ban
Более подробную инструкцию по настройке fail2ban для Debian 11 вы найдете здесь.
Установка MySQL
Инструкция по установке Zabbix предполагает, что MySQL (или совместимая с ней MariaDB) уже установлен на виртуальной машине и работает. Если это не так, установите MariaDB:
# apt install mariadb-server
Вы, конечно, можете использовать и MySQL.
Установка репозитория Zabbix
Далее выполните команды из инструкции, которая появится на странице https://www.zabbix.com/ru/download после выбора платформы и конфигурации.
Для начала установите репозиторий Zabbix:
# wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1+debian11_all.deb
# dpkg -i zabbix-release_6.2-1+debian11_all.deb
# apt update
Установка ПО сервера Zabbix, веб-интерфейса и агента Zabbix
Затем установите ПО сервера Zabbix, веб-интерфейс и агент Zabbix:
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Создание базы данных zabbix
Для создания базы данных пользователем root
запустите утилиту mysql
:
# mysql -u root
Если запускать эту утилиту от root, то пароль root от MariaDB вводить не нужно. И вообще при установке сервера Zabbix в Debian 11 этот пароль вам не потребуется.
Далее в приглашении mysql создайте базу данных:
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Теперь создайте пользователя zabbix@localhost, указав пароль (нужно указать свой):
MariaDB [(none)]> create user zabbix@localhost identified by 'pAssW0rd';
Сохраните использованный пароль, он вам еще потребуется при установке веб-интерфейса Zabbix.
Установите необходимые привилегии для базы данных:
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
И, наконец, завершите работу утилиты mysql:
MariaDB [(none)]> quit;
Запуск веб-интерфейса
На следующем шаге нужно запустить веб-интерфейс Zabbix.
Так как мы выбрали вариант установки с использованием Nginx, проверьте, не работает ли на виртуальной машине сервис Apache. Если работает, его нужно остановить, а затем отключить запуск при перезагрузке:
# systemctl status apache2
# systemctl stop apache2
# systemctl disable apache2
Дело в том, что Apache обычно занимает порт 80, который нужен нам для веб-интерфейса сервера Zabbix, работающего через более быстрый nginx.
Откройте редактором vim или nano файл /etc/zabbix/nginx.conf. Отредактируйте директивы listen и server_name, указав в первой из них порт 80, а во второй — доменное имя для веб-интерфейса сервера Zabbix (укажите здесь свой домен):
server {
# listen 8080;
listen 80;
server_name zbx62.mydomain.ru;
…
}
После редактирования проверьте конфигурацию nginx, перезапустите этот сервис и проверьте его состояние:
# nginx -t
# systemctl restart nginx
# systemctl status nginx
Запустите процессы сервера и агента Zabbix и настройте их запуск при загрузке ОС.
# systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
# systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
Теперь откройте в браузере сайт по ссылке, подобной приведенной ниже:
http://xxx.xxx.xxx.xxx:/setup.php
Здесь вместо xxx.xxx.xxx.xxx
укажите IP-адрес виртуальной машины, на которую вы установили сервер Zabbix. В окне браузера появится первая страница установки (рис. 2).

Нажмите кнопку Next step, чтобы проверить выполнение условий для установки (рис. 3).

Если что-то не так, вы увидите сообщения о необходимости внесения изменений, например, в конфигурацию php.ini. Внесите эти изменения и запустите проверку еще раз.
Когда все условия выполнены, снова щелкните кнопку Next step. Укажите в поле Password пароль базы данных, который был задан ранее при создании пользователя zabbix@localhost (рис. 4).

На следующем шаге задайте имя сервера Zabbix в поле Zabbix server name, укажите свой часовой пояс и выберите тему для оформления веб-интерфейса Zabbix (рис. 5).

Теперь осталось еще два раза нажать кнопку Next step, подтвердив действия, и установка сервера Zabbix будет завершена.
Подключение к веб-интерфейсу
Для подключения к веб-интерфейсу сервера Zabbix откройте в браузере страницу http://xxx.xxx.xxx.xxx/. Как и при установке, вместо xxx.xxx.xxx.xxx
укажите IP-адрес виртуальной машины Zabbix.
На странице авторизации введите логин Admin и пароль zabbix.
Если вы все сделали правильно, в браузере появится панель (дашборд) веб-интерфейса Zabbix (рис. 6).

Первым делом поменяйте пароль пользователя Admin. Для этого откройте слева меню Administration и выберите раздел Users. Там щелкните имя пользователя Admin и затем кнопку Change password.
Установка клиентского ПО Zabbix
На каждый сервер (физический или виртуальный), который вы собираетесь контролировать при помощи Zabbix, нужно установить агент zabbix-agent и программу zabbix-sender.
Агент позволяет контролировать различные параметры сервера. Программа zabbix-sender представляет собой утилиту командной строки для отправки значений контролируемых параметров на сервер Zabbix.
Существует две версии агента — zabbix-agent и zabbix-agent2. Обе эти версии рабочие и продолжают развиваться.
Установим обе версии сразу.
Установка агента Zabbix и программы zabbix_sender на ОС Linux
Для начала обновите ОС на контролируемом хосте:
# apt update
# apt upgrade
Затем установите репозиторий Zabbix, как мы это делали для сервера:
# wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1+debian11_all.deb
# dpkg -i zabbix-release_6.2-1+debian11_all.deb
# apt update
Теперь выполните установку агента zabbix-agent и программы zabbix-sender:
# apt install zabbix-agent zabbix-sender
Проверьте версии установленных программ:
# zabbix_agentd -V
# zabbix_sender -V
Чтобы установить zabbix-agent2, используйте следующую команду:
# apt install zabbix-agent2
Теперь вы можете запустить zabbix-agent2, предварительно остановив zabbix-agent:
# systemctl stop zabbix-agent
# systemctl start zabbix-agent2
Если нужно вернуться к первой версии zabbix-agent, то это можно сделать так:
# systemctl stop zabbix-agent2
# systemctl start zabbix-agent
Когда вы определитесь с версией нужно вам агента Zabbix, сделайте так, чтобы при перезагрузке ОС этот агент запускался автоматически. Например, так вы можете разрешить автозапуск для zabbix-agent2, запретив его для zabbix-agent:
# systemctl enable zabbix-agent2
# systemctl disable zabbix-agent
Настройка конфигурации агента Zabbix
Чтобы сервер Zabbix «увидел» контролируемые хосты, на которых вы установили агента Zabbix, нужно правильным образом отредактировать файл конфигурации агента на каждом хосте.
Узнать состояние агента, а заодно и путь к файлу конфигурации можно так:
# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-07-15 10:57:21 MSK; 5s ago
Process: 2857 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
Main PID: 2859 (zabbix_agentd)
Tasks: 6 (limit: 4676)
Memory: 3.9M
CPU: 32ms
CGroup: /system.slice/zabbix-agent.service
├─2859 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
├─2860 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
├─2861 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
├─2862 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
├─2863 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
└─2864 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
Как видите, для zabbix-agent конфигурация задается в файле /etc/zabbix/zabbix_agentd.conf
. Для zabbix-agent2 используется другой файл: /etc/zabbix/zabbix_agent2.conf
.
Если вы установили оба агента, отредактируйте эти файлы и перезапустите агенты. Вам нужно найти в файлах конфигурации агентов следующие строки:
Server=127.0.0.1
Hostname=Zabbix server
В первой из них укажите адрес IP своего сервера Zabbix, а во второй — имя контролируемого хоста. Когда у вас будет два или несколько серверов Zabbix, укажите здесь адреса IP всех таких серверов через запятую.
Для перезапуска агентов используйте команды:
# systemctl restart zabbix-agent2
# systemctl restart zabbix-agent
Добавление контролируемого хоста на сервер Zabbix
Откройте главную страницу веб-интерфейса Zabbix, затем выберите из меню Configuration строку Hosts. Откроется страница Hosts, на которой уже добавлен один хост с именем Zabbix server. Это хост, на котором установлен сам сервер Zabbix, и его адрес IP указан как 127.0.0.1 (рис. 7).

Для добавления нового контролируемого хоста щелкните кнопку Create host. Появится форма, где нужно заполнить параметры нового хоста (рис. 8).

Здесь вам нужно указать в поле Host name такое же имя хоста, что было задано в файле конфигурации агента Zabbix.
Для мониторинга обычного физического или виртуального сервера Linux выберите в поле Templates шаблон Linux by Zabbix agent.
Далее нужно задать имя группы в поле Host groups. Сразу после установки в конфигурации Zabbix нет ни одной группы, поэтому вам нужно создать новую группу. Мы рекомендуем отразить в имени группы название дата-центра и тип узла, чтобы по этому имени можно было быстро понять, что это за хосты, где они находятся и для чего предназначены.
В поле Interfaces щелкните ссылку Add (на рис. 8 не показана), а затем выберите строку Agent. Далее в поле Agent формы укажите адрес IP нового контролируемого хоста, как это показано на рис. 8.
Когда все поля будут заполнены, щелкните кнопку Add.
Через некоторое время (порядка нескольких минут) напротив добавленного хоста в столбце Availability появится значок ZBX зеленого цвета (рис. 9).

Если этого не произошло, проверьте еще раз файл конфигурации агента Zabbix, состояние сервиса zabbix-agent (или zabbix-agent2, если вы его используете), а также убедитесь, что после редактирования файла конфигурации агента вы перезапустили сервис.
Кроме того, убедитесь, что на контролируемом хосте открыт порт 10050 для сервера Zabbix.
При ошибке вы увидите значок ZBX красного цвета. Щелкните его, и на экране появится сообщение об ошибке (рис. 10).

Если вам нужно добавить несколько похожих друг на друга хостов на сервер Zabbix, воспользуйтесь функцией клонирования. Для этого откройте хост в списке хостов, щелкнув по его имени, а затем воспользуйтесь кнопкой Clone или Full clone. Измените имя хоста и его адрес IP, отредактируйте список использованных шаблонов, а затем сохраните изменения кнопкой Add.
Функция Full clone позволяет дополнительно скопировать элементы данных (items), триггеры, графы и приложения. Это удобно, если для хостов были сделаны индивидуальные настройки.
Что нужно сделать дальше
В следующей статье мы расскажем о настройке мониторинга дисковых систем и контроллеров диска.
А пока добавьте на свой сервер Zabbix все контролируемые хосты, сгруппировав их по дата-центрам, типам хостов и выполняемым функциям.
Мы, например, создали группы для каждого дата-центра, для физических серверов и виртуальных машин, для мониторинга сайтов, сроков действия сертификатов и доменных имен.
Также рекомендуем ознакомиться с документацией Zabbix. Для версии 6.2 она доступна на английском языке, а для версии 6.0 на русском языке.
Автор: Александр Фролов.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.