idou老師教你學Istio :如何用istio實現監控和日志采集


大家都知道istio可以幫助我們實現灰度發布、流量監控、流量治理等功能。每一個功能都幫助我們在不同場景中實現不同的業務。那Istio是如何幫助我們實現監控和日志采集的呢?

這里我們依然以Bookinfo應用程序作為貫穿此任務的示例程序。首先在集群中安裝並部署Istio。

 

1  收集遙測數據

創建一個新的YAML文件,用來保存Istio將自動生成和收集的新度量標准和日志流的配置。如下圖所示:

通過命令$ kubectl apply -f new_telemetry.yaml推送剛剛配置的YAML文件。然后去請求應用程序來生成流量,例如在本用例中就可以訪問Bookinfo完成訪問。

接下來我們就可以驗證是否采集到了剛剛的請求數據。在Kubernetes環境中,通過執行以下命令為Prometheus設置端口轉發:

$ kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 &

通過Prometheus UI查看新指標的值。執行對istio_double_request_count度量值的查詢。Console選項卡中顯示的表 包含類似於以下內容的條目:

驗證是否已創建日志流並正在為請求填充日志流。在Kubernetes環境中,搜索istio-telemetry pod的日志,如下所示:

從打印的信息中,我們可以清楚的看到日志級別、生成時間、實例名稱、訪問組件名稱等等信息。

 

2  遙測配置

在上面的實踐中,我們已經完成了Istio收集數據並打印日志的一個過程。

那么Istio是如何做到的呢?其實我們已經給Istio做了配置,指示Mixer自動生成並上報服務網格中采集的metric信息和日志流。在這個配置中我們主要設置了mixer的三個功能:

  • 從Istio的屬性中生成實例信息,比如在我們上面的實踐中打印的metric和日志信息。

  • 創建出adapter適配器,可以幫助我們處理生成的實例。

  • 根據定義的規則向adapter發送實例信息。

 

3     metrics配置

配置metrics是為了指示Mixer將metric發送到Prometheus。它使用三個模塊來進行配置:實例配置、處理程序配置和規則配置。

metric配置的模塊定義了用於生成metric。此實例配置根據Envoy報告的屬性(由Mixer自身生成)告訴Mixer 如何為任何給定請求生成metric。

dimensions為每個實例指定一組維度。提供了根據查詢的不同需求和方向對metric據進行分片,聚合和分析的方法。例如,可能需要在對應用程序行為進行故障排除時僅考慮對特定目標服務的請求。

 

4  日志配置

日志配置指示Mixer將日志條目發送到stdout。它同樣使用三個模塊來進行配置:實例配置,處理程序 配置和規則配置。

logentry配置的部分定義了用於生成日志條目實例。此實例配置告訴Mixer 如何 根據Envoy報告的屬性為請求生成日志條目。

severity參數用於指示任何生成的日志級別 logentry。在此示例中,使用了參數值"warning"。此值將由logentry 處理程序映射到支持的日志記錄級別。

Timestamp參數提供所有日志條目的時間信息。在此示例中,時間request.time由Envoy 提供的屬性值提供。

variables參數允許操作員配置每個值中應包含的值logentry。一組表達式控制從Istio屬性和文字值到構成a的值的映射logentry。在此示例中,每個logentry實例都有一個名為latency使用屬性值填充的字段response.duration。如果沒有已知值response.duration,則該latency字段將設置為持續時間 0ms。

stdio配置定義了處理程序命名newhandler。處理程序spec配置stdio適配器代碼處理接收 logentry實例的方式。該severity_levels參數控制字段的logentry 值如何severity映射到支持的日志記錄級別。這里,值"warning"被映射到WARNING日志級別。該 outputAsJson參數指示適配器生成JSON格式的日志行。

rule配置定義一個新的規則命名newlogstdio。該規則指示Mixer將所有newlog.logentry實例發送到 newhandler.stdio處理程序。由於match參數設置為true,因此將對網格中的所有請求執行規則。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM