Zabbix agent windows firewall cmd

Установка Zabbix agent на Windows

В нашем примере мы установим агент для Zabbix на Windows в качестве службы, а также сделаем минимальную настройку для отправки данных на сервер.

Загрузка агента

Переходим на страницу загрузки агента Zabbix и выбираем платформу операционной системы (x32 или x64) и версию агента, например:

* помимо этого, мы можем выбрать вариант дистрибутива: с использованием шифрования или нет, а также файл установки — msi пакет или архив. В данном примере мы выбрали версию 5.

В зависимости от выбранных критериев поиска агента, ниже мы можем увидеть несколько вариантов для загрузки. Находим нужный и кликаем по DOWNLOAD для скачивания файла:

Ждем окончания загрузки и переходим к установке.

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

В зависимости от загрузки типа пакета (MSI или архив) будут разные методы установки. Рассмотрим оба.

Установка из MSI-пакета

Это удобный вариант, который позволит установить агента с помощью мастера. Чтобы начать, кликаем дважды по скачанному пакету и в окне приветствия нажимаем Next:

Принимаем лицензионное соглашение, установив галочку I accept the terms in the License Agreement и нажимаем Next:

В следующем окне оставляем имя компьютера, на который устанавливается агент и вводим имя или IP-адрес сервера zabbix, после кликаем по Next:

* в данном примере имя нашего компьютера Windows PC, а сервера — zabbix-server.dmosk.local.

Выбираем компоненты, которые хотим установить — можно просто оставить все по умолчанию и нажимаем Next:

Подтверждаем установку, кликая по Install:

Ждем завершения процесса — агент установлен.

Установка из архива

Данный метод требует дополнительных манипуляций, но с его помощью можно автоматизировать процесс. Мы рассмотрим только установку.

Распаковываем содержимое скачанного архива в каталог, где будут находиться файлы программы, например в C:\Program Files\Zabbix Agent. В итоге, у нас получится:

Открываем WordPad от администратора и в нем открываем конфигурационный файл conf/zabbix_agentd.conf и правим опцию для сервера zabbix — находим строку:

* где zabbix-server.dmosk.local — имя сервера Zabbix.

Теперь открываем командную строку от администратора и выполняем команду для установки агента:

«C:\Program Files\Zabbix Agent\bin\zabbix_agentd.exe» —config «C:\Program Files\Zabbix Agent\conf\zabbix_agentd.conf» —install

* где C:\Program Files\Zabbix Agent — папка, куда мы распаковали архив.

Мы должны увидеть что-то на подобие:

zabbix_agentd.exe [468]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [468]: event source [Zabbix Agent] installed successfully

Теперь открываем службы Windows и находим «Zabbix Agent» — кликаем по ней правой кнопкой мыши и выбираем Запустить:

Настройка брандмауэра

Если в нашей системе работает брандмауэр Windows, необходимо разрешить порт 10050 или приложение zabbix agent.

Для этого переходим в Панель управленияСистема и безопасностьБрандмауэр Windows (или вводим команду control /name Microsoft.WindowsFirewall). Кликаем по ссылке Разрешение взаимодействия с приложением или компонентов в брандмауэре Windows — добавляем наше приложение zabbix_agentd в исключение.

Это же действие можно выполнить в powershell — запускаем ее от администратора и вводим команду:

New-NetFirewallRule -DisplayName «Разрешить приложение Zabbix Agent» -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Program «C:\Program Files\Zabbix Agent\bin\zabbix_agentd.exe»

Или мы можем добавить в исключение порт. Это можно сделать также из командной строки poweshell:

New-NetFirewallRule -DisplayName «Разрешить порт 10050 для Zabbix» -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -LocalPort 10050

Проверка работы

Чтобы убедиться в работоспособности агента, мы можем зайти на сервер zabbix и выполнить подключение по telnet, например, командой:

telnet 192.168.1.15 10050

* где 192.168.1.15 — IP-адрес компьютера с установленным Zabbix.

Мы должны увидеть

Connected to nr-fs-06.
Escape character is ‘^]’.

.. и через небольшой интервал времени:

Connection closed by foreign host.

Но если агент не запущен или не работает, мы увидим ошибку:

telnet: connect to address . Connection refused

В панели сервера в узлах сети при корректной установке и настройке, мы также должны увидеть доступность компьютера по агенту:

Установка Zabbix-агента для Windows.

Установку агента Zabbix можно выполнить как стандартным способом установки из дистрибутива, так и простым копированием файлов. Второй способ удобней в том случае, когда необходимо установить агента на большое количество клиентов. При этом придется отдельно добавлять службу для запуска агента, но и это решается одной командой в командной строке Windows.

