本篇文章是個技術分享文,Netflix 分享內部過去四年來是如何打造一個分散式的 Tracing System。
Netflix 的串流服務想必大家都很熟悉,但是作為服務提供者來說,要如何維運這套分散式的串流服務就沒有這麼簡單。
舉例來說,當一個特定的使用者回報其服務有問題時,內部的系統要如何把下列資訊給全部串接起來組合出一個可以讓內部工程人員除錯的機制
1. Streaming Session
2. 微服務之間的流量
3. CDN 的處理
對使用者來說就是串流有問題,但是背後的網路封包實際上經過哪些 app,走過哪些節點,踏過哪些機房都是很複雜的事情,不把這些全部資訊都組合起來則非常困難除錯。
Netflix 決定要針對這個問題打造一個分散式的 Tracing 平台,而那時還沒有這麼多如 Opentracing, Zipkin, Jaeger 等相關的開源專案可以用,所以 Netflix 必須要自己去打造這套系統。
這套系統的組成跟現今常見的架構雷同,Application 本身要透過 Library 來產生出 Tracing 需要的資料,接者透過一套串流處理將資料給傳送到後端的儲存空間,最後則是由UI等相關服務來讀取資料方便使用
本篇文章基於這種架構下去探討 Netflix 的心路歷程,其中幾個比較有趣的問題這邊列出來
1. Tracing 資料的取樣該如何設計,過於頻繁會造成資料空間使用過量,過於稀少則會造成資料不夠完整,這部分 Netflix 採用基於 hybrid head-based 的取樣方式,針對特定區間採用 100% 的取樣方式,而其餘則是根據設定來隨機取樣
2. 資料儲存的部分則是有非常豐富的變化歷史,早期使用 ElasticSearch 後來對其 R/W 的效能感到不滿而輾轉到使用 Cassandra,而 Cassandra 最初使用 AWS 的 SSD 做為底層應用,後來改轉使用 EBS 並且搭配資料壓縮與一些過濾機制, 2021 決定要引入 Storage Gateway 的方式來處理
儲存方面幾乎是每年都在改善與改進,真的要遇到問題才有辦法針對問題下藥,這也是架構方面很難一口氣做到最好,隨者業務與流量擴大,很多現有的架構可能都需要打掉重來才有辦法應付
全文不算太短,但是推薦有興趣的人可以閱讀全文來看看 Netflix 是如何打造這套系統的
https://netflixtechblog.com/building-netflixs-distributed-tracing-infrastructure-bb856c319304
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「elasticsearch設定」的推薦目錄:
- 關於elasticsearch設定 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於elasticsearch設定 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
- 關於elasticsearch設定 在 軟體開發學習資訊分享 Facebook 的精選貼文
- 關於elasticsearch設定 在 コバにゃんチャンネル Youtube 的最讚貼文
- 關於elasticsearch設定 在 大象中醫 Youtube 的最佳解答
- 關於elasticsearch設定 在 大象中醫 Youtube 的最讚貼文
- 關於elasticsearch設定 在 Elasticsearch+Kibana+Logstash環境安裝 - Pcion's Blog 的評價
- 關於elasticsearch設定 在 建置Elasticsearch + IK中文分詞+ 繁體支援設定檔by Docker 的評價
- 關於elasticsearch設定 在 在CentOS 7 上安裝Elasticsearch 和Kibana - 他山教程 的評價
- 關於elasticsearch設定 在 ELK 台灣臉書群| 大家知道Elasticsearch 有Rollup 這個功能嗎 的評價
- 關於elasticsearch設定 在 Elasticsearch Index 管理與效能優化技巧 - YouTube 的評價
elasticsearch設定 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
從本篇開始,接下來將幫大家介紹 k8s.af 裡面關於各種 Kubernetes 維運上遇到的各種問題。
本篇主題: 為什麼我們要在兩小時內從 fluent-bit 轉換到 fluentd
症狀: 某日下午,開發者通知疑似某些生產環境上面的日誌出現問題,沒有看到任何更新。
作者的團隊已經使用 fluent-bit 來轉發應用程式日誌已經三年多了,過去的經驗表示 fluent-bit 表現良好,有個良好的效能,設定也相對簡單。
問題發生時,首先觀察 fluent-bit 相關的資訊,從中得到關於 ElasticSearch 拒絕接受相關請求的錯誤訊息,最後輾轉從 ElasticSearch 去解決,再也沒有任何錯誤訊息出現了。但是實際的問題還是存在,該看到的日式
然而其實主體問題還在,日誌還是沒有被收集起來送出去,因此這時候團隊就開始思考該怎麼做。其中嘗試過升級降級已經修改不同參數,但是都沒有辦法解決問題,最後於 GitHub 上面找到一個相關 issue(https://github.com/fluent/fluent-bit/issues/2416),問題情況一樣類似而且沒有解決方法,所以幫助不大,但是至少知道自己並不孤單。
一切都明瞭後,作者團隊知道沒有辦法針對 fluent-bit 的這個錯誤去修改,因此開始思考其他的替代方案,最後選擇使用了 fluentd 來替代。整個抽換過程是緩慢的,先從出問題的節點開始,慢慢的部署 fluentd 並且移除 fluent-bit,其中還透過了 node Affinity 以及 anti-affinity 來幫忙調整部署的選擇。
最後有興趣的話建議點選原文,幫自己增廣見聞一下
原文: https://prometheuskube.com/why-we-switched-from-fluent-bit-to-fluentd-in-2-hours
elasticsearch設定 在 軟體開發學習資訊分享 Facebook 的精選貼文
--課程已於 2020 年 7 月更新--
Elasticsearch 是一個強大的工具,不僅可以用於在大型網站上搜索,還可以在幾毫秒內分析大數據集!這是越來越受歡迎的技術,也是當今就業市場中很有價值的技術。 這個全面的課程涵蓋所有,從安裝到操作,有60個講座,包括8小時的影片。
從這 8.5 小時的課程,你會學到
✅ 在群集 ( cluster ) 上安裝和設定 Elasticsearch
✅ 創建搜索的索引和映射
✅ 以幾種不同的方式搜索全文和結構化資料
✅ 使用幾種不同的技術將資料輸入到 Elasticsearch
✅ 將 Elasticsearch 與其他系統整合,例如 Spark、Kafka、關係資料庫、S3等
✅ 使用桶 ( buckets ) 和指標彙整結構化資料
✅ 使用 Logstash 和 “ ELK stack ” 將串流日誌 ( streaming log )資料輸入到 Elasticsearch
✅ 使用 Filebeats 和 Elastic Stack 大規模輸入串流資料
✅ 使用 Kibana 分析和視覺化 Elasticsearch 的資料
✅ 管理運作中 Elasticsearch 群集的操作
✅ 使用基於雲端的解決方案,包括亞馬遜的 Elasticsearch 服務和 Elastic 雲 ( EC )
>英文字幕:有
https://softnshare.com/elasticsearch-7-and-elastic-stack/
elasticsearch設定 在 コバにゃんチャンネル Youtube 的最讚貼文
elasticsearch設定 在 大象中醫 Youtube 的最佳解答
elasticsearch設定 在 大象中醫 Youtube 的最讚貼文
elasticsearch設定 在 建置Elasticsearch + IK中文分詞+ 繁體支援設定檔by Docker 的推薦與評價
建置Elasticsearch + IK中文分詞+ 繁體支援設定檔by Docker 步驟Pull Docker Image & Run Container 使用包裝好的Docker Image ... ... <看更多>
elasticsearch設定 在 在CentOS 7 上安裝Elasticsearch 和Kibana - 他山教程 的推薦與評價
要執行Elasticsearch,計算機上需要Java Runtime Environment(JRE) 。Elasticsearch 需要Java 7 或更高版本,並建議使用 Oracle JDK version 1.8.0_73 ... ... <看更多>
elasticsearch設定 在 Elasticsearch+Kibana+Logstash環境安裝 - Pcion's Blog 的推薦與評價
elasticsearch 是一個分散式的儲存系統,屬於NoSQL資料庫的一種 ... 記憶體的使用量修改elasticsearch使用的記憶體,設定為主機的50%記憶體 ... ... <看更多>