從初創型到獨角獸企業,監控架構演進的那些事兒
一、業務背景
運滿滿創立於2013年,致力於為公路運輸行業提供高效管理配貨的app。在5年時間內從初創型公司發展到獨角獸企業,我們經歷了很多次的技術架構調整。
今天給大家分享下不同時期,在運維監控方面做的多次架構升級。希望給大家在技術選型階段,提供一些參考和借鑑。
二、架構演進
運滿滿監控整體可以分為三個階段:全家桶套餐時代、DevOps時代、定製AIOps時代
創業期:全家桶套餐
在2015年以前,公司業務發展的不確定性,伺服器數量規模較少。大部分都是靠運維人工監控、每日指令碼巡檢。
和大部分創業公司一樣,當時的運維人員控制在3人以下,每天都在處理各類開發需求,完全沒有空閒去開發系統,做整體的監控告警。這個階段,我們急需一款開源的、功能齊全的、入門成本低的監控系統。
Zabbix是我們當時的選擇,簡單的配置頁面,豐富的agent資料採集,支援簡訊、郵件及微信告警,在一個星期內,我們就完成了全站的基礎監控。
Zabbix開箱即用的使用方式,適合初創型公司。即使是現在,Zabbix還線上上執行,監控網路裝置的執行狀態。
發展期:DevOps時代
到了2016年,隨著業務高速發展,研發的需求越來越複雜,同時也暴露出Zabbix的很多缺點。
Zabbix效能瓶頸,監控資料儲存在Mysql中,隨著監控資料越來越多,Zabbix響應時間變慢。
Zabbix只支援metric型別監控,對於日誌類監控,支援並不友好。
Zabbix監控大盤頁面不美觀,無法滿足業務方定製的需求。
基於以上問題,我們開始尋求專業領域內的各類監控。
CAT
CAT(Central Application Tracking)是基於Java開發的實時監控平臺,主要包括移動端監控,應用側監控,核心網路層監控,系統層監控等。
CAT的優點是功能豐富,支援釘釘告警,95線99線計算,可展示程式碼級別監控,在程式碼層故障定位提供了強有力的工具。
LEPUS
Lepus(天兔)資料庫企業監控系統是一套由專業DBA針對網際網路企業開發的一款強大的企業資料庫監控管理系統。Lepus後端採用Python語言開發,對於運維非常友好,可以很方便地作出一些個性化的修改。
Lepus的優點是無需安裝agent,賬號集中管理,適合作為資料庫的CMDB使用。
ELK監控生態
ELK(Elasticsearch,Logstash,Kibana)是Elastic公司提供的三個開源元件。在日常工作中,我們需要進行日誌分析場景:直接對日誌檔案進行grep、awk等正則操作,獲取我們想要的資訊。在大規模的場景中,日誌檔案分佈在不同的伺服器上,且檔案非常大,逐臺操作效能非常低。比如Nginx日誌,Mysql慢查詢日誌,應用log日誌等。ELK提供一整套的解決方案,可以幫助我們快速全站查詢。
下圖是Mysql慢查詢的截圖,通過python指令碼,可以實時讀取Mysql慢查詢日誌,並寫入ES,方便檢視線上問題。
下圖是伺服器的dashboard,通過模糊匹配,可以快速查詢相關伺服器組的效能指標。
Open-Falcon
Open-Falcon是小米開源的監控系統,靈活的資料採集,水平擴充套件能力以及高效的告警策略幫助我們快速監控servers的資訊。在實際的環境中,我們僅採用了falcon-agent、falcon-transfer元件,幫助我們採集資料,具體的儲存及展示由更專業的元件處理。
資料儲存及展示
隨著業務的發展,資料量越來越大,需要一款通用的時序資料庫提供資料儲存,當時有Prometheus、OpenTSDB、InfluxDB三大選擇。
Prometheus提供了豐富的資料模型和查詢語句,容易上手,很容易整合到現有的環境中,但是Prometheus的叢集和HA架構並不成熟,需要額外的開發,並不適合。
InfluxDB是在Prometheus之後才提出的,並且提供商業的伸縮和叢集化服務,相比Prometheus的metrics儲存,InfluxDB還能處理事件型別的資料,對於大部分公司而言,商業化基本不會考慮。
OpenTSDB是一個基於Hadoop和Hbase的分散式事件序列資料庫,相比Prometheus和InfluxDB,OpenTSDB的橫向擴縮容很容易(需要有豐富的Hadoop/HBase維護經驗),同時官方Open-falcon支援OpenTSDB,結合公司現有的技術棧,綜合考慮後最終選擇了OpenTSDB作為我們的儲存。
關於資料展示的選型,在沒有自研能力的情況下,Grafana是不二選擇。Grafana的告警功能強大方便,同時支援釘釘,Webhook等,滿足公司所有的需求。與此同時,我們將Grafana和Docker技術結合,實現了Grafana高可用、自愈和無限擴充套件能力。
資料庫監控
Nginx監控
專線監控
Kubernetes監控
獨角獸期:定製AIOps時代
在2017年底,運滿滿與貨車幫合併,底層資料量翻倍,人員翻倍。我們碰到了以下幾個問題:
問題排查,需要開啟多套監控系統,效率低。
每套監控都有學習成本,對研發不友好。
一個故障,多套監控工具同時告警形成簡訊風暴,擾亂視聽。
基於以上問題,我們提出了建設一套大而全的監控理念,主要包括以下幾個要素:
同時支援基礎監控與業務監控;
事件日誌與metric指標關聯:
告警介面統一;
支援多種語言接入。
監控架構圖如下:
在資料採集階段,保留了Open-Faclon、CAT、 客戶端SDK、Logstash等入口,通過Kafka進行匯聚,引入大資料實時計算平臺Flink,提煉metric指標,並最終入庫。
在告警方面,開發了Alert Manager元件,對接多種告警渠道:釘釘、簡訊、微信等,並且自動建立Jira,告警閉環。
我們的最終目標是實現AI自愈的功能,比如自動降級、限流、流量切換等,目前該部分的功能還在探索中。
作者簡介
葉聖賢,滿幫集團運滿滿公司技術保障部負責人。長期關注運維、DB、容器等領域,推崇DevOps理念,善於開發工具解決日常運維工作,提高運維效率。
相關文章
- 「前端那些事兒」④ 效能監控前端
- 美創科技再次入選《2023杭州獨角獸&準獨角獸企業榜單》
- HDFS監控背後那些事兒,構建Hadoop監控共同體Hadoop
- 從MVC到DDD的架構演進MVC架構
- 架構那些需要注意的事兒架構
- 賦能製造業 思科助力“獨角獸”企業構建資訊化基礎架構架構
- 01 . 中小企業到億級流量架構演進過程架構
- vivo服務端監控系統架構及演進之路服務端架構
- 2021中國潛在獨角獸企業名單
- 36氪研究院:2022年杭州獨角獸及準獨角獸企業研究報告(附下載)
- 分散式系統的那些事兒 - SOA架構體系分散式架構
- 從 Llama 1 到 3.1:Llama 模型架構演進詳解模型架構
- 埃森哲:獨角獸進化論–中國獨角獸研究報告(附下載)
- 演進實錄|不同階段的企業如何搭建監控體系?
- 從零入門 Serverless | 架構的演進Server架構
- 2020年全球獨角獸企業500強資料彙總
- 程式碼重構那些事兒
- 服務架構學習與思考(12):從單體架構到微服務架構的演進歷程架構微服務
- 獨角獸也卷不動了:AI Agent初創Adept被爆考慮出售AI
- Airbnb的架構演進AI架構
- Serverless 架構的演進Server架構
- 華雲資料獲評"蘇南國家自主創新示範區獨角獸企業"
- 架構師日記-軟體高可用實踐那些事兒架構
- webpack的那些事兒Web
- https的那些事兒HTTP
- JAVA架構師那些事?Java架構
- 從入門到進階,印象筆記那些事筆記
- 去哪兒網企業級監控平臺-Watcher
- 精準賦能獨角獸企業資訊化建設的低程式碼
- 瞭解作業系統的那些事兒,從這篇文章開始作業系統
- 日誌架構演進:從集中式到分散式的Kubernetes日誌策略架構分散式
- 淘寶從幾百到千萬級併發的十四次架構演進之路!架構
- 分析視角下銀行業資料平臺架構演進及實現行業架構
- 物聯網初創企業會遇到的四個坑兒
- 雲原生架構下的微服務選型和演進架構微服務
- 杉巖喜獲信創獨角獸百強稱號,信創專案落地進行時
- PHP那些事兒PHP
- Redis那些事兒Redis