最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

搭建Prometheus平臺,你必須考慮的6個(gè)因素

2020-06-02 10:05 作者:Rancher_China  | 我要投稿

作者簡介


Loris Degioanni,Sysdig的創(chuàng)始人和CTO,同時(shí)還是容器安全工具Falco的創(chuàng)建者。

當(dāng)前,Prometheus被許多企業(yè)和組織廣泛使用,以監(jiān)控其容器和微服務(wù)。但是在這一過程中,大型公司通常會陷入困境:當(dāng)應(yīng)用程序數(shù)量越來越多的時(shí)候,擴(kuò)展監(jiān)控指標(biāo)則是一個(gè)十分重大的挑戰(zhàn)。


不斷增長的容器使情況復(fù)雜化


相對來說,監(jiān)控單體環(huán)境常常更簡單,因?yàn)殪o態(tài)物理服務(wù)器和虛擬機(jī)數(shù)量是確定的,并且監(jiān)控指標(biāo)的數(shù)量也是有限的。但是,如今由于容器以及需要向微服務(wù)架構(gòu)遷移,要跟蹤監(jiān)控的實(shí)例程序數(shù)量激增。


如果說位于數(shù)據(jù)中心的服務(wù)器是寵物,需要我們不斷關(guān)注的話,那么云實(shí)例則更像牛(因?yàn)橛泻芏?,你不必關(guān)心單個(gè)實(shí)例),而容器則更像小蜜蜂。它們數(shù)量很多,有時(shí)每臺機(jī)器有數(shù)百個(gè)容器,并且新的容器一直不斷出現(xiàn),當(dāng)與諸如Kubernetes的容器編排引擎一起使用時(shí),它們的壽命可能非常短。這使得跟蹤監(jiān)控它們變得更加困難,而且如果你不小心誤操作的話,它們可能會造成很多損害。


隨著復(fù)雜性和分布式環(huán)境的增加,你需要監(jiān)控的實(shí)體數(shù)量也在增加。此外,你可能希望監(jiān)控更多屬性以確保你對正在發(fā)生的事情有準(zhǔn)確的了解,或者在進(jìn)行故障排除或事件響應(yīng)的情況下,可以了解正在發(fā)生的事情。在短暫的環(huán)境中,后者尤其成問題,因?yàn)楫?dāng)你想了解問題的根本原因時(shí),通常相關(guān)的資源已經(jīng)停用,這意味著監(jiān)控解決方案必須提供一種能夠存儲足夠的歷史記錄以進(jìn)行取證的方法。


流行的監(jiān)控工具:Prometheus


越來越多需要云監(jiān)控的團(tuán)隊(duì)正在轉(zhuǎn)向Prometheus,這是一個(gè)開源的CNCF項(xiàng)目。Prometheus已成為開發(fā)人員用來在云原生環(huán)境中收集和理解指標(biāo)的首選監(jiān)控工具。它由一個(gè)大型社區(qū)支持,有來自700多家公司的6300個(gè)貢獻(xiàn)者,有13500個(gè)代碼提交和7200個(gè)拉取請求。


默認(rèn)情況下,典型的云原生應(yīng)用程序堆棧(如Kubernetes、Ngnix、MongoDB、Kafka、golang等)會暴露Prometheus指標(biāo)。Prometheus是一個(gè)可以垂直彈性伸縮的Go程序,為單個(gè)容器或單個(gè)主機(jī)部署它時(shí)十分容易。換言之,一開始使用Prometheus極為容易,你可以輕松監(jiān)控你的第一個(gè)Kubernetes集群,但是這也意味著隨著基礎(chǔ)架構(gòu)的增長,監(jiān)控會越來越復(fù)雜。




應(yīng)用程序增長帶來的擴(kuò)展問題


隨著環(huán)境規(guī)模增長,你需要跟蹤監(jiān)控飛速增長的時(shí)間序列數(shù)據(jù),并且在數(shù)據(jù)量達(dá)到某個(gè)點(diǎn)之后,單個(gè)Prometheus實(shí)例無法繼續(xù)跟蹤監(jiān)控。這一情況下,最直接的選擇是在整個(gè)企業(yè)中運(yùn)行一組Prometheus服務(wù)器,但這帶來了一些挑戰(zhàn)。例如,跨數(shù)十甚至數(shù)百臺Prometheus服務(wù)器管理和合并數(shù)據(jù)并不容易。同樣,了解企業(yè)工作流程、單點(diǎn)登錄、基于角色的訪問控制以及遵守SLA或合規(guī)性也不是容易的問題。隨著應(yīng)用程序的增長,在不中斷開發(fā)人員工作的情況下運(yùn)行一個(gè)全方位的監(jiān)控解決方案,這將成為一個(gè)可管理性和可靠性的問題。


為了解決這一問題,企業(yè)采用了許多方法。


簡單的方法是為每個(gè)命名空間或每個(gè)集群都準(zhǔn)備一個(gè)單獨(dú)的Prometheus服務(wù)器。這種方法到一定規(guī)模就會難以為繼,此外,它還有一個(gè)缺點(diǎn),那就是會造成大量的斷開的數(shù)據(jù)孤島。這會使故障排查變得很麻煩,因?yàn)榇蠖鄶?shù)問題會跨越多個(gè)服務(wù)/團(tuán)隊(duì)/集群。不但在每個(gè)環(huán)境中很難找到相同的指標(biāo),你還需要把數(shù)據(jù)拼接在一起,以試圖了解發(fā)生了什么。


