15 Pielāgotu VMware veiktspējas skaitītāju nosaukumu izveide

Pārskats

VMware veiktspējas skaitītāja ceļam ir group/counter[rollup] formāts, kur:

  • group - veiktspējas skaitītāja grupa, piemēram, cpu
  • counter - veiktspējas skaitītāja nosaukums, piemēram, usagemhz
  • rollup - veiktspējas skaitītāja apkopojuma tips, piemēram, average

Tātad iepriekš minētais piemērs dotu šādu skaitītāja ceļu: cpu/usagemhz[average]

Veiktspējas skaitītāju grupu apraksti, skaitītāju nosaukumi un apkopojuma tipi ir atrodami VMware dokumentācijā.

Ir iespējams iegūt iekšējos nosaukumus un izveidot pielāgotus veiktspējas skaitītāju nosaukumus, izmantojot skripta vienums Zabbix.

Konfigurācija

  1. Izveidojiet atspējotu Script vienumu galvenajā VMware hostā (kur atrodas eventlog[] vienums) ar šādiem parametriem:

  • Name: VMware metrics
  • Type: Script
  • Key: vmware.metrics
  • Type of information: Text
  • Script: kopējiet un ielīmējiet zemāk norādīto skriptu
  • Timeout: 10
  • History: Neglabāt
  • Enabled: nav atzīmēts

Skripts

try {
    Zabbix.log(4, 'vmware metrics script');

    var result, resp,
    req = new HttpRequest();
    req.addHeader('Content-Type: application/xml');
    req.addHeader('SOAPAction: "urn:vim25/6.0"');

    login = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:vim25">\
    <soapenv:Header/>\
    <soapenv:Body>\
        <urn:Login>\
            <urn:_this type="SessionManager">SessionManager</urn:_this>\
            <urn:userName>{$VMWARE.USERNAME}</urn:userName>\
            <urn:password>{$VMWARE.PASSWORD}</urn:password>\
        </urn:Login>\
    </soapenv:Body>\
</soapenv:Envelope>'
    resp = req.post("{$VMWARE.URL}", login);
    if (req.getStatus() != 200) {
        throw 'Response code: '+req.getStatus();
    }

    query = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:vim25">\
<soapenv:Header/>\
    <soapenv:Body>\
        <urn:RetrieveProperties>\
            <urn:_this type="PropertyCollector">propertyCollector</urn:_this>\
            <urn:specSet>\
                <urn:propSet>\
                   <urn:type>PerformanceManager</urn:type>\
                   <urn:pathSet>perfCounter</urn:pathSet>\
                </urn:propSet>\
                <urn:objectSet>\
                   <urn:obj type="PerformanceManager">PerfMgr</urn:obj>\
                </urn:objectSet>\
            </urn:specSet>\
        </urn:RetrieveProperties>\
    </soapenv:Body>\
</soapenv:Envelope>'
    resp = req.post("{$VMWARE.URL}", query);
    if (req.getStatus() != 200) {
        throw 'Response code: '+req.getStatus();
    }
    Zabbix.log(4, 'vmware metrics=' + resp);
    result = resp;

    logout = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:vim25">\
    <soapenv:Header/>\
    <soapenv:Body>\
        <urn:Logout>\
            <urn:_this type="SessionManager">SessionManager</urn:_this>\
        </urn:Logout>\
    </soapenv:Body>\
</soapenv:Envelope>'

    resp = req.post("{$VMWARE.URL}",logout);         
    if (req.getStatus() != 200) {
        throw 'Response code: '+req.getStatus();
    }

} catch (error) {
    Zabbix.log(4, 'vmware call failed : '+error);
    result = {};
}

return result;

Kad vienums ir konfigurēts, nospiediet pogu Test, pēc tam nospiediet Get value.

Kopējiet saņemto XML jebkurā XML formatētājā un atrodiet vajadzīgo metriku.

Viena metrikas XML piemērs:

<PerfCounterInfo xsi:type="PerfCounterInfo">
    <key>6</key>
    <nameInfo>
        <label>Usage in MHz</label>
        <summary>CPU usage in megahertz during the interval</summary>
        <key>usagemhz</key>
    </nameInfo>
    <groupInfo>
        <label>CPU</label>
        <summary>CPU</summary>
        <key>cpu</key>
    </groupInfo>
    <unitInfo>
        <label>MHz</label>
        <summary>Megahertz</summary>
        <key>megaHertz</key>
    </unitInfo>
    <rollupType>average</rollupType>
    <statsType>rate</statsType>
    <level>1</level>
    <perDeviceLevel>3</perDeviceLevel>
</PerfCounterInfo>

Izmantojiet XPath, lai no saņemtā XML izvilktu skaitītāja ceļu. Iepriekš minētajam piemēram XPath būs šāds:

field xPath value
group //groupInfo[../key=6]/key cpu
counter //nameInfo[../key=6]/key usagemhz
rollup //rollupType[../key=6] average

Rezultējošais veiktspējas skaitītāja ceļš šajā gadījumā ir: cpu/usagemhz[average]