2 Агент
Zabbix агенты разворачиваются на наблюдаемых целях для активного мониторинга локальных ресурсов и приложений (статистика жестких дисков, памяти, процессоров и т.д.).
Агент локально собирает оперативную информацию и отправляет данные Zabbix серверу для дальнейшей обработки. В случае проблем (таких как отсутствие свободного места на жестком диске или аварийного завершения процесса сервиса), Zabbix сервер может быстро уведомить администраторов конкретного сервера, сообщившего об ошибке.
Zabbix агенты чрезвычайно эффективны, так как используют родные системные вызовы для сбора информации статистики.
Пассивные и активные проверки
Zabbix агенты могут выполнять пассивные и активные проверки.
В случае пассивной проверки агент отвечает на запрос данных. Zabbix сервер (или прокси) запрашивает данные, например, загрузку CPU, и Zabbix агент возвращает результат.
Активные проверки требуют более сложной обработки. Агент сначала получает список элементов данных для независимой обработки от Zabbix сервера. В дальнейшем он будет периодически отправлять новые значения серверу.
Выбор между пассивной и активной проверкой осуществляется при выборе соответствующего типа элемента данных. Zabbix агент обрабатывает элементы данных типов ‘Zabbix агент’ и ‘Zabbix агент (активный)’.
Поддерживаемые платформы
Zabbix агент поддерживается на следующих платформах:
- Windows (все версии для настольных компьютеров и серверов, начиная с XP)
- Linux (также доступно в виде Агент на UNIX системах
Установка
Смотрите раздел установки из пакетов для получения более детальных сведений по установке Zabbix агента из пакетов. В качестве альтернативы вы можете обратиться к инструкциям по ручной установке , если вы не хотите использовать пакеты.
В целом 32-битный Zabbix агент будет работать и на 64-битных системах, но в отдельных случаях возможно возникновение ошибок.
Если установлен из пакета
shell> service zabbix-agent start
Эта команда будет работать на большинстве систем GNU/Linux. На других системах вам, возможно, потребуется выполнить:
shell> /etc/init.d/zabbix-agent start
shell> service zabbix-agent stop shell> service zabbix-agent restart shell> service zabbix-agent status
Запуск вручную
Если приведенные ранее команды не работают, вам необходимо запустить агента вручную. Найдите путь к бинарному файлу zabbix_agentd и выполните:
Агент на Windows системах
Подготовка
Zabbix агент распространяется в виде zip архива. После загрузки архива вам необходимо распаковать его. Выберите любую папку для записи Zabbix агента и файла конфигурации, например:
Скопируйте bin\zabbix_agentd.exe и conf\zabbix_agentd.conf файлы в c:\zabbix. Измените c:\zabbix\zabbix_agentd.conf файл в соответствии с вашими требованиями, убедитесь что указан корректный параметр «Hostname».
Установка
C:\> c:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -i
Теперь у вас должна появиться возможность настройки службы «Zabbix agent» так же как и любой другой службы Windows. Смотрите более подробную информацию по установке и запуску Zabbix агента на Windows.
Другие опции агента
Имеется возможность запуска нескольких экземпляров агента на одном узле сети. Отдельный экземпляр может использовать файл конфигурации по умолчанию или же файл конфигурации, указанный в командной строке. В случае нескольких экземпляров каждый экземпляр агента должен иметь свой собственный файл конфигурации (один из них может использовать файл конфигурации по умолчанию). Следующие параметры командной строки могут быть использованы с Zabbix агентом:
Параметр | Описание |
---|---|
UNIX и Windows агенты | |
-c —config | Путь к файлу конфигурации. Вы можете использовать данную опцию, чтобы задать файл конфигурации, размещенный в папке отличной от заданной по умолчанию. В UNIX, путь по умолчанию /usr/local/etc/zabbix_agentd.conf или как задано во время компиляции переменными —sysconfdir или —prefix В Windows, путь по умолчанию c:\zabbix_agentd.conf |
-p —print | Вывод известных элементов данных и выход. Обратите внимание: Чтобы также получить результаты пользовательских параметров, вы можете указать файл конфигурации (если он находится вне папки, заданной по умолчанию). |
-t —test | Тестирование указанного элемента данных и выход. Обратите внимание: Чтобы также получить результаты пользовательских параметров, вы можете указать файл конфигурации (если он находится вне папки, заданной по умолчанию). |
-h —help | Вывод справочной информации |
-V —version | Вывод номера версии |
Только UNIX агент | |
-R —runtime-control | Выполнение административных функций. Смотрите управление работой. |
Только Windows агент | |
-m —multiple-agents | Использование нескольких экземпляров агента (с -i,-d,-s,-x функциями). Для уникальности имен экземпляров служб, каждое имя службы будет включать значение Hostname из указанного файла конфигурации. |
Только Windows агент (функции) | |
-i —install | Установка Zabbix агента службой |
-d —uninstall | Удаление службы Zabbix Windows агента |
-s —start | Запуск службы Zabbix Windows агента |
-x —stop | Остановка службы Zabbix Windows агента |
- отображение всех встроенных элементов данных с их значениями
- тестирование пользовательского параметра с ключом «mysql.ping» заданном в указанном файле конфигурации
- установка службы «Zabbix агента» в Windows с использованием пути по умолчанию до файла конфигурации c:\zabbix_agentd.conf
- установка службы «Zabbix Agent [Hostname]» в Windows с использованием файла конфигурации zabbix_agentd.conf, размещенного в той же самой папке, что и бинарный файл агента, и определение уникального имени службы с использованием значения Hostname из файла конфигурации
shell> zabbix_agentd --print shell> zabbix_agentd -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf shell> zabbix_agentd.exe -i shell> zabbix_agentd.exe -i -m -c zabbix_agentd.conf
Управление работой
Используя опции административных функций, вы можете изменить уровень журналирования у процессов агента.
Опция | Описание | Цель |
---|---|---|
log_level_increase[=] | Увеличение уровня журналирования. Действует на все процессы, если цель не указана. | Цель можно указать с помощью: тип процесса — все процессы указанного типа (например, listener) Смотрите весь список типов процессов агента. тип процесса,N — тип процесса и номер (например, listener,3) pid — идентификатора процесса (от 1 до 65535). В случае значений PID больше 65535 укажите цель в виде ‘тип процесса,N’. |
log_level_decrease[=] | Уменьшение уровня журналирования. Действует на все процессы, если цель не указана. | |
userparameter_reload | Перезагрузка пользовательских параметров из текущего файла конфигурации. Обратите внимание, из всех опций конфигурации агента можно перезагрузить только UserParameter. |
- увеличение уровня журналирования всем процессам
- увеличение уровня журналирования у третьего процесса listener
- увеличение уровня журналирования у процесса с PID 1234
- уменьшение уровня журналирования по всем процессам active check
shell> zabbix_agentd -R log_level_increase shell> zabbix_agentd -R log_level_increase=listener,3 shell> zabbix_agentd -R log_level_increase=1234 shell> zabbix_agentd -R log_level_decrease="active checks"
Выполнение административных функций не поддерживается в OpenBSD, NetBSD и Windows.
Типы процессов агента
- active checks — процесс для выполнения активных проверок
- collector — процесс для сбора данных
- listener — процесс ожидающий и выполняющий пассивные проверки
Можно воспользоваться файлом журнала агента для выявления этих типов процессов.
Пользователь процесса
Zabbix агент на UNIX системах спроектирован для запуска от не привилегированного пользователя (non-root). Он будет работать от любого не привилегированного пользователя от которого был запущен. Таким образом, вы можете запускать агент от имени любого не привилегированного пользователя, без каких либо последствий.
Если вы попытаетесь запустить агента от ‘root’, он сразу переключится на пользователя ‘zabbix’, который должен присутствовать в вашей системе. Единственный способ запустить агента от пользователя ‘root’ — отредактировать параметр ‘AllowRoot’ в файле конфигурации агента.
Файл конфигурации
Для получения подробной информации смотрите параметры файла конфигурации по настройке zabbix_agentd и Windows агента.
Региональные настройки (локаль)
Обратите внимание что агенту требуется UTF-8 локаль чтобы некоторые текстовые элементы данных агента смогли вернуть корректное содержимое. Большинство современных Unix-подобных систем имеют локаль UTF-8 установленной по умолчанию, тем не менее, есть некоторые системы где это необходимо задать вручную.
Код завершения процесса
До версии Zabbix 2.2, Zabbix агент возвращал 0 в случае успешного завершения процесса и код 255 в случае ошибки. Начиная с версии Zabbix 2.2 и выше Zabbix агент возвращает код 0 в случае корректного завершения процесса и код 1 в случае отказа/аварийного завершения процесса.
Установка агента Zabbix в Linux
В этой статье мы рассмотрим, как установить агент Zabbix в Linux, подключить его к серверу и наcтроить шифрование данных с помощью PSK.
Для установки агента Zabbix в Linux вам нужно подключить официальный репозиторий. Проверьте версию Linux на вашем сервере, перейдите на сайт https://www.zabbix.com/download, выберите версию Zabbix Server, и версию дистрибутива Linux.
Для вас будет сгенерирован набор команд для установки репозитория и агента.
В моем случае для установки Zabbix Agent2 на Ubuntu 22.04 LTSC нужно выполнить следующие шаги.
Установить репозиторий Zabbix и обновить кеш менеджера пакетов:
$ wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-4%2Bubuntu22.04_all.deb
$ sudo dpkg -i zabbix-release_6.2-4+ubuntu22.04_all.deb
$ sudo apt update
Теперь можно установить Zabbix agent2:
$ sudo apt install zabbix-agent2
Запустите службу агента Zabbix и добавьте его в автозагрузку.
$ sudo systemctl restart zabbix-agent2
$ sudo systemctl enable zabbix-agent2
Проверьте, что агент Zabbix запущен:
$ sudo systemctl status zabbix-agent2
Теперь нужно отредактировать конфигурационной файл агента:
$ sudo mcedit /etc/zabbix/zabbix_agent2.conf
Server=ИМЯ_или_IP_Zabbix_Server ServerActive=ИМЯ_или_IP_Zabbix_Server Hostname= appsrvub1
appsrvub1 – это вашего имя узла, который мы добавим далее на сервер мониторинга Zabbix.
В Zabbix доступны два режима проверки агентов:
- Пассивный режим – данные запрашиваются сервером Zabbix
- Активный режим – агент сам отправляет данные на сервер Zabiix (в моем случае сервер с агентом находится за NAT, поэтому для него я буду использовать активный режим)
Можно полностью отключить пассивные проверки:
Перезапустите агент Zabbix.
$ sudo systemctl restart zabbix-agent2
Проверьте, что агент успешно запустился:
Агент подключается к серверу на порт TCP/10051. Поэтому порт не должен блокироваться файерволами. Вы можете проверить доступность Zabbix Server с хоста с помощью netcat:
Теперь нужно добавить новый агент через веб-интерфейс Zabbix.
- Перейдите в раздел Configuration -> Hosts и нажмите Create host;
- Укажите имя хоста (должно соответствовать значению в конфигурационном файле агента);
- Назначьте шаблон (в моем случае это Linux by Zabbix agent active) и группу хостов;
- Т.к. мой агент Zabbix находится за NAT, для интерфейса агента не нужно указывать IP адрес. Просто укажите 0.0.0.0.
- Сохраните изменения.
- Теперь проверьте, что сервер Zabbix получает данные с агента. Перейдите в Monitoring ->Latest Data, выберите в поле Hosts нужный вам хост и нажмите Apply. Как вы видите данные с агента теперь доступны на сервере Zabbix.
По умолчанию агент Zabbix передает данные на сервер в открытом виде. Если данные от агентов поступают на сервере через публичную сеть Интернет, нужно настроить шифрование с помощью pre-shared ключей (PSK).
Подключитесь к агенту и сгенерируйте 256 битный PSK ключ с помощью openssl:
# openssl rand -hex 32 > /etc/zabbix/zabbix_agent.psk
# chown zabbix:zabbix /etc/zabbix/zabbix_agent.psk
# chmod 400 /etc/zabbix/zabbix_agent.psk
Теперь добавьте информацию о PSK ключе шифрования в конфигурационный файл:
TLSConnect=psk TLSAccept=psk TLSPSKFile=/etc/zabbix/zabbix_agent.psk TLSPSKIdentity=appsrvub1_PSK
Сохраните файл и перезапустите агент Zabbix:
$ sudo systemctl restart zabbix-agent2
Скопируйте значение PSK ключа:
Теперь нужно указать ваш PSK ключ в настройках хоста на сервере Zabbix.
- Откройте настройки хоста и перейдите на вкладку Encryption;
- Включите опцию PSK;
- Вставьте значение TLSPSKIdentity из конфигурационного файла агента в PSK Identity;
- Вставьте ваш PSK ключ в следующее поле;
- Нажмите кнопку Update.
- Если вы все настроили правильно, в информации о хосте в Zabbix будет указано, что агент использует соединение с PSK шифрованием.