Zabbix. Установка и настройка агента

Заметка по установке и настройке агента zabbix

Windows

Скачаем заббикс агент, соответствующий версии вашего сервера с официального сайта. Удобно качать агента в архиве.
В дальнейшем можно просто копировать настроенный агент на другие машины.

Путь расположения Zabbix агента по умолчанию:

"C:\Program Files\Zabbix"

После копирования агента в папку по умолчания можно выполнять команду на установку службы

Во избе­жа­ние лишних проблем с дебагом, по умолчанию, я рекомендую использовать для запуска и установки агента команды CMD. Это убережет от многих сложностей, т.к. ошибки сразу будут выводятся в консоль, в отличии от PS
Команда установки агента
C:\Program Files\Zabbix\bin\zabbix_agentd.exe -c "C:\Program Files\Zabbix\conf\zabbix_agentd.win.conf" –i

Могут так же понадобиться дополнительные команды:
Удаление агента

C:\Program Files\Zabbix\bin\zabbix_agentd.exe  -c "C:\Program Files\Zabbix\conf\zabbix_agentd.win.conf" -d

Запуск агента

C:\Program Files\Zabbix\bin\zabbix_agentd.exe -s

Остановка агента

C:\Program Files\Zabbix\bin\zabbix_agentd.exe -x
Альтернатива этих же команд для Powershell
Показать команды

Команда установки агента

Start-Process -FilePath 'C:\Program Files\Zabbix\bin\zabbix_agentd.exe' -ArgumentList '-c "C:\Program Files\Zabbix\conf\zabbix_agentd.win.conf" -i' -NoNewWindow

Удаление агента

Start-Process -FilePath 'C:\Program Files\Zabbix\bin\zabbix_agentd.exe' -ArgumentList '-c "C:\Program Files\Zabbix\conf\zabbix_agentd.win.conf" -d' -NoNewWindow
Описание основных параметров
DebugLevel=4 # Уровень детализации логирования. Нужно для отладки. По умолчанию можно не включать
LogFile=C:\Program Files\Zabbix\logs\zabbix_agentd.log
Server=zabbix.domain.me,mow3-zabbix # Сервера для агентов, работающих в пассивном режиме(Сервер опрашивает агенты)
ServerActive=zabbix.domain.me,mow3-zabbix # Для агентов в активном режиме(сами шлют инфу на сервер)
Timeout=30 # Время ожидания на получение ответа команды(например выхлоп скрипта)
EnableRemoteCommands=1 # Требуется для использования пользовательских скриптов user_param. В новых версиях AllowKey=system.run[*]
Include=C:\Program Files\Zabbix\conf\user_param\*.conf # Ссылки на конфиги которые тоже необходимо обрабатывать агенту
Hostname=MOW1-RDWEB-01 # Если имя не указать, то оно автоматически будет задано, в соответствии с именем компьютера - это предпочтительный вариант, исключающий механическую ошибку

Почему может не стартовать агент?

Обычно проблемы со стартом агента происходят из-за неверных параметров в конфигурационных файлах. Например:

1) Указан неподдерживаемый в текущей версии параметр
2) Конфликт параметров: параметр указан дважды в текущем конфиге, либо подключенном через Include.
В том числе в файлах описывающие пути к скриптам(user_param)
3) Конфиг содержит непечатаемые символы(невидимые). Это можно увидеть например через Notepad++
4) При установке службы был неверно указан путь к конфигурационному файлу:
в сервисах находим zabbix_agent и внимательно смотрим значение поля  «Path to executable»

Linux

Centos 7

Сначала нужно подключить репозиторий Zabbix в соответствии с текущей версией нашего сервера Zabbix и версией целевого сервера Linux.

Предположим у вас используется версия Zabbix 5.0 LTS
Версию сервера Centos смотрим командой:

cat /etc/centos-release

В данном примере это будет версия Centos 7

Выполняем апгрейд и установку пакета из репозитория:

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm

