本文可能不會詳細記錄每一步實現的過程,但必定程度上能夠引領小夥伴走向更開闊的視野,串聯每一個環節,呈現予你不同的效果。html
隨着分佈式微服務容器技術的發展,傳統監控系統面臨許多問題:mysql
這些都是傳統監控所要面臨的棘手問題,那麼如何解決當前遇到的問題,GPE橫空出世,後面會重點分析。程序員
隨着分佈式微服務的盛行,功能模塊的拆分細化,不管對於開發仍是運維,日誌的重要性都是不言而喻的,可是如何存儲分析定位查看日誌,一百個公司可能會有兩百種作法。有的不多記錄日誌,有的日誌等級都不分,有的寫入文本而後就無論不問了,有的向MySql數據庫一扔也沒有了下文,等到用戶投訴或者被發現問題,纔會翻一翻。web
那麼如何正確優雅的記錄日誌呢?相信你們對於ELK並不陌生,可能很多小夥伴都接觸過,對於中小型互聯網創業公司來講,使用ELK搭建日誌分析系統的確是一個不錯的選擇。sql
ELK由Elasticsearch、Logstash和Kibana三劍客組成,固然了以上是最基本的組件,爲了使的架構流程更加豐滿,咱們加入了Redis作緩衝隊列,配置了sendmail作異常日誌告警。數據庫
ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口等。api
Logstash數據分析工具,它能夠對系統生成的的日誌進行採集、分析,存儲。2013 年,Logstash 被 Elasticsearch 公司收購,ELK Stack 正式成爲官方用語。服務器
Kibana是一個開源的分析與可視化平臺,用來搜索、查看存儲在Elasticsearch索引中的數據。restful
ELK主要收集分析預警的是咱們平臺系統中各個服務的業務日誌,通常經過日誌組件(log4j 、log4j2 、logback)來收集並寫入文本。可是對於系統自己以及一些應用軟件的監控預警,這套方案顯然是不合適的,這裏推薦一下GPE三劍客,固然了GPE是我本身意淫出來的組合。網絡
Grafana、Prometheus、Exporter(一系列插件),自定義的三劍客,固然了爲了使得整合監控程序更加流暢完整,咱們加入了註冊中心Consul作服務發現,實現動態添加服務,使用郵件、釘釘以及webhook實現異常告警。
GPE組件只是其中的一種實現方式罷了,Grafana配合InfluxData提供Telegraf也能夠收集不少Metrics,實現更爲豐富的大屏監控預警。
Grafana 是一個開箱即用的可視化工具,具備功能齊全的度量儀表盤和圖形編輯器,有靈活豐富的圖形化選項,能夠混合多種風格,支持多個數據源特色。
Prometheus是一個開源的服務監控系統,它經過HTTP協議從遠程的機器收集數據並存儲在本地的時序數據庫上。
如架構圖所示,Prometheus經過安裝在遠程機器上的exporter來收集監控數據。
Consul有多個組件,可是總體來看,它是你基礎設施中用於發現和配置服務的一個工具。它提供以下幾個關鍵功能:
Consul被設計爲對DevOps羣體和應用開發者友好,他很是適合現代的、可伸縮的基礎設施。
如文章開頭所述,本文並無一步步詳細記錄安裝使用教程,這些教程網上都有,即便有坑,相信做爲程序員的你也可以解決。不才,在這裏只是拋磚引玉,但願各位小夥伴能夠學到更多知識。
還記得許多年前的春天,那時網站還都是靜態頁面,沒有圖片也沒有絢麗的效果,沒有24小時服務的客服,可當初程序員是那麼快樂,雖然只有網頁三劍客,在網上、在指尖、在BBS中,揮灑着本身的青春熱血,若是有一天 我老無所依,請把我留在 在那互聯網浪潮裏。
現現在,隨着雲計算、分佈式、微服務的盛行,程序員的你是否已經疲倦與本身的CURD,是否已經不屑於與產品汪扯皮,來來來,返回頂部小夥伴們再看看一遍,誰說程序員所有的時間都要敲代碼,是時候須要去需找本身的另外一片天空了。
聲明:部分文字介紹來源於網絡。