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