打造一个属于自己的应用服务自动监控警报程序
?
打造一個屬于自己的應用服務自動監控警報程序
?
???????? 公司的各項網絡應用服務越來越多了,大到:ERP、PDM、數據庫服務器等應用服務,小到一臺用PC做的文件服務器或者多臺打印服務器。并且,更為復雜的是:隨著公司的業務發展壯大,這些服務器物理位置分散,有的在機房,有的在部門,有的在遠程某個辦公地點。時間長了,難免忘記了,有時,接到用戶投拆,什么什么不能用了,一頭霧頭的想半天,在哪兒呢?我要遠程過去但IP是多少呢?換個角度想想看,這樣等著用戶投拆,也不是個事兒,怎么做到我自己提前知道呢?至少也要做到,當用戶發現不能用的時候,我已在維修中。這樣的話。工作就做到前邊了,領導和用戶的滿意度想必也會提升了。
?
???????? 基于以上的原因,也曾考慮過一些第三方的軟件產品,每每提到軟件費用,像我們這種非IT主導業務的公司領導犯愁,說到軟件布署,自己犯愁。畢竟沒有空閑的好一點的專業服務器不說,就算往那些已帶有業務系統的服務器上安裝,層層審批下來,可能性也不大。
???????? 有沒有更為簡單并且高效的方法來實現呢?經過反復思索。須有以下功能:
1. 定時自動巡檢,并會自動生成詳細的巡檢log;
2. 巡檢到問題是有明顯的報警,至少做到聲音報警。另做到郵件自動通知報警 至少兩種報警方式較可靠一點;
3.靈活的擴展,比如新增一個監控,要能快速加入到監控隊列.
?
自己動手。豐衣足食,該軟件安裝布置當然是裝在我的PC上。要不聲音報警的時候我要聽見。呵呵。郵件自動通知報警支持多人。這樣做的好處明顯。擴展上采用ini配置文件來做,實時加入,實時進入監控隊列.
?
實現原理:軟件首先讀取ini配置文件里的自動巡檢間隔時間,然后開始讀取ini配置文件里的需監控的服務器IP及端口數據,采用FOR循環地進行:創建一個socket連接過去,根據返回值來判斷是否成功在正常運行。若沒有正常返回主套接字(socket)ID,就進入報警模塊,直到判斷完ini配置文件里所有的IP及對應的端口。這個時候,整理一下物理內存,sleep巡檢間隔時間,等待下一個重新讀取ini配置文件里的自動巡檢間隔時間及其它信息。
?
使用方法很簡單:
?
?
絕對綠色,把程序下載下來后,雙擊運行,會自動在軟件當前目錄生成一個配置文件,你可以雙擊打開修改,也可以右下角: 右擊軟件圖標,通過功能鍵來進行編輯。
這是第一步必須要配置好該ini文件.
配置文件編輯修改時注意事項:
[run]
172.16.128.56=80
172.16.136.30=1433
可以添加無限多個監控信息,格式是:ip=端口
文件服務器是445 端口,MSSQL服務器端口是1433? WEB服務器端口是 80等等,大家自行去填寫
?
[admingroup]
1=zhanghong1@test.com.cn
2=zhouyu@test.com.cn
3=youremail@email.com.cn
如上可自行添加多個.? 前提是你必須照實填實你的email服務器及用戶信息.若填寫錯誤且有報警信息時會彈一個窗哦。
?
?
報警示意:
我收到的警報郵件圖示:
報警聲音是連續的電腦蜂鳴(電腦里有個喇叭就行,不通過聲卡!)
?
查看報警日志 示例:
?
?
?
(若路過的您有更好的建議請多多指點,無限感謝!?? 我將盡可以抽時間進行軟件更新讓這個小工具更好地工作.)
?
2010.8.3 感謝??luwenju的建議,控制到秒為單位
若有我之前的版本,升級方法:真接替換EXE程序即可,然后注意ini配置文件里的time的值是秒了。若不然,備份好:inirun.ini,然后刪除inirun.ini,讓主程序重新生成一個即可。
建議: time的值不要設置得太少,想想看,否則累死自己的PC不說,也累倒了被監控的服務器。呵呵~~~大家自己去試試吧~~~
?
感謝51CTO,本文榮幸登錄社區周刊:
總結
以上是生活随笔為你收集整理的打造一个属于自己的应用服务自动监控警报程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载】各版本IIS下ASP.net请求
- 下一篇: 通过VsPhere体验MAC OS X