上一篇簡單介紹了zabbix監控Exchange人數,服務等狀態。對一些須要通過判斷的數據則無能爲力了。此時,就需藉助powershell。看過本文後,能夠實現兩個激動人心的功能。
shell
1、對遠程無人值守機房的硬件監控(本文只涉及最重要的磁盤陣列)數據庫
2、經過powershell獲取關注的值api
小插曲,分公司因控制成本,均不配備IT人員,相應的機房檢核也成了一紙空談。儘管咱們的標準配置爲雙電雙網raid5+1塊hot spare。一臺生產環境服務器剛好壞了多塊硬盤致使宕機,最終的數據恢復成本驚人。
服務器
環境:分公司服務器均爲總部汰換下來的HP服務器,系統均爲200八、2008R二、2012 64位ide
思路:工具
一、HP官方有推出 HP ProLiant Array Configuration Utility (CLI) for Windows(文中簡稱ACU)能夠經過命令行的方式配置及查看陣列卡信息。測試
二、powershell調用上述工具,取出邏輯卷的狀態,再進行判斷,返回判斷結果spa
三、zabbix_get測試,成功後添加自定義Key命令行
監控陣列卡會稍微繁一點,多了第一步使用HP軟件取值。監控隊列、DAG則只需2 3兩步便可。server
大體思路肯定後,就能夠開始了
一、下載安裝ACU(新版本地址、老版本地址)版本使用無差別,選擇適配本身系統的版本便可。本文中使用的是新版本。
二、ACU的使用:
路徑:C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.exe
用法:ctrl all show confi取得陣列卡信息,觀察其中邏輯卷狀態
三、判斷上步結果:
這樣的結果,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
四、zabbix中測試並添加
添加項目,數據更新間隔能夠寫大一些(陣列卡2小時監測一次足矣 7200秒),展現值自定義
五、同理添加郵箱隊列及數據庫,我直接將腳本貼在下面。
郵箱隊列
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:
今早在消息中看到推薦上首頁,沒看到在推薦博文中也沒看到推薦的標 ┑( ̄Д  ̄)┍