上一篇簡單介紹了zabbix監控Exchange人數,服務等狀態。對一些需要經過判斷的數據則無能爲力了。此時,就需藉助powershell。看過本文後,可以實現兩個激動人心的功能。
一、對遠程無人值守機房的硬件監控(本文只涉及最重要的磁盤陣列)
二、通過powershell獲取關注的值
小插曲,分公司因控制成本,均不配備IT人員,相應的機房檢核也成了一紙空談。儘管我們的標準配置爲雙電雙網raid5+1塊hot spare。一臺生產環境服務器恰好壞了多塊硬盤導致宕機,最終的數據恢復成本驚人。
環境:分公司服務器均爲總部汰換下來的HP服務器,系統均爲2008、2008R2、2012 64位
思路:
1、HP官方有推出 HP ProLiant Array Configuration Utility (CLI) for Windows(文中簡稱ACU)可以通過命令行的方式配置及查看陣列卡信息。
2、powershell調用上述工具,取出邏輯卷的狀態,再進行判斷,返回判斷結果
3、zabbix_get測試,成功後添加自定義Key
監控陣列卡會稍微繁一點,多了第一步使用HP軟件取值。監控隊列、DAG則只需2 3兩步即可。
大致思路確定後,就可以開始了
1、下載安裝ACU(新版本地址、老版本地址)版本使用無差異,選擇適配自己系統的版本即可。本文中使用的是新版本。
2、ACU的使用:
路徑:C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.exe
用法:ctrl all show confi取得陣列卡信息,觀察其中邏輯卷狀態
3、判斷上步結果:
這樣的結果,zabbix看起來是臃腫的,使用powershell進行判斷,如果邏輯卷OK,則返回0,其他返回1,腳本如下。腳本路徑 D:\PS\raid.health.ps1
cd "C:\Program Files\Compaq\Hpacucli\Bin" $content=.\hpacucli.exe ctrl all show config if(($content | select-string "logicaldrive").tostring() -match "logicaldrive.*OK") { write-host "0" } else { write-host "1" } #0=ok,1=bad
4、zabbix中測試並添加
添加項目,數據更新間隔可以寫大一些(陣列卡2小時監測一次足矣 7200秒),展示值自定義
5、同理添加郵箱隊列及數據庫,我直接將腳本貼在下面。
郵箱隊列
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 $server = "BJMX01" $queue = (get-queue -server $server |Measure-Object -Property messagecount -sum).sum echo $queue
powershell中調用exchange命令須先導入模塊,此步驟需時較長,所以必須修改超時時間
/etc/zabbix/zabbix_server.conf
將Timeout時間改大
數據庫掛載狀態(DAG)
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 $server="bjmx11" $status=Get-MailboxDatabaseCopyStatus -Server $server |foreach {$_.status} if ($status | where-object{$_ -notmatch "Healthy|Mounted" -and $_ -ne""} ) { echo 1 } else { echo 0 }
至此我們就可以在一個頁面中看到所有Exchange狀態了。極大的方便了排錯等工作,後續可以添加一些自定義報警。希望可以幫到您。
PS:
今早在消息中看到推薦上首頁,沒看到在推薦博文中也沒看到推薦的標 ┑( ̄Д  ̄)┍