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