如何配置Istio、Prometheus和Grafana进行监控

使用Prometheus進行Istio可觀測性介紹

Istio服務網格通過使用邊車代理將網絡從應用層抽象出來。您可以利用Istio在整個基礎設施中實現安全和先進的網絡策略。

但Istio的另一個重要特性是可觀測性。您可以使用Istio來觀察基礎設施中所有微服務的性能和行為(見下圖)。大型組織中的網站可靠性工程師(SREs)的主要職責之一是監控其應用程序的黃金指標,如CPU利用率、內存利用率、延遲和吞吐量。

在本文中,我們將討論SREs如何從集成三個開源軟件——Istio、Prometheus和Grafana中受益。雖然Istio是最著名的服務軟件,Prometheus是最廣泛使用的監控軟件,Grafana是最著名的可視化工具。

注意:步驟已針對Istio 1.17.X進行測試

觀看Istio、Prometheus和Grafana配置視頻

如果您想通過視頻跟隨步驟,請觀看視頻:

步驟1:前往Istio附加組件並應用Prometheus和Grafana YAML文件

首先,使用命令進入Istio目錄中的附加組件文件夾。由於我使用的是1.17.1版本,對我來說路徑是istio-1.17.1/samples/addons

您會注意到,Istio 已經提供了一些 YAML 文件來配置 Grafana、Prometheus、Jaeger、Kiali 等。您可以使用以下命令來配置 Prometheus:

Shell

 

kubectl apply -f prometheus.yaml
Shell

 

kubectl apply -f grafana.yaml

請注意,這些附加的 YAML 文件默認應用於 istio-system 命名空間。


步驟 2:部署新服務並端口轉發 Istio 入口網關

為了實驗工作模型,我們將在 Istio 啟用的命名空間中部署 httpbin 服務。我們將創建一個 Istio 入口網關 對象,以從公共接收服務的流量。

我們還將端口轉發 Istio 入口網關到特定端口 – 7777。


您應該在 localhost:7777 看到以下屏幕


步驟 3:打開 Prometheus 和 Grafana 儀表板

您可以使用以下命令打開 Prometheus 儀表板。

Shell

 

istioctl dashboard prometheus
Shell

 

istioctl dashboard grafana

Grafana 和 Prometheus 都將在 localhost 上打開。


步驟 4:從 Postman 發送 HTTP 請求

我們將看到在有流量負載時,httpbin 服務如何消耗 CPU 或內存。我們將從 Postman 應用程序向 localhost:7777 發送一些 GETPOST 請求。


一旦您對httpbin服務發送多次GETPOST請求,將會使用資源,我們可以在Grafana中看到這些資源的使用情況。但首先,我們需要在Prometheus和Grafana中配置httpbin服務的指標。

步驟5:在Prometheus中配置指標

您可以選擇與任何Kubernetes資源相關的一系列指標,例如API服務器、應用程序、工作負載、envoy等。我們將選擇container_memory_working_set_bytes 指標進行配置。

在Prometheus應用程序中,我們將選擇要刮取指標的命名空間,使用以下搜索條件:container_memory_working_set_bytes { namespace= “istio-telemetry”} (istio-telemetry是我們啟用Istio的命名空間名稱,其中httpbin服務已部署)

請注意,僅運行此操作,我們可以獲取命名空間的記憶體。由於我們希望分析我們的pod的記憶體使用情況,我們可以通過將每個pod的記憶體使用量相加來計算由pod分組的總記憶體消耗。以下查詢將幫助我們獲得所需的結果:sum(container_memory_working_set_bytes{namespace=”istio-telemetry”}) by (pod)


注意:Prometheus提供了大量靈活性來過濾、切片和切塊指標數據。本文的核心思想是展示Istio發射並將指標發送到Prometheus進行收集的能力

步驟6:在Grafana中配置Istio指標圖表

現在,您只需在Prometheus中使用查詢sum(container_memory_working_set_bytes{namespace="istio-telemetry"}) by (pod)並繪製時間圖表。您只需在Grafana中創建一個新儀表板,將查詢粘貼到指標瀏覽器中。Grafana將繪製一個時間序列圖表。您可以根據需要編輯圖表,添加適當的名稱、圖例和標題,以便與Ops團隊的其他利益相關者共享。


有多種方法可以調整和自定義數據,並在Grafana中顯示Prometheus指標。您可以根據企業需求選擇進行所有自定義。我在視頻中做了一些實驗,歡迎查看。

結論

Istio服務網格在提供整個基礎設施的全面可觀察性方面極為強大。在本文中,我們僅提供了一個使用Istio、Prometheus和Grafana進行指標抓取和可視化的簡單用例。您可以使用Istio進行日誌記錄和追蹤,以及實時流量分析;我們將在後續博客中涵蓋這些主題。

Source:
https://dzone.com/articles/how-to-configure-istio-prometheus-and-grafana-for-monitoring