Ad Widget

Collapse

Запуск командного файла из Zabbix, со сложными условями.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • xerxx
    Junior Member
    • Jan 2023
    • 5

    #1

    Запуск командного файла из Zabbix, со сложными условями.

    Коллеги добрый день.

    Подскажите пож-та как в Zabbix 5.0, реализовать следующее:

    Вводная:

    На удаленном хосте есть папка, в которую каждую секунду импортируются файлы с расширением *.JSON, и в следующую секунду они экспортируются в БД, но иногда файлы импортиурются в эту папку "битые" и БД их принять не может, в этом случае им присваивается дополнительное расширение *.ERR (пример: 47589367629.json.err).

    Задача:

    Необходимо мониторить наличие файлов с расширением *.ERR в указанной выше папке, это я мониторю таким ключом: VFS.DIR.COUNT[D:\Test,".+\.err$,,,,,,,1800] , и если такие файлы есть то:

    1.Убрать дополнительное расширение *.ERR - командный файл для этого действия имеется, данное действие нужно запускать раз в 30 минут, как это реализовать я пока незнаю.

    2.Если файл с расширением *.JSON повторно получил дополнительное расширение *.ERR (это можно отследить по времени его создания, он будет старше часа), то такие файлы (повторно получившие расширение *.ERR необходимо переносить в другую папку на этом же хосте (командного файла на перенос нет).

    Заранее всем благодарен за содействие.​
  • Griboed0ff
    Senior Member
    • Sep 2022
    • 153

    #2
    Тут вопрос не к заббиксу по большей части, а к скриптам, например, powershell. Так как я могу писать скрипты на powershell, то я бы обе задачи решил бы через один скрипт.
    Сценарий скрипта примерно такой: получить имена файлов в папке с фильтром на расширение .ERR. Далее у таких файлов узнать дату\время создания, вычесть ее из текущей даты, получили время, которое файл существует. Далее два условия, если файл младше часа, переименовать (убрать расширение), если старше, то перенести в нужную папку. Далее получить число файлов из нужной папки. То есть скрипт все сделает и ответит числом. Далее в конфиге агента создаете UserParameter, который будет запускать скрипт. На сервере создаете айтем с именем того UserParameter, который создали в конфиге агента и проверяете его раз в 30 минут. Далее уже триггеры по айтему, по типу, если больше 0 или какое вас число устроит, алярм! Итого файлы переименовываются, если надо переносятся в папку и вы об этом знаете из срабатываний триггера.​

    Comment

    Working...