{{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|⇑ Наверх ⇑]]