(4) -- Jaeger, Prometheus, Kiali, GRAFANA使用指引

官方文檔:https://docs.openshift.com/container-platform/3.11/servicemesh-install/servicemesh-install.html#install_chapter_6

一、Jaeger

Jaeger是一個開源的分布式跟蹤系統(tǒng)。您可以使用jaeger來監(jiān)控和排查基于微服務(wù)的分布式系統(tǒng)的故障。使用jaeger,您可以執(zhí)行跟蹤組成應(yīng)用程序的各種微服務(wù)執(zhí)行請求的路徑。默認(rèn)情況下,jaeger是作為 Service Mesh 的一部分安裝的。

1.1 生成跟蹤并分析跟蹤數(shù)據(jù)

1.1.1 部署了bookinfo應(yīng)用程序后,通過訪問http://$gateway_url/productpage并刷新頁面幾次來生成一些訪問痕跡。

1.1.2 將jaeger的路徑設(shè)置到環(huán)境變量

  $ export JAEGER_URL=$(oc get route -n istio-system jaeger-query -o jsonpath='{.spec.host}')

1.1.3 從瀏覽器訪問jaeger

https://${JAEGER_URL}

1.1.4 在Jaeger儀表板的左側(cè)窗格中,從Service菜單中選擇“productpage”,然后單擊窗格底部的“Find Traces”按鈕。將顯示跟蹤列表,如下圖所示:

image.png

