Push-агент

Started by Anth0ny, December 17, 2008, 05:29:32 PM

Previous topic - Next topic

Ethril

Спасибо. Наверно по такому поводу перейду на 1.1 ветку :)

Скрипт:

Add-PSSnapin VMware.VimAutomation.Core
$UserName = "root"
$UserPWD = "password"
$InFilePath = "C:\ESXi-stats\ESXi-list.txt"
Set-PowerCLIConfiguration -DefaultVIServerMode Multiple -Confirm:$False
Get-Content $InFilePath | Foreach {
    Connect-VIServer $_ -User $UserName -Password $UserPWD
    $VMHost = Get-VMHost -Server $_
    $VMHostNetwork = 0
    $VMHostNetwork = Get-VMHostNetwork $_
    $VMDatastoreList = ''
    Get-Datastore -Server $_ | Foreach {
        $VMDatastoreList += $_.Name + ' '
        $ExecParameters = $VMHostNetwork.HostName + "." + $VMHostNetwork.DomainName + ":" + $_.Name + "=" + (1 - $_.FreeSpaceMB / $_.CapacityMB)
        & "$env:ProgramFiles\NetXMS\bin\nxpush.exe" -u pushagent -H SERVICE $ExecParameters
    }
    Disconnect-VIServer -Server $_ -Force -Confirm:$False
   
    $ExecParameters = $VMHostNetwork.HostName + "." + $VMHostNetwork.DomainName + ":MemUse=" + ($VMHost.MemoryUsageMB / $VMHost.MemoryTotalMB)
    & "$env:ProgramFiles\NetXMS\bin\nxpush.exe" -u pushagent -H SERVICE $ExecParameters
   
    $ExecParameters = $VMHostNetwork.HostName + "." + $VMHostNetwork.DomainName + ":CpuUse=" + ($VMHost.CpuUsageMhz / $VMHost.CpuTotalMhz)
    & "$env:ProgramFiles\NetXMS\bin\nxpush.exe" -u pushagent -H SERVICE $ExecParameters
   
    $ExecParameters = $VMHostNetwork.HostName + "." + $VMHostNetwork.DomainName + ":DatastoreList=" + $VMDatastoreList
    & "$env:ProgramFiles\NetXMS\bin\nxpush.exe" -u pushagent -H SERVICE $ExecParameters
}

(имя сервера NetXMS - SERVICE - не вынесено в переменную, во входном файле ESXi-list.txt находятся IP-адреса ESXi-гипервизоров в столбик, имена ESXi-гипервизоров в NetXMS соответствуют их DNS-именам, после вашего патча скрипт можно будет упростить)

Запускается из стандартного виндового шедулера батником:

%PSMODULEPATH%\..\powershell.exe -PSConsoleFile "%ProgramFiles%\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -WindowStyle Minimized -Command ".\Get-AllVMHostStats.ps1"

Из-за общей неторопливости PowerCLI отрабатывает довольно долго - у меня на 6 ESXi прокручивается ~3-4 минут. Поэтому часто делать отсчёты не получится.
Результат работы - http://img847.imageshack.us/i/89160342.jpg/

Ethril

Кстати, раз уж речь зашла про интеграцию NetXMS с ESXi, то есть ещё полезные фишки:

Можно включить на ESXi поддержку SNMP (только на бесплатной версии нужно её включать ДО лицензирования, пока ещё ESXi крутится на 30-дневной триалке). После этого появится возможность мониторить кое-какие параметры гипервизора (например, у меня TotalMemSize мониторится запросом на OID .1.3.6.1.4.1.6876.3.2.1.0), но в целом список этих параметров невелик и не очень интересен.
Значительно ценнее возможность получать кликом в консоли по ноде гипервизора список его виртуалок, для этого заходим в NetXMS->Control Panel->Object Tools->New->SNMP Table и там сооружаем табличку примерно такого вида: http://img828.imageshack.us/i/81835416.jpg/
Заодно можно добавить в Object Tools возможность запуска VIClient.

Также можно форвардить на NetXMS syslog-и гипервизоров, и фильтровать их на предмет ошибок.