1、硬件監(jiān)控
通過(guò)SNMP來(lái)進(jìn)行路由器交換機(jī)的監(jiān)控(這些可以跟一些廠商溝通來(lái)了解如何做)、服務(wù)器的溫度以及其它,可以通過(guò)IPMI來(lái)實(shí)現(xiàn)。當(dāng)然如果沒(méi)有硬件全都是云,直接跳過(guò)這一步驟。
2、系統(tǒng)監(jiān)控
如CPU的負(fù)載,上下文切換、內(nèi)存使用率、磁盤(pán)讀寫(xiě)、磁盤(pán)使用率、磁盤(pán)inode使用率。當(dāng)然這些都是需要配置觸發(fā)器,因?yàn)槟J(rèn)太低會(huì)頻繁報(bào)警。
3、服務(wù)監(jiān)控
比如公司用的LNMP架構(gòu),Nginx自帶Status模塊、PHP也有相關(guān)的Status、MySQL的話(huà)可以通過(guò)Percona官方工具來(lái)進(jìn)行監(jiān)控。Redis這些通過(guò)自身的info獲取信息進(jìn)行過(guò)濾等。方法都類(lèi)似。要么服務(wù)自帶。要么通過(guò)腳本來(lái)實(shí)現(xiàn)想監(jiān)控的內(nèi)容,以及報(bào)警和圖形功能。
4、網(wǎng)絡(luò)監(jiān)控
如果是云主機(jī)又不是跨機(jī)房,那么可以選擇不監(jiān)控網(wǎng)絡(luò)。當(dāng)然你說(shuō)我們是跨機(jī)房以及如何如何,推薦使用smokeping來(lái)做網(wǎng)絡(luò)相關(guān)的監(jiān)控,或者直接交給你們的網(wǎng)絡(luò)工程師來(lái)做,因?yàn)樾g(shù)業(yè)有專(zhuān)攻。
5、安全監(jiān)控
如果是云主機(jī)可以考慮使用自帶的安全防護(hù)。當(dāng)然也可以使用iptables。如果是硬件,那么推薦使用硬件防火墻。使用云可以購(gòu)買(mǎi)防DDOS,避免出現(xiàn)故障導(dǎo)致down機(jī)一天。如果是系統(tǒng),那么權(quán)限、密碼、備份、恢復(fù)等基礎(chǔ)方案要做好。Web同時(shí)也可以使用Nginx+Lua來(lái)實(shí)現(xiàn)一個(gè)Web層面的防火墻。當(dāng)然也可以使用集成好的OpenResty。
6、Web監(jiān)控
Web監(jiān)控的話(huà)題其實(shí)還是很多。比如可以使用自帶的Web監(jiān)控來(lái)監(jiān)控頁(yè)面相關(guān)的延遲、js響應(yīng)時(shí)間、下載時(shí)間、等等。這里我推薦使用專(zhuān)業(yè)的商業(yè)軟件監(jiān)控寶或聽(tīng)云來(lái)實(shí)現(xiàn)。畢竟人家全國(guó)各地都有機(jī)房(如果本身是多機(jī)房那就另說(shuō)了)。
7、日志監(jiān)控
如果是Web的話(huà)可以使用監(jiān)控Nginx的50x、40x的錯(cuò)誤日志,PHP的ERROR日志。其實(shí)這些需求無(wú)非是,收集、存儲(chǔ)、查詢(xún)、展示,我們其實(shí)可以使用開(kāi)源的ELKStack來(lái)實(shí)現(xiàn)。Logstash(收集)、Elasticsearch(存儲(chǔ)+搜索)、Kibana(展示)。
8、業(yè)務(wù)監(jiān)控
上面做了那么多,其實(shí)最終還是保證業(yè)務(wù)的運(yùn)行。這樣我們做的監(jiān)控才有意義。所以業(yè)務(wù)層面這塊的監(jiān)控需要和開(kāi)發(fā)以及總監(jiān)開(kāi)會(huì)討論,監(jiān)控比較重要的業(yè)務(wù)指標(biāo),(需要開(kāi)會(huì)確認(rèn))然后通過(guò)簡(jiǎn)單的腳本就可以實(shí)現(xiàn),最后設(shè)置觸發(fā)器即可 。
9、流量分析
平時(shí)我們分析日志都是拿awk sed xxx一堆工具來(lái)實(shí)現(xiàn)。這樣對(duì)我們統(tǒng)計(jì)IP、PV、UV不是很方便。那么可以使用百度統(tǒng)計(jì)、Google統(tǒng)計(jì)、商業(yè),讓開(kāi)發(fā)嵌入代碼即可。為了避免隱私也可以使用Piwik來(lái)做相關(guān)的流量分析。
10、可視化
通過(guò)Screen以及引入一些第三方的庫(kù)來(lái)美化界面,同時(shí)我們也需要知道,訂單量突然增加、突然減少。或者說(shuō)突然來(lái)了一大波流量,這流量從哪兒來(lái),是不是推廣了,還是被攻擊了??梢越Y(jié)合監(jiān)控平來(lái)梳理各個(gè)系統(tǒng)之間的業(yè)務(wù)關(guān)系。
11、自動(dòng)化監(jiān)控
如上我們做了那么多的工作,當(dāng)然不能是一臺(tái)一臺(tái)的來(lái)加key實(shí)現(xiàn)??梢酝ㄟ^(guò)Zabbix的主動(dòng)模式以及被動(dòng)模式來(lái)實(shí)現(xiàn)。當(dāng)然最好還是通過(guò)API來(lái)實(shí)現(xiàn)。