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

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

一、Jaeger

Jaeger是一个开源的分布式跟踪系统。您可以使用jaeger来监控和排查基于微服务的分布式系统的故障。使用jaeger,您可以执行跟踪组成应用程序的各种微服务执行请求的路径。默认情况下,jaeger是作为 Service Mesh 的一部分安装的。

1.1 生成跟踪并分析跟踪数据

1.1.1 部署了bookinfo应用程序后,通过访问http://$gateway_url/productpage并刷新页面几次来生成一些访问痕迹。

1.1.2 将jaeger的路径设置到环境变量

  $ 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仪表板的左侧窗格中,从Service菜单中选择“productpage”,然后单击窗格底部的“Find Traces”按钮。将显示跟踪列表,如下图所示:

image.png

1.1.5 单击列表中的某个跟踪以打开该跟踪的详细视图。如果单击顶部(最新)跟踪,你将看到与`/productpage相对应的详细信息。

image.png

上一图中的跟踪由几个嵌套的span组成,每个span对应于一个bookinfo服务调用,所有这些都是响应/productpage请求而执行的。总体处理时间为2.62s,details service花费3.56ms,reviews service花费2.6s,ratings service花费5.32ms,对远程服务的每一个调用都由客户端和服务端的span表示。例如,详细信息客户端范围标记为productpage details.myproject.svc.cluster.local:9080。嵌套在它下面的span,标记为details details.myproject.svc.cluster.local:9080,对应于请求的服务器处理。跟踪还显示对istio策略的调用,该策略反映了istio所做的授权检查。

二、Prometheus

Prometheus是一个开源的服务监控工具。Prometheus以指定的时间间隔从配置的目标收集metrics,评估规则表达式,显示结果,并在观察到某些条件为真时触发警报。Grafana或其他API Consumer被用于可视化展示收集到的数据。

2.1 查询Metrics

2.1.1 验证prometheus服务是否正在集群中运行。

$ 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应用程序生成网络流量:

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

2.1.3 将Prometheus访问路径写入环境变量

 $ 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标签的计数器。有关使用查询的更多信息,请参阅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

请注意,当在查询中使用时,返回的度量名称必须以istio_开头,例如,requests_total是istio_requests_total。

三、Kiali

Kiali运行于Isito之上,用于可视化服务网格拓扑,以提供对断路器、请求速率等功能的可见性。Kiali提供了从Application到Service和Workload的不同层次的Service Mesh组件的可见性。Kiali实时提供了namespace的交互式图形化界面。Kiali可以在多个层次(Application、versions、workloads)上显示所选图形节点或边缘的上下文和图表信息。

3.1 进入Kiali的控制界面

3.1.1 访问Kiali控制台的路径已经存在。运行以下命令获取路由和Kiali Url

$ oc get routes

3.1.2 可以看到这样的结果:

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,该页面提供了系统中各个namespace的运行状况的快照。

image.png

3.3 GRAPH PAGE

3.3.1 单击左侧导航中的“Graph”。Graph page显示一个包含所有微服务的图形,这些微服务由通过它们之间的请求连接。在这个页面上,您可以看到服务是如何交互的。

image.png

3.3.2 从namespace菜单中,选择BookInfo。现在,图表只显示BookInfo应用程序中的服务。

3.3.3 单击左下角的“Legend”。Kiali显示一个包含图形图例的窗口。

image.png

3.3.4 将鼠标悬停在ProductPage节点上,将高亮显示该节点的传入和传出流量。

3.3.5 单击ProductPage节点,页面右侧显示ProductPage的详细信息。

3.4 SERVICES PAGE

3.4.1 单击左侧导航中的“Services”链接。在Services Page上,您可以查看集群中运行的所有Service的列表以及有关这些Service的其他信息,例如运行状况和请求错误率。

3.4.2 将鼠标hover在任何服务的运行状况图标上,以查看有关该服务的运行状况信息。当服务处于联机状态并且响应请求时没有错误,则认为它是健康的。

image.png

3.4.3 单击“Reviews ”服务查看其详细信息。请注意,此服务有三个不同的版本。

image.png

3.4.4 单击其中一个服务的名称以查看有关该服务的其他详细信息。

3.5 ISTIO CONFIG PAGE

3.5.1 单击左侧导航中的istio config链接。在此页面上,您可以看到当前运行的所有配置,如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

单击左侧导航中的Distributed Tracing链接。在这个页面上,您可以看到Jaeger提供的跟踪数据。

4 Grafana使用指引

Grafana是一个开源工具,用于创建监控、metrics分析、并提供可视化的dashboard。您可以使用grafana查询metrics、可视化metrics、告警,无论它们存储在graphite、elasticsearch、opentsdb、prometheus或infloxdb。Istio通过Prometheus和Grafana进行监控。

本节演示如何设置和使用Istio仪表板来监视Service Mesh的流量。你需要安装grafana istio插件,并使用基于Web的界面查看Service Mesh流量数据。

4.1 进入Grafana Dashboard

4.1.1 查询并设置Granfa的route到环境变量

$ 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应用程序生成一些流量:

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

dashboard反映通过Service Mesh的流量,类似于下图:

image.png

4.1.5 要查看Service的详细指标,请单击“Services”列中的服务名称。dashboard类似于下图:

image.png

请注意,TCP带宽metrics是空的,因为BookInfo只使用基于HTTP的服务。仪表板还显示客户端workloads和服务端workloads的metrics。通过使用dashboard顶部的菜单,你可以根据客户端和服务端workloads,切换到不同的服务或过滤metrics。

4.1.6 要切换到workloads dashboard,请单击左上角菜单上的Isito Workload Dashboard。看到类似下图:

image.png

此仪表板显示客户端(入站)和服务端(出站)的workload metrics。你可以切换到不同的workload ;要按入站或出站工作workload 筛选指标,请使用仪表板顶部的菜单。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容

  • [TOC] Istio采集指标prometheus+grafana方案 Istio的prometheus支持 pr...
    AllenWu阅读 7,823评论 0 5
  • Service Mesh新秀,初出茅庐便声势浩荡,前有Google,IBM和Lyft倾情奉献,后有业界大佬俯首膜拜...
    优云数智阅读 3,959评论 2 31
  • 看完乔治奥威尔的《动物农场》。真的是非常值得深思,但深思后又会有一种我们是多么无力的感觉。像一本寓言书一样去勾...
    姗姗来驰阅读 766评论 1 1
  • 市面上关于方法论的书籍很多。有广撒鸡汤的,只要心里充满力量,排除万难,还有什么问题是不能解决的呢?有提供「兵器谱」...
    成不熟阅读 176评论 0 0
  • 清晨起床,看到夜里群友酒醉后依然在谈写作,很是感动。不是发自内心的热爱,怎会如此急切的发问——我有写的那么烂吗...
    思考的蓝阅读 231评论 0 1