0

It's a simple question, really, I'd like to check the CPU Load of my Windows Server 2008 machine. This value gets reported to Zabbix, but I have no clue where Zabbix gets the value from.

All I can find on my server is CPU Usage, Processor time, etc, but no load. In Zabbix the value is always between 0 and 4 and I know what it means (number of processess in "Running" or "Runnable" state), but no clue where to check the value on the server itself.

2
  • Thanks, that seems to be a pointer in the right direction, I'm still curious what Zabbix uses to display its graph...
    – Davio
    Dec 3, 2013 at 8:31
  • You could ask Zabbix where how they compute that metric.
    – Rex
    Dec 3, 2013 at 15:14

1 Answer 1

-1

We've all been there. Do this. Go to the windows machine that you are monitoring. Open a CMD prompt and type typeperf -qx > perfounter.txt This is going to produce a rather large file of all the performance counters that you can use within Zabbix for that particular machine. Some itmes will be have global usage across that OS/Version, while some items will be unique to only that machine.

Now that you have your list of perf counters, you need to enter them for that host in the Zabbix front end. (Well, the ones you want to monitor, anyway)

In this example, create an item for CPU Idle time. This item will most likely be the same on almost any Windows platform, so let's create this item under the Windows template, then it will be available to all your hosts that have that template assigned. Go to Configuration --> Items and then using the dropdown boxes at the top right, select Group --> Templates and then Host --> Template WIndows.

Now, click on Create Item and enter the information as you see in my first screenshot below. Since you can't see all of the key in that screenshot, here it is: perf_counter[\Processor(_Total)\% Idle Time].

Note that if you are using active agents, your hostname within Zabbix must be an exact match as the "Hostname=" field in your zabbix_agentd.conf file on the host or else it will not work.

And that's really all there is to it. Once you add that item, give it a minute or two to become active. If it comes up as "Not supported" then you have some type of syntax error.

If you run the typeperf command and the system cannot find it, you can more then likely grab it off almost any Server 2003 system you have. You can copy it onto any other Win OS such as WIndows 2000.

Some other performance counter keys I have found to be useful are these: perf_counter[\Processor(_Total)\% User Time] perf_counter[\Processor(_Total)\% Privileged Time] perf_counter[\System\Processor Queue Length] perf_counter[\Paging File(_Total)\% Usage]

And you can also graph out how much CPU a given process uses. For instance, this is the key for how mush user time the zabbix_agentd process uses: perf_counter[\Process(zabbix_agentd)\% User Time]

Those will all be in that perf counter text file you generate. Any process that happens to be running when you generate it (such as zabbix_agentd) will have a syntax that you can then enter into Zabbix for monitoring.

Now, something like traffic across your NIC cards is something that would be unique to each server, unless they all had the exact same NIC in them. So that one you would want to create at the host level instead of the template level, and the key would look something like this: perf_counter[\Network Interface(HP NC7782 Gigabit Server Adapter)\Bytes Received/sec]

Refer : https://www.zabbix.com/forum/showthread.php?t=14297

Regards, Ram

http://windowssaint.blogspot.com/

1
  • Well, this is helpful, but not really an answer. I just want to know what the Zabbix value "system.cpu.load" maps to on a Windows machine?
    – Davio
    Dec 3, 2013 at 11:23

Not the answer you're looking for? Browse other questions tagged .