Установка Zabbix-агента для Windows из дистрибутива.

На официальном сайте Zabbix.com доступен для скачивания установочный файл MSI и архив: https://www.zabbix.com/download_agents

Во время установки zabbix-агента из дистрибутива MSI потребуется указать следующую обязательную информацию, необходимую для взаимодействия агента с сервером:

  • Host name — имя хоста (не обязательно должно совпадать с именем компьютера);
  • Zabbix-server IP/DNS — ip-адрес либо имя Zabbix-сервера.
Читайте также:  Windows camera latest version

Следующую информацию можно оставить по умолчанию:

  • Agent listen port — порт агента, стандартный 10050;
  • Server or Proxy for active checks — адрес дополнительного прокси-сервера zabbix, если его нет оставляем 127.0.0.1;
  • Remote command — разрешает агенту выполнять удаленные команды, заданные на сервере;
  • Enable PSK — включает шифрование;
  • Add agent location to the PAHT — указать директорию установки агента.

Так же вы можете увидеть предупреждение «Firewall exception rule will not be installed» — это значит, что в брандмауэре Windows порт 10050 придется открывать самостоятельно. Как это сделать через командную строку Windows смотрите в конце статьи.

Установка zabbix-агента на Windows путем копирования файлов.

Если предстоит установка zabbix-агента на множество хостов, то проще это сделать обычным копированием файлов агента на целевые хосты с последующим добавлением службы агента.

В папке zabbix-агента находятся три исполняемых файла .exe и один текстовый .conf.

  • zabbix_agentd.exe — файл самого агента;
  • zabbix_get.exe — утилита для подключения к агенту и получения от него информации, используется для проверки работы агента;
  • zabbix_sender.exe — утилита для отправки данных о производительности Zabbix-серверу;
  • zabbix_agentd.conf — файл настроек агента.

1. Выполняем настройку агента путем правки конфигурации в файле zabbix_agentd.conf.

Указываем имя хоста в параметре HOSTNAME.

Имена хостов должны быть абсолютно уникальными, потому-что Zabbix-сервер не даст создать 2 хоста с одинаковым именем.

Строка указывающая адрес Zabbix-сервера:

2. Добавляем службу zabbix-агента.

Через командную строку Windows можно добавить службу так:

3. Открываем порт 10050 для входящих соединений.

Все эти команды для запуска службы и настройки брандмауэра можно закинуть в один bat-файл и выполнять его после копирования файлов агента и настройки конфигурации.

Zabbix Documentation 5.2

Table of Contents

9 Zabbix агент на Microsoft Windows

Настройка агента

Zabbix агент работает службой Windows.

Вы можете запустить один экземпляр Zabbix агента или несколько экземпляров агента на хосте Microsoft Windows. Одиночный экземпляр может использовать файл конфигурации C:\zabbix_agentd.conf по умолчанию или файл конфигурации, указанный в командной строке. В случае нескольких экземпляров каждый экземпляр агента должен иметь свой собственный файл конфигурации (один из экземпляров может использовать файл конфигурации по умолчанию).

Пример файла конфигурации доступ в архиве с исходными кодами Zabbix, в conf/zabbix_agentd.win.conf .

Смотрите опции файла конфигурации для получения подробных сведений по настройке Zabbix Windows агента.

Параметр Hostname

Для выполнения активных проверок на узле сети Zabbix агента требуется, чтобы было задано имя хоста. Кроме того, указанное значение имени хоста на стороне агента должно в точности совпадать с “именем узла сети” указанном для этого узла сети в веб-интерфейсе.

Значение имени хоста на стороне агента можно задать параметрами Hostname или HostnameItem в файле конфигурации агента — или будут использованы значения по умолчанию, если ни один из этих параметров не указан.

Значением по умолчанию для параметра HostnameItem является значение полученное ключем агента “system.hostname” и для Windows платформы оно вернет NetBIOS имя хоста.

Значением по умолчанию для параметра Hostname будет значение полученное параметром HostnameItem. Таким образом, по сути, если оба этих параметра не заданы, то фактически именем хоста будет NetBIOS имя хоста; Zabbix агент будет использовать NetBIOS имя хоста для получения списка активных проверок от Zabbix сервера и отправлять результаты по ним.

Начиная с Zabbix агента 1.8.6 под Windows ключ “system.hostname” поддерживает опциональный параметр — тип имени. Значением по умолчанию этого параметра является “netbios” (для обратной совместимости) и другое возможное значение “host”.

