去哪兒網美女運維:合適的開源軟體,支撐800萬+監控指標

從垂直搜索起家,後殺入在線旅遊交易。去哪兒網的業務越來越複雜,整個技術系統對可靠性、質量的要求越來越高,去哪兒網的工程師們克服了種種困難,確保了最終系統的順暢運行。例如,去哪兒網的運維團隊基於開源項目Graphite+Grafana+Nagios二次開發了監控系統Watcher,用來支撐去哪兒百萬級別的基礎/業務監控指標。

2016年8月18-19日,由極客邦、InfoQ和聽雲聯合主辦的APMCon2016中國應用性能管理大會將在北京舉行(現在報名,享8折優惠),聚焦當前最為關鍵的移動端、Web端和Server端的性能監控和管理技術。

本屆大會,我們有幸邀請到了去哪兒網運維開發工程師張悅,前來分享《去哪兒監控系統實踐》的內容,講述她在Watcher開發過程中對監控系統性能的探索經驗與實踐。

受訪嘉賓簡介

去哪兒網美女運維:合適的開源軟件,支撐800萬+監控指標

張悅,去哪兒網運維開發工程師。於2013年加入去哪兒。一直從事運維開發,參與開發Watcher監控系統,現負責監控相關的開發和運維工作。

InfoQ:請介紹一下您在Watcher開發過程中主要負責的內容?以及您現在的工作職責!

張悅:我是從2013年畢業就加入去哪兒,一直從事監控方面的改進和開發工作,參與Watcher從選型、設計、開發到維護的全過程,從一開始兩個人到現在穩定的三個人的小團隊,我們自己做產品+開發+測試。雖不敢說Watcher是一個成熟完備的監控方案,但現在Watcher已經承載了去哪兒網大部分核心業務的監控和告警。

目前我還是主要負責監控相關的開發和運維工作。

InfoQ:去哪兒網在後期使用大眾監控工具Cacti遇到了什麼瓶頸?在開發新的監控系統初期有哪些長遠的規劃?

張悅:其實Cacti我們也用了很長一段時間,一開始還是蠻穩定的,而且Cacti有豐富的第三方插件,但是隨著指標量的增長,在性能上、擴展性上以及用戶的使用效率上出現了一些問題,比如:

  1. 單點:一旦出了故障恢復起來較慢的話,那個期間監控系統是完全不可用的,就如同裸奔...

  2. 無法橫向擴展:因為Cacti不是分佈式的,指標量一大,單機磁盤有限,就不得不通過壓縮RRD文件來換取空間,但是這樣歷史數據就失真了

  3. 監控可視化較弱

  4. 沒有開放API

所以,基於以上我們開始著手新監控系統時,設定的目標是必須要做到:

  1. 高可用

  2. 可橫向擴展,易擴容

  3. 加強監控可視化

InfoQ:關於Watcher,它是如何保證數據準確性和監控可視化的?

張悅:首先數據準確性上,上面提到了,之前Cacti因為不是分佈式的,單機磁盤有限,所以選擇壓縮歷史數據,一個月以前的數據就失真了。Watcher設定目標時有一點是一定是要可橫向擴展的,選型時我們選擇了基於Graphite,之所以會選擇它,很大一部分原因也是它的設計完全是scale out,每一層都是可擴展的。那麼既然可以橫向擴展,我們就可以把不壓縮的時間區間放的大一些。同時我們也會對收集的指標進行抽樣監控,比如斷點監控,一定程度上也是保證數據的準確性。

關於可視化,我們希望可以做到直觀方便,想怎麼看就怎麼看。我們選擇基於Grafana來做二次開發,定製開發的主要點是集成Qunar的產品樹、用戶體系和基礎監控,在dashboard上提供多維度靈活的數據展示,以及自定義空間來展示核心監控,再配合Grafana強大的可視化,基本達到了最初我們想實現的效果。

InfoQ:Watcher的告警策略是什麼樣的?

張悅:最基本的是設置大於XXX或小於XXX就報警,除此之外常見的用法還有環比上週大於XXX或小於XXX;可設定檢查的頻率、多次不OK再報警;不同時間段設置不同的報警規則;支持臨時規則;報警聯繫人支持輪班;報警回調;多種通知方式等。

InfoQ:接下來,去哪兒網對Watcher的關注點將會集中在哪裡?有什麼計劃嗎?

張悅:主要在兩個方面,一個是成本,一個是人員效率。當量小的時候,我們需要資源也少,但是目前Watcher監控指標已超過800萬+, 每分鐘集群要支撐1500萬指標上報,雖然Watcher是可橫向擴展的,可以理解成加機器就可以了,但是這中間還是有很大優化的空間的,所以我們就需要關注成本控制。另外就是下一步計劃報警上要繼續完善,健全報警機制,通過人員對報警、故障的應答時間,反映出人員、團隊的工作效率。

InfoQ:去哪兒網在自動化運維方面用了哪些工具?有什麼考量?

張悅:

監控相關的工具有:

  • Graphite

  • Grafana

  • Collectd

日誌收集工具:

  • ELK

  • Mesos

  • Docker

存儲工具:

  • Swift

  • MFS

  • Ceph

配置管理工具:

  • SaltStack

  • Ansible

LB工具:

  • LVS

  • HAproxy

  • Nginx

這裡只列舉出來一部分我們在用的工具,我參與選型及開發的主要還是監控相關的。不過可以說一下我們對開源軟件選擇的思路,選擇的過程基本是先分析場景,然後看每個軟件跟場景的匹配程度以及開源軟件的成熟程度,首先找到合適的開源軟件,然後把它與我們的運維體系集成起來,比如OpsDB,先解決了大部分問題,才會考慮基於原始版本定製開發。所以我們對自動化工具的選擇就是選型加迭代,選擇適合當前場景下的運維方式(工具)才是最重要的,並且總是把一個組件的從頭開發放到最壞的打算裡,Watcher的選型過程也是按照這個思路做的。

InfoQ:之前,有電商網站因人為原因,導致訂單被單方面取消,那麼去哪兒網在監控這方面有哪些特定的措施?

張悅:訂單被取消的可能性有很多,所以監控點也會很多。一般可以對“取消訂單”量計數,根據指標波動情況設置閾值(包含同比閾值)來報警。

InfoQ:您即將在8月份的APMCon上發表《去哪兒監控系統實踐》演講,具體會講哪些內容呢?

張悅:特別榮幸能參加APMCon,作為一個默默無聞的程序媛,竟然能有幸和那麼多技術大神一起分享,對自己來說是一次非常好的學習和鍛鍊的機會。

這個演講主要是分享去哪兒監控系統Watcher的設計、選型、架構,Watcher的開發過程中遇到的問題以及一些經驗。這些經驗對如何使用開源項目快速搭建一套監控系統會有一些幫助。

除了去哪兒網,還有阿里、騰訊、京東、美團、360等大公司的大牛前來分享APM技術。現在報名還不晚,大會專門為InfoQ讀者準備了

優惠碼:APMCon_InfoQ6折再減500,手快有,手慢無!

去哪兒網美女運維:合適的開源軟件,支撐800萬+監控指標


分享到:


相關文章: