Zabbix – система с открытым исходным кодом для мониторинга серверов, сетевого оборудования, приложений, баз данных и других компонентов IT-инфраструктуры. С её помощью можно отслеживать различные параметры системы в режиме реального времени, обнаруживать неисправности и автоматически уведомлять администратора о возникающих проблемах.
В маркетплейсе RUVDS есть образ сервера Zabbix, который можно использовать для настройки мониторинга IT-оборудования, в том числе, VPS. Для мониторинга Zabbix может использовать специальный программный компонент – Zabbix-агент. В случае с VPS данный агент устанавливается непосредственно на контролируемую виртуальную машину и собирает информацию о состоянии операционной системы: загрузке процессора и оперативной памяти, использовании дискового пространства, сетевой активности и других показателях. Полученные данные агент передаёт на сервер Zabbix, где они обрабатываются, сохраняются и отображаются в интерфейсе системы мониторинга.
В статье разберём, как установить и настроить агент Zabbix на VPS, работающий под управлением одной из операционных систем семейства Linux.
Установка агента Zabbix на Linux
Дистрибутив Zabbix-агента распространяется в виде архива, релиз которого можно подобрать на сайте продукта. Версии сервера, используемой в актуальном на момент написания статьи образе Zabbix, соответствует версия агента 6.0.48. Поэтому для установки на виртуальную машину следует применить именно её.
Для загрузки файла архива, содержащего дистрибутив агента, перейдите в каталог /tmp:
$ cd /tmp
Если вы используете CentOS или Rocky Linux, то установите утилиту wget, которая понадобится для загрузки дистрибутива, и архиватор tar, применяемый для распаковки архивов:
$ sudo dnf install wget tar
При помощи утилиты wget загрузите архив в текущий каталог:
$ wget https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.48/zabbix_agent-6.0.48-linux-3.0-amd64-static.tar.gz
Для распаковки дистрибутива создайте отдельную директорию, например, в каталоге /opt:
$ sudo mkdir -p /opt/zabbix
Распакуйте полученный архив в созданный каталог:
$ sudo tar -xvf zabbix_agent-6.0.48-linux-3.0-amd64-static.tar.gz -C /opt/zabbix
Исполняемый файл Zabbix-агента скопируйте в директорию /usr/sbin:
$ sudo cp /opt/zabbix/sbin/zabbix_agentd /usr/sbin
После чего проверьте версию агента:
$ /usr/sbin/zabbix_agentd -V

