Доброго времени суток!
Тема наверное баян, но найти ответов не удалось.
Задача:
Мониторить размер подпапок в определённой папке, причём подпапки могут добавляться и удаляться,
желательно чтобы отрабатывало автоматом (правила обнаружения) а не руками папки обрабатывать.
Мониторинг одной папки:
Работает хорошо.
zabbix агент -> ключ ->
Мониторинг подпапок:
Удалось создать скрипт формирования JSON.
Вывод JSON (в удобно читаемом формате, скрипт выводит в одну строку):
В агенте добавил в конфиг пользовательский параметр:
Создал правило обнаружения, добавил макросы:
{#FOLDERNAME}, {#FOLDERSIZE}
Создал прототипы элементов данных:
Имя: Folder - {#FOLDERNAME}
Тип: Zabbix агент
Ключ: foldersize[{#FOLDERSIZE}]
В последних данных инфу вижу, но работает это не так как надо.
Внимание вопрос!
Как правильно создать правило обнаружения, прототипы данных и прототипы графиков чтобы имя папки бралось из {#FOLDERNAME}, а её размер из {#FOLDERSIZE}?
Спасибо!
Тема наверное баян, но найти ответов не удалось.
Задача:
Мониторить размер подпапок в определённой папке, причём подпапки могут добавляться и удаляться,
желательно чтобы отрабатывало автоматом (правила обнаружения) а не руками папки обрабатывать.
Мониторинг одной папки:
Работает хорошо.
zabbix агент -> ключ ->
Code:
system.run[powershell -noprofile -command "(Get-ChildItem -r c:\folder | Measure-Object -property length -sum | select sum).sum"]
Удалось создать скрипт формирования JSON.
Code:
$startFolder = "C:\folder"
$items = (Get-ChildItem $startFolder | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object)
write-host -NoNewline "{"
write-host -NoNewline "`"data`":["
if($items -ne $null -and $items -is [system.array] -eq $false) {
write-host -NoNewline "{"
$line = "`"{#FOLDERNAME}`":`"" + $items.Name + "`""
write-host -NoNewline $line
$line = ",`"{#FOLDERSIZE}`":`"" + (Get-ChildItem -r $items.FullName | Measure-Object -property length -sum | select sum).sum + "`""
write-host -NoNewline $line
write-host -NoNewline "}"
} else {
write-host -NoNewline "{"
$line = "`"{#FOLDERNAME}`":`"" + $items[0].Name + "`""
write-host -NoNewline $line
$line = ",`"{#FOLDERSIZE}`":`"" + (Get-ChildItem -r $items[0].FullName | Measure-Object -property length -sum | select sum).sum + "`""
write-host -NoNewline $line
write-host -NoNewline "}"
if($items.Count -gt 1) {
for($c = 1; $c -lt $items.Count; ++$c) {
write-host -NoNewline ",{"
$line = "`"{#FOLDERNAME}`":`"" + $items[$c].Name + "`""
write-host -NoNewline $line
$line = ",`"{#FOLDERSIZE}`":`"" + (Get-ChildItem -r $items[$c].FullName | Measure-Object -property length -sum | select sum).sum + "`""
write-host -NoNewline $line
write-host -NoNewline "}"
}
}
}
write-host -NoNewline "]"
write-host "}"
Code:
{
"data":[
{
"{#FOLDERNAME}":"folder_1",
"{#FOLDERSIZE}":"10482871"
},
{
"{#FOLDERNAME}":"folder_2",
"{#FOLDERSIZE}":"3419705"
},
{
"{#FOLDERNAME}":"folder_3",
"{#FOLDERSIZE}":"30590195"
}
]
}
Code:
UserParameter=foldersize,powershell -NoProfile -ExecutionPolicy Bypass -file "c:\zabbix\folder_size.ps1"
{#FOLDERNAME}, {#FOLDERSIZE}
Создал прототипы элементов данных:
Имя: Folder - {#FOLDERNAME}
Тип: Zabbix агент
Ключ: foldersize[{#FOLDERSIZE}]
В последних данных инфу вижу, но работает это не так как надо.
Внимание вопрос!
Как правильно создать правило обнаружения, прототипы данных и прототипы графиков чтобы имя папки бралось из {#FOLDERNAME}, а её размер из {#FOLDERSIZE}?
Спасибо!
Comment