{{description>Проверяем наличие или отсутствие файла в файловой системе ПК под управлением Windows при помощи активного агента Zabbix}}
====== Zabbix. Active agent. Проверка наличия файла. ======
[[ http://wiki.mihanik.net/doku.php?id=программное_обеспечение:zabbix:active_agent:проверка_наличия_файла&do=export_pdf | Экспорт в PDF ]] ~~ODT~~
Дата создания: 2024/05/22 16:14 (C) mihanik
===== Дано =====
  * Настроенный Zabbix-сервер.
  * Клиентский ПК зарегистрированный на Zabbix-сервере.
===== Надо =====
  * Отслеживать наличие/отсутствие некоего файла на дисках клиентского ПК.
Будем проверять наличие/отсутствие установленной программы **wget.exe**. \\
Расположение программы по умолчанию: **"C:/Program Files/Wget/wget.exe"**
===== Решение =====
==== Шаг 1 ====
Создаём новый шаблон: "Настройка" -> "Шаблоны" -> "Создать шаблон"
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-01.png?direct&600 |}}
==== Шаг 2 ====
  - Указываем имя шаблона. Например, **"My Template Module File Exist by Zabbix agent active"**. \\ Имя выбираем на своё усмотрение в соответствии с вашей логикой именования шаблонов.
  - Выбираем группу шаблонов, в которой будет располагаться наш шаблон. Группу выбираем на своё усмотрение.
  - Указываем, например, группу **"Templates/Modules"**
  - Нажимаем кнопку **"Добавить"**
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-02.png?direct&600 |}}
==== Шаг 3 ====
Видим, что шаблон добавлен.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-03.png?direct&600 |}}
==== Шаг 4 ====
Теперь ищем свой шаблон в списке шаблонов.
Для этого:
  - В форме поиска пишем имя нашего шаблона: **"My Template Module File Exist by Zabbix agent active"**. 
  - Нажимаем кнопку **"Применить"**. \\ При этом наш шаблон отобразится в расположенном ниже списке.
  - Кликаем левой кнопкой мыши по найденному нашему шаблону для того, чтобы начать его редактирование.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-04.png?direct&600 |}}
==== Шаг 5 ====
Мы вошли в режим редактирования шаблона.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-05.png?direct&600 |}}
==== Шаг 6 ====
  - Переходим в раздел **"Группы элементов данных"**
  - Нажимаем кнопку **"Создать группу элементов данных"**
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-06.png?direct&600 |}}
==== Шаг 7 ====
  - Указываем имя группы элементов данных. Например, **"Filesystem"**.
  - Нажимаем кнопку **"Добавить"**.
В качестве имени группы данных предлагаю использовать **"Filesystem"**, т.к. **"файл"** по логике относится именно к файловой системе.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-07.png?direct&600 |}}
==== Шаг 8 ====
  - Видим, что группа данных создана.
  - Группа данных "привязана" к настраиваемому шаблону.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-08.png?direct&600 |}}
==== Шаг 9 ====
Теперь настроим сбор нужных нам данных, т.е., информацию о том есть файл на ПК или его нет.
Для этого...
  - Переходим в раздел **"Элементы данных"**.
  - Нажимаем кнопку **"Создать элемент данных"**.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-09.png?direct&600 |}}
==== Шаг 10 ====
  - Указываем имя элемента данных: **File wget.exe exist**.
  - Выбираем тип агента: **Zabbix агент (активный)**.
  - Указываем ключ: ** vfs.file.exists["C:/Program Files/Wget/wget.exe"] **
  - Тип информации: **числовой (целое положительное)**
  - Интервал обновления: **1d**
  - Указываем группу элементов данных: **Filesystem**
  - Ставим галочку **Активировано**
  - Нажимаем кнопку **Добавить**
Пояснения: 
  - Имя произвольное, желательно чтобы отображало суть собираемых данных.
  - Выбран активный агент, т.к. шаблон предполагается использовать для ПК, находящихся за NAT.
  - Указываем имя файла наличие которого проверяем.
  - Результат проверки будет целым числом: 0 - файла нет, 1 - файл есть.
  - Обновлять данные чаще 1-го дня нет смысла
 
Далее понятно.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-10.png?direct&600 |}}
==== Шаг 11 ====
  - Видим, что элемент данных добавлен.
  - Видим, что элемент данных "привязался" к нашему шаблону.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-11.png?direct&600 |}}
==== Шаг 12 ====
Теперь нам нужно настроить реакцию на получаемые данные. Если файл существует, то ничего не делаем, а если отсутствует, то генерируем событие/уведомление.
Для этого...
  - Идём в раздел **"Триггеры"**.
  - Нажимаем кнопку **"Создать триггер"**.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-12.png?direct&600 |}}
==== Шаг 13 ====
  - Указываем имя триггера: **Программа wget.exe не обнаружена!**.
  - Указываем степень важности события: **Предупреждение**.
  - Нажимаем кнопку **"Добавить"** чтобы запустить мастер, который нам поможет сформировать правильное описание  выражения.
  - Получилось следующее выражение: \\ **{My Template Module File Exist by Zabbix agent active:vfs.file.exists["C:/Program Files/Wget/wget.exe"].last()}=0**.
  - Ставим галочку, что событие в дальнейшем можно будет закрывать вручную.
  - При желании указываем описание события: **Триггер срабатывает, если на ПК не обнаружена программа wget.exe**.
  - Указываем, что триггер нужно активировать.
  - Нажимаем кнопку **"Добавить"**
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-13.png?direct&600 |}}
Мастер, который мы вызывали в пункте 3, выглядит примерно так.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-14.png?direct&600 |}}
Тут, всё понятно.
==== Шаг 14 ====
  - Видим, что триггер добавлен.
  - Видим, что триггер "привязан" к нашему шаблону.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-15.png?direct&600 |}}
==== Шаг 15 ====
Шаблон готов.
Для удобства читателей выгрузил созданный шаблон в файл.\\
Файл прилагаю: {{ :программное_обеспечение:zabbix:active_agent:my_template_module_file_exist_by_zabbix_agent_active.xml |}}
Теперь этот шаблон можно применять к узлу сети и наблюдать за собираемыми данными и работой триггеров.
{{ :программное_обеспечение:zabbix:active_agent:my-file-exists-16.png?direct&600 |}}
Видим, что даннные собираются. Нужный нам файл на ПК присутствует.
:-D
===== Источники =====
  * https://www.zabbix.com/documentation/5.0/ru/manual/config/items/itemtypes/zabbix_agent
  * https://www.zabbix.com/documentation/5.0/ru/manual
[[#top|⇑ Наверх ⇑]]