1.1.5 單擊列表中的某個跟蹤以打開該跟蹤的詳細(xì)視圖。如果單擊頂部(最新)跟蹤,你將看到與`/productpage相對應(yīng)的詳細(xì)信息。

image.png

上一圖中的跟蹤由幾個嵌套的span組成,每個span對應(yīng)于一個bookinfo服務(wù)調(diào)用,所有這些都是響應(yīng)/productpage請求而執(zhí)行的??傮w處理時間為2.62s,details service花費3.56ms,reviews service花費2.6s,ratings service花費5.32ms,對遠(yuǎn)程服務(wù)的每一個調(diào)用都由客戶端和服務(wù)端的span表示。例如,詳細(xì)信息客戶端范圍標(biāo)記為productpage details.myproject.svc.cluster.local:9080。嵌套在它下面的span,標(biāo)記為details details.myproject.svc.cluster.local:9080,對應(yīng)于請求的服務(wù)器處理。跟蹤還顯示對istio策略的調(diào)用,該策略反映了istio所做的授權(quán)檢查。

二、Prometheus

Prometheus是一個開源的服務(wù)監(jiān)控工具。Prometheus以指定的時間間隔從配置的目標(biāo)收集metrics,評估規(guī)則表達(dá)式,顯示結(jié)果,并在觀察到某些條件為真時觸發(fā)警報。Grafana或其他API Consumer被用于可視化展示收集到的數(shù)據(jù)。

2.1 查詢Metrics

2.1.1 驗證prometheus服務(wù)是否正在集群中運行。

$ oc get svc prometheus -n istio-system

NAME         CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
prometheus   10.59.241.54   <none>        9090/TCP   2m

2.1.2 通過訪問bookinfo應(yīng)用程序生成網(wǎng)絡(luò)流量:

$ curl -o /dev/null http://$GATEWAY_URL/productpage

2.1.3 將Prometheus訪問路徑寫入環(huán)境變量

 $ export PROMETHEUS_URL=$(oc get route -n istio-system prometheus -o jsonpath='{.spec.host}')

2.1.4 打開瀏覽器訪問http://${PROMETHEUS_URL}

image.png

2.1.5 在Expression字段中,輸入istio_request_duration_seconds_count,然后單擊Execute按鈕。將看到類似下圖:

image.png

2.1.6 你可以使用選擇器縮小查詢范圍。例如,istio_request_duration_seconds_count_destination_workload=“reviews-v2”僅顯示具有匹配destination_workload標(biāo)簽的計數(shù)器。有關(guān)使用查詢的更多信息,請參閱Prometheus文檔

2.1.7 要列出所有可用的Prometheus Metrics,請運行以下命令

 $ oc get prometheus -n istio-system -o jsonpath='{.items[*].spec.metrics[*].name}' requests_total request_duration_seconds request_bytes response_bytes tcp_sent_bytes_total tcp_received_bytes_total

請注意,當(dāng)在查詢中使用時,返回的度量名稱必須以istio_開頭,例如,requests_total是istio_requests_total。

三、Kiali

Kiali運行于Isito之上,用于可視化服務(wù)網(wǎng)格拓?fù)?,以提供對斷路器、請求速率等功能的可見性。Kiali提供了從Application到Service和Workload的不同層次的Service Mesh組件的可見性。Kiali實時提供了namespace的交互式圖形化界面。Kiali可以在多個層次(Application、versions、workloads)上顯示所選圖形節(jié)點或邊緣的上下文和圖表信息。

3.1 進(jìn)入Kiali的控制界面

3.1.1 訪問Kiali控制臺的路徑已經(jīng)存在。運行以下命令獲取路由和Kiali Url

$ oc get routes

3.1.2 可以看到這樣的結(jié)果:

NAME                   HOST/PORT                                                PATH      SERVICES               PORT              TERMINATION   WILDCARD
grafana                grafana-istio-system.127.0.0.1.nip.io                          grafana                http                            None
istio-ingress          istio-ingress-istio-system.127.0.0.1.nip.io                    istio-ingress          http                            None
istio-ingressgateway   istio-ingressgateway-istio-system.127.0.0.1.nip.io             istio-ingressgateway   http                            None
jaeger-query           jaeger-query-istio-system.127.0.0.1.nip.io                     jaeger-query           jaeger-query      edge          None
kiali                  kiali-istio-system.127.0.0.1.nip.io                            kiali                  <all>                           None
prometheus             prometheus-istio-system.127.0.0.1.nip.io                       prometheus             http-prometheus                 None
tracing                tracing-istio-system.127.0.0.1.nip.io                          tracing                tracing           edge          None

3.1.3 在瀏覽器訪問Kiali https://${KIALI_URL}

image.png

使用在Custom Resource文件配置的賬戶密碼登陸

3.2 OVERVIEW PAGE

登錄后,會看到OVERVIEW PAGE,該頁面提供了系統(tǒng)中各個namespace的運行狀況的快照。

image.png

3.3 GRAPH PAGE

3.3.1 單擊左側(cè)導(dǎo)航中的“Graph”。Graph page顯示一個包含所有微服務(wù)的圖形,這些微服務(wù)由通過它們之間的請求連接。在這個頁面上,您可以看到服務(wù)是如何交互的。

image.png

3.3.2 從namespace菜單中,選擇BookInfo?,F(xiàn)在,圖表只顯示BookInfo應(yīng)用程序中的服務(wù)。

3.3.3 單擊左下角的“Legend”。Kiali顯示一個包含圖形圖例的窗口。

image.png

3.3.4 將鼠標(biāo)懸停在ProductPage節(jié)點上,將高亮顯示該節(jié)點的傳入和傳出流量。

3.3.5 單擊ProductPage節(jié)點,頁面右側(cè)顯示ProductPage的詳細(xì)信息。

3.4 SERVICES PAGE

3.4.1 單擊左側(cè)導(dǎo)航中的“Services”鏈接。在Services Page上,您可以查看集群中運行的所有Service的列表以及有關(guān)這些Service的其他信息,例如運行狀況和請求錯誤率。

3.4.2 將鼠標(biāo)hover在任何服務(wù)的運行狀況圖標(biāo)上,以查看有關(guān)該服務(wù)的運行狀況信息。當(dāng)服務(wù)處于聯(lián)機狀態(tài)并且響應(yīng)請求時沒有錯誤,則認(rèn)為它是健康的。

image.png

3.4.3 單擊“Reviews ”服務(wù)查看其詳細(xì)信息。請注意,此服務(wù)有三個不同的版本。

image.png

3.4.4 單擊其中一個服務(wù)的名稱以查看有關(guān)該服務(wù)的其他詳細(xì)信息。

3.5 ISTIO CONFIG PAGE

3.5.1 單擊左側(cè)導(dǎo)航中的istio config鏈接。在此頁面上,您可以看到當(dāng)前運行的所有配置,如Circuit Breakers, Destination Rules, Fault Injection, Gateways, Routes, Route Rules, and Virtual Services.

image.png

3.5.2 單擊其中一個配置以查看其他附加信息。

image.png

3.6 DISTRIBUTED TRACING PAGE

單擊左側(cè)導(dǎo)航中的Distributed Tracing鏈接。在這個頁面上,您可以看到Jaeger提供的跟蹤數(shù)據(jù)。

4 Grafana使用指引

Grafana是一個開源工具,用于創(chuàng)建監(jiān)控、metrics分析、并提供可視化的dashboard。您可以使用grafana查詢metrics、可視化metrics、告警,無論它們存儲在graphite、elasticsearch、opentsdb、prometheus或infloxdb。Istio通過Prometheus和Grafana進(jìn)行監(jiān)控。

本節(jié)演示如何設(shè)置和使用Istio儀表板來監(jiān)視Service Mesh的流量。你需要安裝grafana istio插件,并使用基于Web的界面查看Service Mesh流量數(shù)據(jù)。

4.1 進(jìn)入Grafana Dashboard

4.1.1 查詢并設(shè)置Granfa的route到環(huán)境變量

$ export GRAFANA_URL=$(oc get route -n istio-system grafana -o jsonpath='{.spec.host}')

4.1.2 打開瀏覽器訪問Grafana, http://${GRAFANA_URL}

image.png

4.1.3 在左上角的菜單中,選擇istio mesh dashboard以查看istio mesh metrics。

image.png

4.1.4 通過訪問bookinfo應(yīng)用程序生成一些流量:

$ curl -o /dev/null http://$GATEWAY_URL/productpage

dashboard反映通過Service Mesh的流量,類似于下圖:

image.png

4.1.5 要查看Service的詳細(xì)指標(biāo),請單擊“Services”列中的服務(wù)名稱。dashboard類似于下圖:

image.png

請注意,TCP帶寬metrics是空的,因為BookInfo只使用基于HTTP的服務(wù)。儀表板還顯示客戶端workloads和服務(wù)端workloads的metrics。通過使用dashboard頂部的菜單,你可以根據(jù)客戶端和服務(wù)端workloads,切換到不同的服務(wù)或過濾metrics。

4.1.6 要切換到workloads dashboard,請單擊左上角菜單上的Isito Workload Dashboard??吹筋愃葡聢D:

image.png

此儀表板顯示客戶端(入站)和服務(wù)端(出站)的workload metrics。你可以切換到不同的workload ;要按入站或出站工作workload 篩選指標(biāo),請使用儀表板頂部的菜單。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容