Всем доброго дня.
на хосте windows стоит zabbix agent.
Все работает отлично.
Хочу передать в элемент данных на zabbix, путь к каталогу через параметр zabbix agent.
Написал скрипт
Но не пойму как передать значение переменной из скрипта в zabbix agent.
Вот пример скрипта
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\")
For Each SubFolder In Folder.SubFolders
if InStr(1,SubFolder.Name,"pos",vbTextCompare) = 1 then poscat = SubFolder.Name
Next
allcat = "C:\" & poscat & "\DataSour\" & "pos" & Right(poscat, 2) & ".spr"
MsgBox allcat
в переменную allcat приходит нужный результат. Но как передать его через параметр агента?
Буду очень благодарен за подсказку.
@rmp8 это делается через функционал UserParameter.
https://www.zabbix.com/documentation/current/en/manual/config/items/userparameters
В конфиге забикс агента прописал параметр
UserParameter=findcatalog, "C:\Program Files\ZABBIX\scripts\find.vbs"
проверил, агент откликается, в cmd данные показываются.
на сервере zabbix для узла создал элемент данных
тип zabbix agent
ключ vfs.file.time[{$findcatalog},modify] не отрабатывает
ключ vfs.file.time[{#findcatalog},modify] не отрабатывает
ключ vfs.file.time[findcatalog,modify] не отрабатывает
и т.д.
В чем смысл всей этой задачи. Я должен собрать данные с 50 узлов, время создания файла. Файл на каждом узле находится в каталоге, отличающимся по номеру. Написал скрипт, который собирает инфу о каталоге и передает в параметр zabbix agent.
но не получается передать данные из параметра агента в ключ vfs.file.time.
Если в ключе vfs.file.time просто вставляешь путь до нужного файла руками, то все работает.
В документации эти моменты не описаны.
Попробуйте передать информацию о каталоге в агент в текстовом виде, затем создать зависимый элемент, который будет подставлять текст, допустим, в путь к файлу.