Zabbix在 windows下監控網卡


1zabbix自定義監控Windows服務器的原理

Zabbix為Windows服務器的監控提供了PerfCounter(性能計數器)這個功能。Zabbix客戶端通過PerfCounter獲取Windows服務器上的相關性能信息,然后發送給服務器端。

2、如何獲取Windows服務器的PerfCounter表達式

方法一:

在Windows服務器的控制面板->管理工具->性能的系統監視器中,可以看到這些性能監控。

clip_image002

點擊添加計數器后,在彈出的添加計數器對話框中,可以在性能對象下拉菜單中選擇相應的監控項目,然后在下面的列表中選擇需要使用的計數器,在右邊的里表中選擇范例。點擊添加。

clip_image004

添加后的計數器在下面列表中可以看到

clip_image006

在添加的計數器上面右鍵選擇屬性,在彈出的窗口中的數據選項卡中可以看到具體的perfCounter表達式

clip_image008

方法二:

進 入開始->運行,輸入CMD進入命令窗口。輸入typeperf –qx| more 獲取相關PerfCounter表達式。也可以配合管道輸出給find,查找想要的相關表達式。以獲取網卡PerfCounter為例,在命令行輸 入:typeperf –qx |find “Network Interface”|find /V “LoopBack”

clip_image010

命令的意思是,查找和“Network Interface”相關的PerfCounter。/V是忽略和”LoopBack”回環接口的PerfCounter

3、在zabbix中使用PerfcounterWindows模板添加監控項

在zabbix中,使用PerfCounter的方法有兩種:

方法一:

在模板添加監控項時使用perf_counter作為key表達式:

以添加CPU空閑時間監控為例:

系統配置->模板,選擇Windows監控模板。進入監控項,點擊右上角的Create Item,創建監控項,在key中添加PerfCounter相關的參數,然后在設置一下其他選項,保存即可。

clip_image012

方法二:

在客戶端配置文件zabbix_agentd.conf文件中添加類似於Parameter自定義監控的PerfCounter參數。具體使用格式如下

PerfCounter=<監控項key表達式>,<性能計數器名稱>

以添加網卡監控為例:

修改Windows服務器上的zabbix客戶端配置文件zabbix_agentd.conf,添加通過typeperf-qx命令獲取的和網卡相關信息

#Network

PerfCounter=NetAllInt0,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Total/sec",30

PerfCounter=NetInInt0,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Received/sec",30

PerfCounter=NetOutInt0,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Sent/sec",30

PerfCounter=NetBandInt0,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Current Bandwidth",30

4.15.2 Windows服務器網卡流量監控

方法一:

windows的key的關鍵字可以使用網卡的ip地址來替代。例如:net.if.out[192.168.101.1,bytes]

方法二:

如果更改了ip地址,上面的方法就不靈了。使用Macro能比較好的解決監控本地網卡的需求net.if.out[{IPADDRESS},bytes]

方法三:

Macro 中的{IPADDRESS}只是獲取主機的外網IP地址,對於多網卡的主機來說內網網卡就監控不到了。在客戶端配置文件中使用PerfCounter可以 解決這個問題。但每個機器的網卡型號不一定相同,因此typeperf的輸出也不一樣。我寫了個perl腳本,來解決這個問題。

use strict;

use warnings;

#添加對網卡的監控

my @network=`typeperf -qx |find "Network Interface"|find /V "Loopback"|find "Bytes Total"`;

my $i=0;

foreach my $int (@network)

{

if($int=~ /^(\\Network Interface.*\\).*$/)

{

my $intname=($1);

open OUT_FILE, ">>c:\\zabbix\\zabbix_agentd.conf" or die("Could not write the file");

print OUT_FILE <<EOF;

#Network

PerfCounter=NetAllInt${i},"${intname}Bytes Total/sec",30

PerfCounter=NetInInt${i},"${intname}Bytes Received/sec",30

PerfCounter=NetOutInt${i},"${intname}Bytes Sent/sec",30

PerfCounter=NetBandInt${i},"${intname}Current Bandwidth",30

EOF

close(OUT_FILE);

$i++;

}

}

不同的windows服務器只要運行這個腳本,就可以根據服務器上網卡型號還有網卡數量,將監控寫入到zabbix_agentd.conf配置文件中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM