2012-07-18 1 views
2

J'ai un ensemble de serveurs mixtes, certains fonctionnant sous Windows en anglais, d'autres sous Windows en italien.Accéder aux compteurs de performance Windows de manière indépendante des paramètres régionaux

Existe-t-il un moyen de lire la valeur d'un compteur de performance sans utiliser de chaînes dépendantes des paramètres régionaux?

J'ai lu sur le Zabbix documentation qu'il devrait être possible d'utiliser un format numérique comme \2\6 mais cela ne fonctionne pas pour moi, ni dans Zabbix ni dans Powershell.

Je voudrais surveiller l'utilisation du processeur (\Processore(_Total)\% Tempo processore).

Toute suggestion est la bienvenue.

Répondre

3

La solution est simple: le seul problème est de réunir toutes les infos.

Tout d'abord, ouvrez regedit et accédez à la clé suivante:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib 

Vous trouverez les entrées de nom avec trois chiffres (par exemple 009, 010, ...). Ces trois chiffres sont un id de langue: 009 est l'anglais, 010 est l'italien et ainsi de suite.

Dans chacune de ces entrées, vous trouverez une clé nommée Compteur. Ouvrez-le (double-cliquez) et copiez le contenu de votre langue préférée dans un éditeur de texte. Vous aurez quelque chose de semblable à ce qui suit:

1 
1847 
2 
System 
4 
Memory 
6 
% Processor Time 
10 
File Read Operations/sec 
12 
File Write Operations/sec 
14 
File Control Operations/sec 
16 
... 

Comme vous pouvez le voir, il y a un certain nombre en dessous de chaque étiquette: qui est l'indice d'utilisation. Par exemple, l'index de % Processor Time est 10.

Si vous avez une expression composite (par exemple, \Processore(_Total)\% Tempo processore), vous devez utiliser \238(_Total)\6 (j'ai utilisé les étiquettes italiennes).

En Zabbix, l'expression à utiliser pour surveiller l'utilisation moyenne du processeur au cours des 15 dernières minutes est:

perf_counter[\238(_Total)\6, 900] 

J'espère avoir dit tout: s'il y a quelque chose de pas clair, s'il vous plaît, laissez un commentaire .

+0

'\ 238 (_Total) \ 6' ne fonctionne pas sur Windows Server 2003. – plaidshirt

+0

En fait, mes tests ont été effectués sur un Windows 2008 R2. Malheureusement je ne peux pas vous aider puisque je n'ai pas une instance de Windows 2003. Désolé. – baronKarza

1

Vous n'avez pas étiqueté powershell ou zabbix, donc je suppose que cela ne vous dérange pas un exemple sur la façon de le faire en C: vous pouvez ensuite l'utiliser depuis PowerShell si c'est le but.

En général (et comme vous l'avez noté), vous pouvez interroger-par-index.

Ils ont un exemple très étendu sur MSDN, il est en fait un programme complet, y compris fonctionnalité comment interroger par index .: MSDN:Retrieving Counter Data

+1

Merci beaucoup. Coz Im stupide, je n'ai pas tagué zabbix (au moins). Je dois trouver un exemple sur la façon d'utiliser query-by-index. Sinon, je devrais analyser le code C++ pour comprendre ... – baronKarza

Questions connexes