Добавляем агент в автозагрузку:

systemctl enable zabbix-agent.service

Для примера можно посмотреть настройки на другом сервере.
Выведутся только незакомментированные строки:

cat /etc/zabbix/zabbix_agentd.conf | grep -v \# | grep .

или так

grep -vE '^#|^$' /etc/zabbix/zabbix_agentd.conf

Можно изменить параметры вручную:
nano /etc/zabbix/zabbix_agentd.conf

(может потребоваться установить nano: yum install nano )

Необходимые настройки конфига:

Server=192.168.49.3
ServerActive=192.168.49.3
Hostname= {Имя сервера который подключаем в Zabbix}

Параметры по умолчанию можно изменить, не заходя в файл конфигурации, следующими командами:

sed -i "s/Server=127.0.0.1/Server=192.168.49.3/" /etc/zabbix/zabbix_agentd.conf
sed -i "s/ServerActive=127.0.0.1/ServerActive=192.168.49.3/" /etc/zabbix/zabbix_agentd.conf
read -p "Enter Hostname: " Hostname
sed -i "s/Hostname=Zabbix server/Hostname=$Hostname/" /etc/zabbix/zabbix_agentd.conf

Здесь мы руками задаем только имя хоста, когда спросит, на случай если вы хотите что бы имя агента отличалось от имени машины.

Запускаем агент:

systemctl start zabbix-agent

Проверяем статус:

systemctl status zabbix-agent
Траблшутинг

Если Zabbix сервер не может получить данных с агента, то нужно выполнить следующие проверки:

  • Убедится что с вашего сервера zabbix по телнету доступен порт 10050
    telnet *agent_ip* 10050
  • Убедится что агент слушает порт 10050
    sudo lsof -i -P -n | grep LISTEN | grep zabbix
  • Проверить что в фаерволе нет запрещающих правил:
    sudo iptables -S
  • Если после этого все равно нет связи, то стоит обратится к сетевикам, чтобы они разрешили на сетевом оборудовании передачу пакетов:
    — от zabbix сервера к хосту по порту 10050
    — от хоста к серверу по порту 10051

Iptables

Если после всех предыдущих шагов проблема не устранена, то вот что следует проверить на стороне Iptables:

  • Запрашиваем в виде таблицы цепочку INPUT с нумерацией правил
    sudo iptables -L INPUT —line-numbers
  • Если есть правило REJECT, то оно должно быть последним в цепочке. Иначе все что прописано после него(в рамках цепочки) не будет работать
    Если же правило разрешающее порт 10050 стоит после правила REJECT, то нужно поменять их местами.
    Для этого можно выбрать один из двух способов:

    1. Удалить REJECT правило из списка правил, и затем добавить последнюю строку:
      -D INPUT -j REJECT —reject-with icmp-host-prohibited
      sudo iptables -A INPUT -j REJECT —reject-with icmp-host-prohibited
    2. Удалить строку правила zabbix, затем поставить его в позиции перед REJECT правилом:
      -D INPUT -p tcp -m tcp —dport 10050 -j ACCEPT
      sudo iptables -I INPUT 7 -p tcp -m tcp —dport 10050 -j ACCEPT
      Например в списке правил у нас всего 7 строк, из которых запрещающее идет последним. Т.е. правило zabbix добавляем на его место.
  • Что бы изменения не сбросились при ребуте, необходимо выполнить команду, после чего правила станут постоянными:
    service iptables save

PS:

Если разворачивается внутренний сервис(в рамках одной сети), то возможно вы захотите отключить iptables:

systemctl stop firewalld # Останавливаем службу
systemctl disable firewalld # Отключить автозагрузку

 

Одна мысль про “Zabbix. Установка и настройка агента”

  1. Спасибо за статью! Было бы круто еще узнать как обновлять агенты со старых версий.

Добавить комментарий

Ваш адрес email не будет опубликован.