另一個(gè)常見方法是使用類似Cortex或Thanos的開源工具來集合多個(gè)Prometheus服務(wù)器。這些高效的工具可以讓你集中查詢服務(wù)器、收集數(shù)據(jù)然后在統(tǒng)一的dashboard中共享。然而,與任何數(shù)據(jù)密集型分布式系統(tǒng)一樣,它們需要大量的技能和資源才能運(yùn)行。


需要考慮的6個(gè)因素


對于那些以Prometheus為起點(diǎn),然后尋求商業(yè)化解決方案以獲得全局監(jiān)控的公司來說,重要的是,不丟失Prometheus上完成的所有標(biāo)準(zhǔn)化開發(fā)工作——dashboard、告警、exporter等。然而,這不是需要考慮的唯一事情,如果你繼續(xù)使用Prometheus,需要堅(jiān)持以下標(biāo)準(zhǔn):


1、 兼容性,以支持所有Prometheus功能


你的供應(yīng)商/所使用的工具/SaaS解決方案需要能夠使用任何可產(chǎn)生Prometheus指標(biāo)的實(shí)體程序中消耗數(shù)據(jù),無論是本地Kubernetes還是云服務(wù)。相對來說,消耗Prometheus指標(biāo)微不足道,但是也不要忽略一些小事情,例如將指標(biāo)提取到存儲中或增加數(shù)據(jù)時(shí)能夠重新標(biāo)注指標(biāo),這樣對你的環(huán)境更有意義。這些小事加起來,能夠收集到的數(shù)據(jù)將會堆積如山、大不相同。


2、 PromQL兼容性


Prometheus查詢語言由Prometheus創(chuàng)建者發(fā)明,用于提取存儲在Prometheus中的信息。PromQL能讓你查詢指定服務(wù)或指定用戶的指標(biāo),它還能匯總或細(xì)分?jǐn)?shù)據(jù)。例如,你可以使用它顯示所有容器中每個(gè)應(yīng)用的CPU使用率?;蛘邇H顯示Cassandra容器的數(shù)據(jù),并將其顯示為每個(gè)集群的單個(gè)值??梢哉f,PromQL釋放了Prometheus的真正價(jià)值,因此如果將Prometheus的指標(biāo)集成到一個(gè)不完全支持PromQL的產(chǎn)品中,就完全違背了使用Prometheus的初衷。


3、 支持熱插拔


要真正與Prometheus兼容,該解決方案必須能夠支持熱插拔,以便能夠與你現(xiàn)有的dashboard、告警和腳本一起使用。例如,許多使用Prometheus的企業(yè)都將Grafana用于dashboard。這個(gè)開源工具能夠與Prometheus很好地集成在一起,包括在查詢級別,并且可以用于生成一系列有用的圖表和dashboard。因此,聲稱與Prometheus兼容的商業(yè)產(chǎn)品應(yīng)與Grafana等工具兼容。僅僅說解決方案可以讓你在Grafana中查看數(shù)字是遠(yuǎn)遠(yuǎn)不夠的,你需要能夠按照原樣提取現(xiàn)有的Grafana dashboard,并將它們重新應(yīng)用于商業(yè)解決方案中已安裝的數(shù)據(jù)。


4、 訪問控制


在評估工具時(shí),訪問控制是另一個(gè)你需要考慮的安全問題。能夠使用行業(yè)標(biāo)準(zhǔn)協(xié)議(包括LDAP、Google Oauth、SAML和OpenID)保護(hù)用戶身份驗(yàn)證,使公司能夠通過基于服務(wù)的訪問控制來隔離和保護(hù)資源。


5、 故障排查


Kubernetes簡化了部署、彈性伸縮和管理容器化應(yīng)用程序和微服務(wù)。這有助于保持服務(wù)的正常運(yùn)行,但是要識別和解決諸如性能降低、部署失敗和連接錯(cuò)誤之類的根本問題,你需要能夠從整個(gè)環(huán)境中收集和可視化基礎(chǔ)架構(gòu)、應(yīng)用程序和性能數(shù)據(jù)。由于無法同時(shí)訪問實(shí)時(shí)信息和上下文數(shù)據(jù),因此幾乎不可能關(guān)聯(lián)環(huán)境中的指標(biāo),所以你可以更快地解決問題。


6、 與現(xiàn)有告警兼容


最后,如果你正在尋找商業(yè)解決方案來幫助解決Prometheus可擴(kuò)展性問題,請確保它支持所有級別的告警。能夠?qū)崿F(xiàn)這一目標(biāo)的關(guān)鍵是全面支持Alert Manager功能,而Alert Manager還要求100%的集成和 PromQL兼容性。



如果你找到一個(gè)能夠滿足以上標(biāo)準(zhǔn)的商業(yè)化工具,你應(yīng)該能夠輕松將其集成到現(xiàn)有的Prometheus中,并且能夠避免公司遇到的可擴(kuò)展性問題。開發(fā)人員有充分的理由喜愛Prometheus,因此在采用商業(yè)化方案之前進(jìn)行全面、盡職的調(diào)查將確保他們?nèi)匀豢梢允褂米约合矚g的指標(biāo)。



搭建Prometheus平臺,你必須考慮的6個(gè)因素的評論 (共 條)

分享到微博請遵守國家法律
淮阳县| 福贡县| 驻马店市| 呼和浩特市| 枞阳县| 田东县| 金溪县| 南华县| 嘉禾县| 万载县| 青龙| 兴业县| 四子王旗| 察隅县| 彰武县| 金堂县| 大埔区| 达孜县| 叶城县| 青海省| 察隅县| 阿城市| 芦山县| 霍林郭勒市| 安顺市| 恭城| 密山市| 信丰县| 平凉市| 育儿| 德化县| 苏尼特左旗| 宜城市| 凯里市| 延安市| 庆阳市| 永仁县| 香港 | 新建县| 舟曲县| 武宣县|