最近一段時(shí)間流行一句話叫做蒙眼狂奔纯出, 筆者不由自主的想到一個蒙上眼睛投刀子扎美女的表演。
蒙眼狂奔暂筝,其實(shí)沒有什么問題, 估計(jì)現(xiàn)在道路寬闊硬贯,人人都可能給你讓路焕襟, 但是一旦自己掉坑里,連回去的路恐怕都找不到澄成, 是時(shí)間停下來胧洒, 仔細(xì)看看自己的儀表盤(Dashboard),到哪了墨状, 方向?qū)Σ粚ξ缆黜?xiàng)指標(biāo)正常否?
此篇主要討論下系統(tǒng)監(jiān)控相關(guān)的東西肾砂, 以及我們的IT系統(tǒng)里面的實(shí)踐列赎。
所有代碼都寫好,環(huán)境搭建好镐确, 該接的都接了包吝,就好像家裝修好, 地板鋪了源葫,水電煤通了诗越;就拎包入住了, 住了一個月確實(shí)不錯; 系統(tǒng)運(yùn)行了三個小時(shí)候有余了息堂, 調(diào)用API 能通嚷狞,訂單能下, 數(shù)據(jù)庫錄入也都正常荣堰, 突然某天系統(tǒng)就嗝屁了床未!
監(jiān)控可以根據(jù)不同的層來區(qū)分, 也可以根據(jù)時(shí)效比如有的需要實(shí)時(shí)振坚, 而其他可能對實(shí)時(shí)性需求沒有那么高薇搁。
- 系統(tǒng)監(jiān)控-基礎(chǔ)設(shè)施層
- OS, 網(wǎng)絡(luò) etc
- 服務(wù)監(jiān)控-中間件層
- MQ, redis, Mysql,Nginx etc
- 應(yīng)用層
- 根據(jù)你業(yè)務(wù)模型來分
- 其他等等
監(jiān)控渡八, 就是不停抽樣系統(tǒng)的各項(xiàng)運(yùn)行指標(biāo):
- 確保都在監(jiān)控可控范圍內(nèi)啃洋, 還需要
- 完善的周邊解決方案传货, 指標(biāo)不正常后可以自動化走備案。
- 訓(xùn)練有素的團(tuán)隊(duì)快速響應(yīng)
這樣才能有可能保證你的系統(tǒng)健康的運(yùn)行下去 --- 一個系統(tǒng)完美正常的運(yùn)行下去還有諸多其他的因素裂允, 終極目標(biāo)可能是一個自動化無人值守的系統(tǒng) :-)
基礎(chǔ)設(shè)施的監(jiān)控
這部分的都有非常成熟的解決方案损离, 這里不再描述哥艇, 可以查詢網(wǎng)上很多的解決方案绝编, 比如 Zabbix, Nagios,Pandora 等等
這套系統(tǒng)貌踏, 如果在云上十饥, 一般都成套的工具幫你實(shí)現(xiàn), 如果自己搭建祖乳,需要一個經(jīng)驗(yàn)比較豐富的運(yùn)維團(tuán)隊(duì)逗堵。
業(yè)務(wù)部分的監(jiān)控
業(yè)務(wù)日記的掃描整理可以借鑒ELK 的解決方案。 這里更多注重關(guān)鍵網(wǎng)關(guān)上面的性能和效率監(jiān)控眷昆。 監(jiān)控信息的收集方式無外乎 : 主動push, 或被動的pull蜒秤; 而收集的機(jī)制,一般都是在宿主機(jī)器上裝相應(yīng)的agent 匯聚亚斋、加工原始的信息到分析的機(jī)器上作媚, 比如fileBeat、logstash 等帅刊。這樣的做法對現(xiàn)有的應(yīng)用侵入性少一點(diǎn)纸泡, 業(yè)務(wù)開發(fā)人員幾乎可以無知這樣的基礎(chǔ)設(shè)施的存在。
我們這里采用還是在代碼里面加上錨點(diǎn)赖瞒, 這樣可以達(dá)到更粒度的控制女揭, 然后采用主動push 的方式,采用的技術(shù)棧:
- Dropwizard Metrics 在API, gateway 采集指標(biāo)栏饮, 比如Timer, Counter 等等
- InfluxDB 存儲時(shí)序數(shù)據(jù)
- Grafana 展示
是不是很簡單暴力吧兔, Dropwizard 采集指標(biāo), 這個比較簡單袍嬉,配合InfluxDB Reporter 將指標(biāo)發(fā)送到InfluxDB, 大家可能覺得現(xiàn)在InfluxDB開源部分不在包含集群功能境蔼, 有點(diǎn)質(zhì)疑, 其實(shí)你可以將不同模塊的指標(biāo)輸送到多個 InfluxDB instance上面去冬竟, 在一個不是太復(fù)雜的系統(tǒng)欧穴, InfluxDB 還是夠用的。
InfluxDB 本身包含自己一套的泵殴,采集涮帘, 聚合和展示套件, 展示這一塊我們使用 Grafana笑诅。 Grafana 支持從多種數(shù)據(jù)源導(dǎo)入展示數(shù)據(jù)调缨, 簡單容易上手疮鲫。
這樣一套系統(tǒng),搭建起來弦叶,技術(shù)要求沒有那么高俊犯, 成本也很有限, 使用維護(hù)的成本也低伤哺, 可謂物美價(jià)廉燕侠, 當(dāng)然我們把一些其他的監(jiān)控, 比如JVM 等也都放上去了立莉。
GoXTX 下一代交易平臺技術(shù)供應(yīng)商
GoXTX one-stop solution for neXT generation eXchange