Таким образом, чтобы упростить настройку zabbix_agentd.conf файла и сделать его унифицированным, можно использовать два различных похода.

Также при установке, запуске, остановке и удалении службы Windows имя хоста используется как часть имени службы Windows. Например, если в файле конфигурации Zabbix агента указано Hostname=Windows_db_server , тогда агент будет установлен как служба Windows “ Zabbix Agent [Windows_db_server] ”. Поэтому, чтобы у каждого экземпляра Zabbix агента имелись разные имена служб Windows, каждый экземпляр должен использовать отличное от другого экземпляра имя хоста.

Установка агента службой Windows

Для установки одиночного экземпляра Zabbix агента с файлом конфигурации c:\zabbix_agentd.conf по умолчанию:

Если вы хотите использовать файл конфигурации, отличный от c:\zabbix_agentd.conf , вы должны использовать следующую команду для установки службы:

Необходимо указать полный путь к файлу конфигурации.

Можно установить несколько экземпляров Zabbix агента службами, примерно следующим образом:

Установленная служба теперь будет видна в Панеле Управления.

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

Для запуска службы агента, вы можете использовать Панель Управления или сделать это из командной строки.

Для запуска одиночного экземпляра Zabbix агента с файлом конфигурации по умолчанию:

Для запуска одиночного экземпляра Zabbix агента с отличным от умолчания файлом конфигурации:

Для запуска одного из нескольких экземпляров Zabbix агента:

Читайте также:  Как вернуть статус администратора windows 10

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

Для остановки службы агента, вы можете использовать Панель Управления или сделать это из командной строки.

Для остановки одиночного экземпляра Zabbix агента, который запущен с файлом конфигурации по умолчанию:

Для остановки одиночного экземпляра Zabbix агента, который запущен с другим файлом конфигурации:

Для остановки одного из нескольких экземпляров Zabbix агента:

Удаление Windows службы агента

Для удаления одиночного экземпляра Zabbix агента, который использует файл конфигурации по умолчанию:

Для удаления одиночного экземпляра Zabbix агента, который не использует файлом конфигурации по умолчанию:

Для удаления нескольких экземпляров Zabbix агента из служб Windows:

Zabbix 3.0.4: Агент Windows с TLS, LLD дисков, простой пример S.M.A.R.T. и только командная строка

Будем считать, что сервер Zabbix 3.0.4 у нас установлен. Для скриптов установки агента будем использовать, по хардкору, только родную командную строку Windows, без питонов, перлов и т.п., т.е. без дополнительных инсталляций в систему агента. Шифрование настроим с помощью PSK.

Внешний IP Zabbix сервера пусть будет — 30.0.1.1
Локальный IP Zabbix сервера – 10.3.10.1
Адрес тестового узла – 30.0.1.3
По форвардинг портов тут говориться не будет. Узел в примере будет слушать 10050, сервер – 10051.

1) Упростить установку агентов на системы Windows
2) Настроить шифрование между агентом и сервером.
3) Настроить обнаружение дисков (имена, модели, серийные номера, типы) c помощью утилиты smartmontools, контроль S.M.A.R.T.
4) Создать масштабируемый шаблон сценария развёртывания.
5) Настроить оповещение.
6) Использовать только командную строку.

Агенты Windows почему-то ещё не имеют поддержку TLS, но есть скомпилированные версии, которые можно скачать отсюда. Обсуждение.

Распаковываем. Нам понадобится только каталог bin. Дефолтный конфиг нам не понадобится.

Создаём каталог zabbix и копируем в него каталог bin из распакованного агента. Далее создаём в каталоге zabbix подкаталоги conf, disks, logs, psk, scripts, smartmontools. Сразу примем решение что размещать папку zabbix мы будем в корне тома C:\

conf – тут будет файл конфига
disks – сюда будет генерироваться информация о дисках в JSON
logs – логи
pks – тут будет лежать файл Z_agent.psk содержащий pre-shared ключ
scripts – скрипты
smartmontools – сюда помещаем одноимённую программу S.M.A.R.T.

Сразу подготовим PSK ключи и файл данных. Создаём на сервере файл pskgen4ik:

Сохраняем, делаем исполняемым (chmod +x ), запускаем, и копируем результат в файл данных, я приведу пример Excel для наглядности. Можно использовать и базу данных. Что-то типа этого:

Поле Host name мы заполним после создания конфига агента (если конечно же нет уже составленного списка). Придумываем и дописываем уникальные идентификаторы PSK ID. Сохраняем файл данных, делаем бэкап, строго ограничиваем к нему доступ и удаляем файл «agent_psk». Всё у нас есть файл данных с ключами и идентификаторами, которые будем использовать.

