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 rollup 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 aprakstus, skaitītāju nosaukumus un rollup tipus var atrast VMware dokumentācijā.

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

Konfigurācija

  1. Izveidojiet atspējotu Script vienumu galvenajā VMware hostā (kur ir pieejams 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: Do not store
  • Enabled: unmarked

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, noklikšķiniet uz pogas Test, pēc tam uz Get value.

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

Piemērs XML vienai metrikai:

<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 izgūtu skaitītāja ceļu. Iepriekš minētajam piemēram XPath būs:

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]