В директории /etc создайте каталог для конфигурационных файлов агента:
$ sudo mkdir -p /etc/zabbix
В созданный каталог скопируйте шаблон файла конфигурации, извлечённый из архива:
$ sudo cp /opt/zabbix/conf/zabbix_agentd.conf /etc/zabbix
Настройка агента Zabbix на Linux
На следующем шаге необходимо внести изменения в конфигурацию агента. На Ubuntu и Debian откройте файл при помощи текстового редактора nano:
$ sudo nano /etc/zabbix/zabbix_agentd.conf
В CentOS и Rocky Linux используйте vi:
$ sudo vi /etc/zabbix/zabbix_agentd.conf
В конфигурационном файле минимально необходимо установить следующие параметры:
PidFile=/run/zabbix/zabbix_agentd.pid– путь к PID-файлу, где будет храниться идентификатор процесса (PID), под которым запущена служба агента;LogFile=/var/log/zabbix/zabbix_agentd.log– расположение файла журнала событий;Server=X.X.X.X– IP-адрес сервера Zabbix (укажите его вместоX.X.X.X);Hostname=Your VPS– имя хоста, под которым агент будет идентифицировать себя в Zabbix.
На следующем шаге создайте системную группу с именем zabbix:
$ sudo groupadd --system zabbix
После чего создайте системного пользователя zabbix:
$ sudo useradd --system --gid zabbix --shell /usr/sbin/nologin --no-create-home zabbix
Данные пользователь и группа будут использоваться для запуска агента с минимально необходимыми привилегиями, что значительно повысит безопасность системы.
Запуск агента Zabbix в качестве системного сервиса
Для управления агентом средствами systemd необходимо настроить его использование в качестве системной службы. Служба позволит автоматически запускать агент при загрузке системы, останавливать, перезапускать его, контролировать его состояние и отслеживать возникающие ошибки. Благодаря этому агент Zabbix также будет работать в фоновом режиме без необходимости ручного запуска после каждой перезагрузки сервера.
Чтобы произвести такую настройку, создайте юнит-файл для новой службы. На Ubuntu или Debian используйте для этого текстовый редактор nano:
$ sudo nano /etc/systemd/system/zabbix-agent.service
На CentOS и Rocky Linux – текстовый редактор vi:
$ sudo vi /etc/systemd/system/zabbix-agent.service
В файл скопируйте следующие строки:
[Unit]
Description=Zabbix Agent
After=network.target
[Service]
Type=forking
User=zabbix
Group=zabbix
RuntimeDirectory=zabbix
RuntimeDirectoryMode=0755
PIDFile=/run/zabbix/zabbix_agentd.pid
ExecStart=/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
ExecStop=/bin/kill -TERM $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
После чего закройте файл с сохранением изменений.
Для корректной работы агента в качестве службы необходимо создать каталог для хранения файлов с журналами событий:
$ sudo mkdir -p /var/log/zabbix
Затем назначьте пользователя zabbix и группу zabbix владельцами созданного каталога и всех находящихся в нём файлов:
$ sudo chown -R zabbix:zabbix /var/log/zabbix
Также назначьте пользователя zabbix и группу владельцами директории, предназначенной для хранения файлов конфигурации агента:zabbix
$ sudo chown -R zabbix:zabbix /etc/zabbix
Для применения новых настроек перечитайте конфигурацию systemd:
$ sudo systemctl daemon-reload
После чего запустите службу Zabbix-агента:
$ sudo systemctl start zabbix-agent
Установите службу в автозагрузку:
$ sudo systemctl enable zabbix-agent
Затем проверьте текущее состояние службы:
$ systemctl status zabbix-agent
Вывод команды не должен содержать каких-либо ошибок.

Настройка брандмауэра
Для взаимодействия с агентом Zabbix по пассивным проверкам используется TCP-порт 10050. Сервер Zabbix подключается к этому порту на контролируемом сервере и запрашивает необходимые данные. Поэтому, если на сервере с Zabbix-агентом работает межсетевой экран, необходимо разрешить входящие подключения на порт 10050.
Чтобы сделать это на Ubuntu и Debian, добавьте в брандмауэр UFW соответствующее разрешающее правило:
$ sudo ufw allow 10050/tcp
В CentOS и Rocky Linux 9 по умолчанию используется firewalld. Открыть TCP-порт 10050 можно следующей командой:
$ sudo firewall-cmd --permanent --add-port=10050/tcp
Для применения нового правила без перезапуска firewalld выполните команду:
$ sudo firewall-cmd --reload
Добавление в систему мониторинга
Чтобы добавить VPS в систему мониторинга, подключитесь к веб-интерфейсу сервера Zabbix, перейдите в Configuration → Hosts и нажмите Create host.

Здесь заполните следующие поля:
- в поле
Host nameукажите значение параметраHostnameиз конфигурации Zabbix-агента; - выберите
Linux serversв полеGroups; - в поле
Agentукажите IP-адрес сервера, который вы ставите на мониторинг.

Затем переключитесь во вкладку Templates и, используя кнопку Select, выберите шаблон Template OS Linux by Zabbix agent. Для сохранения нового узла в системе мониторинга нажмите Add.

После добавления виртуального сервера в Zabbix с назначением шаблона Template OS Linux by Zabbix agent система начинает выполнять проверки его состояния.
Назначенный шаблон содержит набор элементов данных, которые определяют, какую информацию необходимо получать от виртуальной машины. Когда наступает время очередной проверки, сервер Zabbix устанавливает TCP-соединение с Zabbix-агентом на порту 10050 и отправляет ему запрос на получение конкретного значения.
Агент проверяет, разрешено ли серверу мониторинга обращаться к нему, обрабатывает запрос, получает необходимые данные от операционной системы и возвращает результат серверу мониторинга.
Полученное значение сервер Zabbix сохраняет в базе данных, после чего оно становится доступно в интерфейсе системы.
