Накатал PowerShell скрипт для Hyper-V кластера, выкладываю для критики / предложений. Пока что жуткая альфа. Сильно не ругайтесь, я не настоящий сварщик.
Если не указывать -ClusterName, то будет взят текущий (тот, в который входит сервер, на котором запущен скрипт)
Параметр в -Object указывается только для взятия метрики конкретного ресурса (CSV-тома, сервиса, VM-ки)
Подключить к Zabbix можно через UserParameters, в случае подключения в рамках использования отказоустойчивого агента, скрипт следует раскидать по нодам кластера.
Скрипт отлаживался на Windows Server 2008R2 RUS. Некорректная работа при работе с русскими наименованиями ресурсов кластера вероятна. Кластер, конечно, не будет убит, просто скрипт может вываливаться с ошибками.
Что умеет (в теории):
1) Выдает JSON для LLD CSV / VM / Generic Services. JSON вроде корректный, но в автообнаружении не испытывал - не дошли руки.
2) Выдает для CSV:
PercentFree - свободное пространство в % для заданного тома
SummaryPercentFree - свободное пространство в % для всех CSV томов в кластере
SummarySize - общее дисковое пространство в байтах для всех CSV томов в кластере
SummaryUsedSpace - использованное дисковое пространство в байтах для всех CSV томов в кластере
CSVsTotal - количество CVS томов в кластере
CSVsOnline - количество CVS томов в кластере, находящихся в состоянии Online
3) Для Generic Service:
State - состояние заданного сервиса (OnlinePending / Online / OfflinePending / Offline ...)
ServicesTotal - общее количество сервисов в кластере (на всех нодах)
ServicesOnline - количество сервисов в состоянии Online
ServicesOnlinePending - количество сервисов в состоянии OnlinePending ("Запускается")
4) Для VM:
State - состояние заданной виртуальной машины (OnlinePending / Online / OfflinePending / Offline ...)
VMsTotal - общее количество виртуальных машин в кластере (на всех нодах)
VMsOnline - количество виртуальных машин в состоянии Online ("Работает")
VMsOffline - количество виртуальных машин в состоянии Offline ("Выкл.")
VMsOnlinePending - количество виртуальных машин в состоянии OnlinePending ("Запускается")
VMsOfflinePending - количество виртуальных машин в состоянии OfflinePending ("Завершение работы")
5) Для Memory:
SummaryTotalPhysicalMemory - общее количество установленной физической памяти в кластере (на всех нодах)
SummaryFreePhysicalMemory - количество свободной физической памяти в кластере
SummaryPercentFreePhysicalMemory - % свободной физической памяти в кластере
SummaryTotalVirtualMemory - общее количество виртуальной памяти в кластере
SummaryFreeVirtualMemory - количество свободной виртуальной памяти в кластере
Если не указывать -ClusterName, то будет взят текущий (тот, в который входит сервер, на котором запущен скрипт)
Параметр в -Object указывается только для взятия метрики конкретного ресурса (CSV-тома, сервиса, VM-ки)
Подключить к Zabbix можно через UserParameters, в случае подключения в рамках использования отказоустойчивого агента, скрипт следует раскидать по нодам кластера.
Скрипт отлаживался на Windows Server 2008R2 RUS. Некорректная работа при работе с русскими наименованиями ресурсов кластера вероятна. Кластер, конечно, не будет убит, просто скрипт может вываливаться с ошибками.
Что умеет (в теории):
1) Выдает JSON для LLD CSV / VM / Generic Services. JSON вроде корректный, но в автообнаружении не испытывал - не дошли руки.
Code:
> powershell -File clusterinfo.ps1 [-ClusterName "Мой первый кластер"] -Action Discovery -Class (VM | CSV | Service)
PercentFree - свободное пространство в % для заданного тома
Code:
> powershell -File clusterinfo.ps1 [-ClusterName "MyFirstCluster"] -Action Get -Class CSV -Object "Диск кластера 2" -Metric PercentFree
SummarySize - общее дисковое пространство в байтах для всех CSV томов в кластере
SummaryUsedSpace - использованное дисковое пространство в байтах для всех CSV томов в кластере
CSVsTotal - количество CVS томов в кластере
CSVsOnline - количество CVS томов в кластере, находящихся в состоянии Online
Code:
> powershell -File clusterinfo.ps1 [-ClusterName "Мой первый кластер"] -Action Get -Class CSV -Metric (SummaryPercentFree | SummarySize | SummaryUsedSpace | CSVsTotal | CSVsOnline)
State - состояние заданного сервиса (OnlinePending / Online / OfflinePending / Offline ...)
Code:
> powershell -File clusterinfo.ps1 [-ClusterName "MyFirstCluster"] -Action Get -Class Service -Object "Zabbix Agent [MyFirstCluster]" -Metric State
ServicesOnline - количество сервисов в состоянии Online
ServicesOnlinePending - количество сервисов в состоянии OnlinePending ("Запускается")
Code:
> powershell -File clusterinfo.ps1 [-ClusterName "MyFirstCluster"] -Action Get -Class Service -Metric (ServicesTotal | ServicesOnline | ServicesOnlinePending)
State - состояние заданной виртуальной машины (OnlinePending / Online / OfflinePending / Offline ...)
Code:
> powershell -File clusterinfo.ps1 [-ClusterName "MyFirstCluster"] -Action Get -Class VM -Object "Виртуальная машина [Гагарин]" -Metric State
VMsOnline - количество виртуальных машин в состоянии Online ("Работает")
VMsOffline - количество виртуальных машин в состоянии Offline ("Выкл.")
VMsOnlinePending - количество виртуальных машин в состоянии OnlinePending ("Запускается")
VMsOfflinePending - количество виртуальных машин в состоянии OfflinePending ("Завершение работы")
Code:
> powershell -File clusterinfo.ps1 [-ClusterName "MyFirstCluster"] -Action Get -Class VM -Metric (VMsTotal | VMsOnline | VMsOffline | VMsOnlinePending | VMsOfflinePending)
SummaryTotalPhysicalMemory - общее количество установленной физической памяти в кластере (на всех нодах)
SummaryFreePhysicalMemory - количество свободной физической памяти в кластере
SummaryPercentFreePhysicalMemory - % свободной физической памяти в кластере
SummaryTotalVirtualMemory - общее количество виртуальной памяти в кластере
SummaryFreeVirtualMemory - количество свободной виртуальной памяти в кластере
Code:
> powershell -File clusterinfo.ps1 [-ClusterName "MyFirstCluster"] -Action Get -Class Memory -Metric (SummaryTotalPhysicalMemory | SummaryFreePhysicalMemory | SummaryPercentFreePhysicalMemory | SummaryTotalVirtualMemory | SummaryFreeVirtualMemory)
Comment