Istio使用【鏈路監控】

本文使用istio版本:1.4.2

開啓鏈路監控

....
#
# addon jaeger tracing configuration
#
tracing:
  enabled: true
....

可以看出。istio鏈路監控集成使用的是Jaeger,Jaeger是什麼,參考這篇

查看是否啓動成功

[root@k8s-master istio-1.4.2]# kubectl get po -n istio-system --show-labels | grep jaeger
istio-tracing-795c9c64c4-224wm            1/1     Running     0          47h   app=jaeger,chart=tracing,heritage=Tiller,pod-template-hash=795c9c64c4,release=istio

訪問jaeger UI

[root@k8s-master istio-1.4.2]# kubectl get svc -n istio-system | grep jaeger
jaeger-agent             ClusterIP      None             <none>        5775/UDP,6831/UDP,6832/UDP                                                                                                                   47h
jaeger-collector         ClusterIP      10.110.206.207   <none>        14267/TCP,14268/TCP,14250/TCP                                                                                                                47h
jaeger-query             NodePort       10.101.53.38     <none>        16686:31944/TCP 

如上所示,默認情況下,jaeger-query類型也是ClusterIP,爲了便於訪問,直接修改成NodePort類型,

kubectl edit svc jaeger-query  -n istio-system

然後訪問IP:31944即可。

UI預覽

 

採集頻率控制

如果所有的請求都採集監控,不管出於性能考慮還是資源考慮,都是不實際的。

pilot組件中PILOT_TRACE_SAMPLING環境變量用於控制採集率,默認爲1(0~100),測試的時候可以改大點便於分析:

 kubectl -n istio-system get deploy istio-pilot -oyaml | grep PILOT_TRACE_SAMPLING -A5

--
        - name: PILOT_TRACE_SAMPLING
          value: "1"
        - name: PILOT_ENABLE_PROTOCOL_SNIFFING_FOR_OUTBOUND
          value: "true"
        - name: PILOT_ENABLE_PROTOCOL_SNIFFING_FOR_INBOUND
          value: "false"
---

也可以在安裝前,設置 pilot.traceSampling,默認爲1.配置文件目錄:install\kubernetes\helm\istio\charts\pilot

監控數據採集存儲

參考控制檯kiali配置,其中配置了Prometheus和grafana。參考 Istio鏈路監控和監控可視化

  • prometheus作爲基礎數據採集和存儲方式,可以通過PromQL查詢指標。
  • grafana可定製化報表展示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章