S.M.A.R.T.

Для получения информации о дисках и их S.M.A.R.T используем утилиту Smartmontools. Я беру последнюю версию 6.5. В этой версии нормально определяются паспорта USB, и новые манифесты для 10ки. Обо всех исправлениях в релизе.

Скачиваем и кидаем в папку zabbix\smartmontools

Знакомство с утилитой.

Смотрим список подключенных дисков:

Ключ –d указывает на тип диска.

Заинтересуемся диском /dev/sda. Пока он мало о чём говорит кроме того, что он ATA-типа и скорей всего загрузочный.

Смотрим информацию о нём:

Уже интересней. Как видно СМАРТ отключён. Включаем его:

Таблицу смарт у RAID посмотреть не получится, но статус health получить сможем.

Смотрим SMART Health:

Теперь то же самое нужно сделать для остальных 1000 дисков ) Создавать для каждого шаблоны уже не может быть и речи, более того мне, например, ещё нужно получать модель и серийник каждого диска в отчёте. На помощь приходит Zabbix LLD.

Поскольку Zabbix имеет возможность обработки данных по протоколу JSON, предоставленной его API, мы будем генерить нужную информацию из smartmontools в JSON формат и пассивно передавать на сервер.

Начинаем создавать сценарии. Для начала придумаем макросы обнаружения и определимся с данными:

Макрос <#DISKPORT>— имя диска в системе (/dev/sda, /dev/sdb и т.д.),
Макрос <#DISKTYPE>— тип диска (ata,scsi,sat, csmi и т.д.),
Макрос <#DISKMODEL>– модель диска,
Макрос <#DISKSN>— серийный номер.

Создаём в каталоге zabbix\scripts файл DiskInfoGenerationJSON.cmd следующего содержания:

Мне не удалось упрощённо решить проблему последней запятой с помощью cmd (да я и не начинал её решать, ибо это бред сумасшедшего), в строке…

… которая нарушает синтаксис JSON. Поэтому я просто добавил строчку <"<#SMARTV>«:«Smartctl 6.5»>, которая закрывает тело без запятой.

При запуске файла DiskInfoGenerationJSON.cmd. В итоге мы должны получить файл c:\zabbix\disks\disks.cmd со следующим содержимым:

Создаём в каталоге zabbix\scripts файл GetSmartAllDisk.cmd следующего содерания:

Генерации конфига

Генерация будет разбита на две части: настройки подключения и пользовательские параметры.

Создание конфига

Анализируем будущий конфигурационный файл агента:

Уникальными для каждого хоста тут являются поля Hostname= и TLSPSKIdentity= в конфигурационном файле. А также pre-shared ключ в файле zabbix\psk\Z_agent.psk. Следовательно, определим эти значения в переменные.

В каталоге zabbix\scripts создаём файл AgentConfigGeneration.cmd:

Всё просто. При запуске вводим название организации, например, Organization1 и получаем Hostname в конфиге в виде «Organization1.Имя_хоста». В пределах сети одной организации как правило исключается использование одинаковых имён узлов, поэтому мы будем иметь уникальные имена. Далее вводим PSK ID из ранее составленного файла данных и ключ. Но пока мы ничего не запускаем.

Добавление в конфиг пользовательских параметров

В каталоге zabbix\scripts создаём файл UserParameters.txt, который будет содержать пользовательские параметры (UserParameter= , )

Сохраняем UserParameters.txt. Мы придумали ключи и циклы для получения данных. И в конец файла AgentConfigGeneration.cmd добавляем следующую строчку:

Нам ещё нужно открыть порт на узле, если брандмауэр включён. Создаём файл OpenLocalPort.cmd

Итак, сценарии мы написали. Вот что у нас получается:

Теперь нужно определиться в очерёдности запусков этого добра:

1) Ввод переменных
2) Установка smartmontools в тихом режиме
3) Установка службы Zabbix Agent
4) Генерация конфига с пользовательскими параметрами — AgentConfigGeneration.cmd
5) Генерация списка дисков — DiskInfoGenerationJSON.cmd
6) Включение S.M.A.R.T. — GetSmartAllDisk.cmd.cmd
7) Открыть порт — OpenLocalPort.cmd
8) Запуск службы Zabbix Agent

Создаём в корне каталога zabbix файл INSTALL_AGENT.cmd и объединяем в нём все шаги наших сценариев:

Упаковываем каталог zabbix в SFX-архив и шифруем паролем при необходимости

Пример.

Имеем сервер в организации «Организация 1». Помещаем zabbix.exe на сервер и распаковываем в корень тома C:\

Запускаем INSTALL_AGENT.cmd от имени Администратора. Вводим без пробелов название Организации, копируем из файла данных идентификатор PSK и ключ:

Проверяем файл логов C:\zabbix\logs\logs.log:

Копируем Hostname “Organization1.SUNSET” в файл данных:

И так далее с каждым хостом. После заполнения файла заходим в кабинет Zabbix — 10.3.10.1/zabbix — и добавляем из него группы, узлы. В настройках шифрования узла отмечаем PSK и ждём онлайна.

Ждём несколько секунд:

Русифицирую кабинет для разнообразия )

Создаём Шаблон S.M.A.R.T. и группы элементов данных. Для примера я создал следующие группы по атрибутам смарта:

Выбираем «Правила обнаружения» и создаём правило:

В поле «Ключ» указываем тот самый придуманный нами пользовательский параметр из файла C:\zabbix\scripts\UserParameters.txt

А во вкладке «Фильтры» пишем наши макросы из созданного файла c:\zabbix\disks\disks.cmd и жмём «Добавить»

Создадим «Прототипы элементов данных»

Я создам для примера два прототипа атрибута Spin_Retry_Count и добавлю в группу элементов данных Pre-fail: Spin_Retry_Count. Первый будет получать VALUE значение, второй THRESHOLD из таблицы атрибутов смарт для каждого обнаруженного диска
Обратимся ещё раз к файлу C:\zabbix\scripts\UserParameters.txt (ну или уже созданному конфигу). И посмотрим какие циклы у нас вытаскивают нужные нам данные:

Как видно из скрипта для ключей HDD.value.[*] и HDD.thresh.[*] нам нужно на вход три аргумента $1 – диск (/dev/*), $2 – тип диска (ata,sat и т.д.), $3 – атрибут (в нашем случае Spin_Retry_Count). В итоге ключ получит такой формат HDD.value.[$1,$2,$3]. Например для нашего диска /dev/sda типа «ata», будет так HDD.value.[/dev/sda,ata,Spin_Retry_Count]. Но поскольку мы создали макросы для каждого обнаруженного диска, формат ключа в прототипе элемента данных будет таков HDD.value.[<#DISKPORT>,<#DISKTYPE>,Spin_Retry_Count]. Этот ключ будет перебирать каждый диск по данному атрибуту.

Кстати, можем проверить ключ с сервера, c помощью zabbix_get

И также для Threshold:

Итак, создаём наш прототип данных для VALUE и используем пассивную проверку:

Аналогично создаём прототип для Threshold. В итоге имеем:

Создаём «Прототип триггера». Даём имя, например, для наглядности:

S.M.A.R.T.: ВНИМАНИЕ! Диск <#DISKMODEL>( <#DISKPORT>— <#DISKTYPE>). Ожидается сбой и\или полный отказ диска в ближайшие 24 часа! Значение атрибута хуже критического порога

В «Поле выражение» пишем условие:

Смысл в том, что если Value меньше Threshold — нужно выдать проблему. Last() – показывает последнее полученное значение (подробней о функициях). В поле «Описание» пишем, например:

Важность ставим «Чрезвычайная»

Будем считать, что оповещение у нас настроено по EMAIL. Если нет, то сюда.

Идём в «Настройка» > «Действия». Создаём форму репорта. Жмём «Создать действие»

Имя: Отчёты о проблемах
Тема по умолчанию: ПРОБЛЕМА! [ ] — ()
Сообщение по умолчанию:

Заполняем сообщение о восстановлении:
Тема восстановления: ОК. [ ]
Сообщение о восстановлении:

Переходим на вкладку «Условия» и заполняем как показано ниже:

Я указал только «Чрезвычайные» проблемы для примера. Условия можно задавать какие душе угодно.

Переходим во вкладку «Операции» и добавляем либо группу нашего пользователя, либо указываем только себя. Тут в принципе комментировать нечего.

Теперь я сымитирую сбой. У меня например вcе атрибуты впорядке, поэтому я изменю значение в триггере и поставлю «больше нуля»

Арифметику думаю объяснять не нужно.

Ждём некоторое время и получаем проблему:

И спустя пару секунд приходит сообщение на почту:

После восстановления получим следующее сообщение:

Если есть ошибки, или что-то можно делать проще, пожалуйста сообщите! Писал тему пару часов со скринами, вроде дважды проверил на удачно.

PS: Особенного огонь когда zabbix отсылает поставщику сообщение с просьбой выставить счёт на новый диск или, например, когда заканчивается тонер в принтере кидает саппорту тикет на заправку картриджа, но это уже другая история…

Оцените статью