运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(一)
前言
記得剛來這家公司的時候,我部門就我一個運維工程師,然后就是經(jīng)理,剛開始公司平臺什么監(jiān)控都沒有,在我與經(jīng)理的努力下,先搭建nagios+cacti監(jiān)控平臺,后來隨著公司業(yè)務(wù)的增加,平臺的功能與服務(wù)也不斷的擴展,nagios+cacti監(jiān)控不太適合平臺的需要,為了解決此問題我就使用shell來搭建了腳本監(jiān)控系統(tǒng),根據(jù)平臺的應(yīng)用服務(wù)需求與領(lǐng)導(dǎo)要求,使用shell的腳本監(jiān)控系統(tǒng)監(jiān)控整個平臺的運行情況,但隨著公司業(yè)務(wù)的擴大,平臺數(shù)量的增加,服務(wù)器的數(shù)量也隨之增加,從以前的30臺變?yōu)楝F(xiàn)在的120臺左右,之前的shell腳本監(jiān)控系統(tǒng)雖然能夠順利的監(jiān)控平臺的運行情況,但在日常服務(wù)器巡檢的時候沒有什么便利,我這里管理很嚴(yán)格,每天9、13、17都需要對平臺進(jìn)行一下巡檢,服務(wù)器少的時候還好說,但120臺巡檢就是個噩夢,為了美好的生活,我決定使用自己設(shè)計一個新的監(jiān)控系統(tǒng),主要是能在服務(wù)器端,使用shell腳本監(jiān)控繼續(xù)的監(jiān)控平臺運氣情況,使用mysql數(shù)據(jù)庫記錄監(jiān)控數(shù)據(jù),使用php設(shè)計一個web平臺,能在web里展示這些服務(wù)器的監(jiān)控數(shù)據(jù),經(jīng)過2個月的努力,我獨自一人的完成了這項任務(wù),經(jīng)過3個月的試運行與生產(chǎn)環(huán)境的測試,成功的完成了我之前的需求,使我的時間變的更充裕,不必把時間浪費到日常巡檢里,當(dāng)然也有副作用,就是每天什么事都沒有,實在太閑了(主要是我在搭建shell監(jiān)控的時候,如果發(fā)現(xiàn)有服務(wù)宕掉,就根據(jù)錯誤代碼自動的解決這個問題并重啟服務(wù),所以每天實在很閑)。
由于本監(jiān)控系統(tǒng)我本人獨立自主開發(fā),所以具有決定本監(jiān)控系統(tǒng)是否開源的權(quán)利,為了發(fā)展開源精神,我決定把本分布式監(jiān)控系統(tǒng)open source,借此向開源致敬。其中php程序與shell腳本已經(jīng)放到最后一頁,也就是第七頁,希望本文對各位如何的搭建分布式私有監(jiān)控系統(tǒng)能有更多的啟發(fā),也希望各位同仁能多提意見,謝謝!
閑話不說,下面是我的“運維自動化之PHP+MYSQL+SHELL監(jiān)控系統(tǒng)”的界面展示。
為了方便大家的理解,我畫了一個php+mysql+shell的流程圖
?
?本監(jiān)控系統(tǒng)的流程為(部署的順序是從右到左):
1、需要在各省的機房里的所有服務(wù)器安裝shell監(jiān)控腳本,然后把監(jiān)控服務(wù)與資源的數(shù)據(jù)寫入到mysql數(shù)據(jù)庫里; 2、mysql收到各省服務(wù)器發(fā)送的監(jiān)控數(shù)據(jù),把他們按照先前定義的數(shù)據(jù)表分別的存儲起來; 3、php程序按照之前編輯好的顯示方式,從mysql數(shù)據(jù)庫里提前相應(yīng)的數(shù)據(jù),在web端顯示,同時在部署php程序的images目錄里,運行數(shù)據(jù)視圖化腳本,生成各省監(jiān)控的數(shù)據(jù)資源圖; 4、用戶可以通過web來瀏覽監(jiān)控服務(wù)與資源的數(shù)據(jù)、資源的監(jiān)控數(shù)據(jù)圖。
?由于本文文章與代碼描述過多,所以分成7篇文章,下面是文章網(wǎng)頁地圖。
運維自動化之使用PHP+MYSQL+SHELL打造私有監(jiān)控系統(tǒng)(一)
http://dl528888.blog.51cto.com/2382721/1034992
運維自動化之使用PHP+MYSQL+SHELL打造私有監(jiān)控系統(tǒng)(二)
http://dl528888.blog.51cto.com/2382721/1035131
運維自動化之使用PHP+MYSQL+SHELL打造私有監(jiān)控系統(tǒng)(三)
http://dl528888.blog.51cto.com/2382721/1035142
運維自動化之使用PHP+MYSQL+SHELL打造私有監(jiān)控系統(tǒng)(四)
http://dl528888.blog.51cto.com/2382721/1035145
運維自動化之使用PHP+MYSQL+SHELL打造私有監(jiān)控系統(tǒng)(五)
http://dl528888.blog.51cto.com/2382721/1035252
運維自動化之使用PHP+MYSQL+SHELL打造私有監(jiān)控系統(tǒng)(六)
http://dl528888.blog.51cto.com/2382721/1035297
運維自動化之使用PHP+MYSQL+SHELL打造私有監(jiān)控系統(tǒng)(七)
http://dl528888.blog.51cto.com/2382721/1035335
1、先查看資產(chǎn)管理 資產(chǎn)管理下面有2個功能,一個是新增的設(shè)備,一個是瀏覽設(shè)備 新增設(shè)備 可以增加以上的內(nèi)容 瀏覽設(shè)備 可以展示之前添加的內(nèi)容,是從數(shù)據(jù)庫的device表里獲得數(shù)據(jù) 2、監(jiān)控詳情 此頁面里展示了所以的監(jiān)控省份 比如我監(jiān)控的省份就有甘肅、天津、廣西、貴州、海南、河北、湖南、青海、新疆、河南、西藏、包頭、湖北、江西、寧夏、陜西工16個省份,每個省份5臺服務(wù)器,共計80個服務(wù)器,目前還在繼續(xù)添加服務(wù)器,預(yù)計半個月后,監(jiān)控的服務(wù)器會增加到105個。 下面我們以天津為例 A、應(yīng)用服務(wù)監(jiān)控詳情?
以上監(jiān)控,顯示的是應(yīng)用服務(wù)的監(jiān)控主要顯示的內(nèi)容是通過shell腳本監(jiān)控的,通過shell寫入到mysql,然后php通過設(shè)置好的表單來進(jìn)行展示來自mysql的數(shù)據(jù)。 B、硬盤使用率監(jiān)控詳情 C、cpu使用率監(jiān)控詳情 D、硬件信息錯誤監(jiān)控詳情 E、I/O使用率監(jiān)控詳情 F、15分鐘內(nèi)的負(fù)載 G、內(nèi)存使用率監(jiān)控詳情 H、日志錯誤信息監(jiān)控詳情 I、用戶登錄數(shù)監(jiān)控詳情 3、當(dāng)日報警 以天津為例 可以看到天津今天只有內(nèi)存報警 4、監(jiān)控視圖 可以看到監(jiān)控視圖有3種,分別有日、月、年的,下面我們分別的查看一下 A、當(dāng)日報警,以新疆?dāng)?shù)據(jù)庫為例 (1)新疆?dāng)?shù)據(jù)庫的硬盤使用率 (2)新疆?dāng)?shù)據(jù)庫的cpu使用率 (3)新疆?dāng)?shù)據(jù)庫的io使用率 (4)新疆?dāng)?shù)據(jù)庫的load使用率 (5)新疆?dāng)?shù)據(jù)庫的內(nèi)存使用率 (6)新疆?dāng)?shù)據(jù)庫的用戶登錄數(shù) 以上為什么在hour為13,是因為我設(shè)置的hour為當(dāng)前時間的,比如當(dāng)前為2012年10月23日13:49分,那么當(dāng)前的hour為13.而右上角的2行文字內(nèi)容是: 2012年10月23日,database數(shù)據(jù)庫的用戶登錄不正常的使用紅色線表示 2012年10月23日,database數(shù)據(jù)庫的用戶登錄正常的使用綠色線表示 ? B、當(dāng)月報警,以湖南引擎為例 (1)湖南引擎的硬盤使用率 (2)湖南引擎的cpu使用率? (3)湖南引擎的io使用率 (4)湖南引擎的load使用率 (5)湖南引擎的內(nèi)存使用率 (6)湖南引擎的用戶登錄數(shù) 注意,month(31)是本月有多少天,通過shell腳本進(jìn)行計算的。 C、當(dāng)年報警,以貴州引擎為例 (1)貴州引擎的cpu使用率 (2)貴州引擎的cpu使用率 (3)貴州引擎的io使用率 (4)貴州引擎的load使用率 (5)貴州引擎的內(nèi)存使用率 (6)貴州引擎的用戶登錄數(shù)
5、郵件接收的shell報警截圖
挑選幾個真實的服務(wù)器報警給大家展示一下shell腳本監(jiān)控服務(wù)器的報警系統(tǒng)。
A、服務(wù)宕掉的報警?
B、hardware硬件錯誤信息報警C、load負(fù)載報警
D、內(nèi)存報警
E、swap報警
由于本文文字與腳本內(nèi)容過多,超過每篇8萬字的限制,所以不得不分成多篇博文,盡請見諒。
下一篇文章地址:
運維自動化之使用PHP+MYSQL+SHELL打造私有監(jiān)控系統(tǒng)(二)
http://dl528888.blog.51cto.com/2382721/1035131
BTW:如果大家認(rèn)為我寫的不錯,希望能給我的博客投個票,謝謝!
http://blog.51cto.com/contest2012/2382721
?本文轉(zhuǎn)自 reinxu 51CTO博客,原文鏈接:http://blog.51cto.com/dl528888/1034992,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java猿面试_猿灯塔:关于Java面试
- 下一篇: go mysql recover_gol