博客/社区

将应用程序日志转换为度量和Istio Grafana云

2022年2月11日 6分钟

安东尼奥Berben现场工程师工作solo.ioGloo网(Istio)Gloo边缘(代表)。他是个Kubernetes爱好者,他最喜欢的名言:“我可以去任何地方,只要是前进”大卫•利文斯通。你可以找到和安东尼奥推特

金正日Uyttebrouck是一位有经验的领导人有良好记录的处理成功的团队在专业和个人生活。他是个DevOps爱好者在鲁汶,比利时,喜欢学习新技术。在空闲时间他为短距离铁人三项训练。

你真的知道你的客户正在寻找什么吗?

发现新的业务机会的方法是分析您的系统,收集你真正需要的,并通过可视化综合图!

日志跟踪是一个伟大的开始,因为他们通常包含有用的信息在你的客户的利益。你只需要改变他们。

这篇文章将向您展示如何将原始数据从Istio访问日志收集Promtail到可视化通过有价值的指标Grafana云

的场景

你的电子商务平台销售不同双袜子。客户可以过滤袜子目录根据他们的个人利益。你想找出一双袜子最过滤的“正式”或“极客”。

体系结构是这样的:

实际设置!

先决条件:

  • Kubernetes集群——如。
  • 1.12.1 Istioctl(本例中使用版本)
  • Grafana云免费帐户

首先,让我们设置Grafana云栈:

  • 创建一个免费Grafana云账户如果你不已经有一个了。
  • 注册与现有的凭证(Github,谷歌等),创建您的帐户,并获得自己的堆栈Grafana云门户。
  • 您还需要创建一个Grafana云API密匙指标推动特权!
  • 旁边点击“发送指标”普罗米修斯Grafana云的普罗米修斯配置页面导航。
  • 滚动到找到密码/ API的关键部分。
  • 点击蓝色文字”产生了。“在新的窗口中,确保选择“MetricsPublisher”从列表的下拉作用在创建你的API密钥。
  • 重要提示:Grafana云的普罗米修斯配置页面还包含以下要求信息能够给Grafana普罗米修斯度量云:

    • 远程写端点
    • 用户名/实例ID
  • 导航回Grafana云门户,点击“发送日志”洛基旁边。

在“用Grafana日志”页面上,滚动到找到Grafana数据源设置。您将需要部署Promtail时用户价值。

现在,在Kubernetes集群上,安装舵存储库。

执掌回购添加grafana https://grafana.github。io / helm-charts执掌回购添加bitnami这样https://charts.bitnami.com/bitnami执掌回购更新

安装Istio算子。

istioctl运营商init kubectl应用- f - < < EOF apiVersion: install.istio。io / v1alpha1: IstioOperator元数据:名称:istio-operator名称空间:istio-system规范:简介:默认meshConfig: accessLogFile: /dev/stdout accessLogFormat: | accesslog [% START_TIME %] " %点播(方法):% %点播(X-ENVOY-ORIGINAL-PATH ?:路径)%”EOF

等到Istio启动并运行。

安装袜店应用程序。你可以阅读更多关于应用程序设计在这里

kubectl创建ns袜店kubectl标签名称空间袜店istio-injection =启用——覆盖kubectl https://raw.githubusercontent.com/microservices-demo/microservices-demo/master/deploy/kubernetes/complete-demo.yaml - f - n袜店适用

验证所有豆荚Istio注入。(每个microservice pod应该显示一个额外的容器是Istio双轮马车)。

kubectl豆荚- n袜店

部署一个Istio网关和虚拟服务。

kubectl应用- f - < < EOF apiVersion: networking.istio。io / v1alpha3:网关元数据:名称:sock-gateway名称空间:袜店规范:选择器:istio: ingressgateway服务器:-端口:号码:80姓名:http协议:http主机:-“*”——apiVersion: networking.istio。io / v1alpha3: VirtualService元数据:名称:袜子名称空间:袜店规范:主机:——“*”网关:——sock-gateway http: -匹配:- uri:前缀:“/”路线:-目的地:主持人:front-end.sock-shop.svc.cluster。本地端口:号码:80 EOF

打开一个隧道Istio进入网关(=服务网格入口点)应用程序访问袜店。

kubectl左前svc / istio-ingressgateway - n istio-system 8080:80

袜店应用程序现在可以在http://localhost: 8080

安装普罗米修斯remote_write配置。

所需的细节中可以找到Grafana云的普罗米修斯度量文档(参见先决条件部分)。

出口出口GC_API_KEY GC_PROMETHEUS_USERNAME = < my-grafana-cloud-prometheus-username > = < my-grafana-cloud-api-key >出口REMOTE_WRITE_ENDPOINT = < my-grafana-cloud-remote-write-endpoint > kubectl创建ns记录kubectl创建秘密通用kubepromsecret \——文字=用户名= $ {GC_PROMETHEUS_USERNAME} \密码——文字= = $ {GC_API_KEY} \ n日志执掌升级——安装普罗米修斯- n日志bitnami这样/ kube-prometheus版本6.6.0 - f - < < EOF普罗米修斯:remoteWrite: - url: $ {REMOTE_WRITE_ENDPOINT} basicAuth:用户名:名字:kubepromsecret关键:用户名密码:名称:kubepromsecret关键:密码EOF

安装Promtaildaemonset。

出口出口GC_API_KEY GC_LOKI_USER = < my-grafana-cloud-loki-user > = < my-grafana-cloud-api-key >出口GC_LOKI_URL = < my-grafana-cloud-loki-url > kubectl创建秘密通用kubelokisecret \——文字=用户名= $ {GC_LOKI_USER} \密码——文字= = $ {GC_API_KEY} \ n日志执掌升级——安装日志grafana promtail - n / promtail版本3.8.1 - f - < < EOF extraArgs:配置。expand-env = true extraEnvFrom: - secretRef:名称:kubelokisecret配置:logLevel:调试serverPort: 9080 lokiAddress:“https:// $ {username}:{密码}@ {GC_LOKI_URL} /美元洛基/ api / v1 /推”片段:pipelineStages: -匹配:选择器:“{应用=“istio-ingressgateway”}”阶段:#样品:accesslog xxxx-xx-xxxxx xxxxxxxxxx):”得到/ category.html吗?标签=正式“#样品:accesslog xxxx-xx-xxxxx xxxxxxxxxx):“GET / category.html吗?标签=极客”-正则表达式:表达式:^。* \ / category.html \ ?标签= (? P <过滤器>极客)"- regex: expression: ^.*GET \/category.html\?tags=(?Pformal)" - labels: filter: - metrics: filter: prefix: 'analytics_' type: Counter description: "Total count of filtered results" source: filter config: action: inc serviceMonitor: enabled: true namespaceSelector: {} annotations: {} labels: {} interval: 10s scrapeTimeout: 5s EOF

左前普罗米修斯和Promtail。

kubectl - n日志左前svc / prometheus-kube-prometheus-prometheus 9090:9090 kubectl - n日志左前ds / promtail 9080:9080

Grafana仪表板

让我们看一看一些双袜子,浏览网站上的目录在过滤“正式的”或“极客”(这将创建所需的流量)。

在您的浏览器中打开http://localhost: 9080 /指标咨询Promtail指标。搜索analytics_filter相关条目。

http://localhost: 9090普罗米修斯将可视化指标图中部分在执行analytics_filter。这些条目是转发到Grafana云。

注:创建设置的另一种方法在这篇文章中使用Grafana代理包普罗米修斯发现,细胞膜和remote_write功能没有当地TSDB Promtail也捆绑包。检查Grafana剂快速入门指南

让我们咨询Grafana云上的数据!Grafana云门户,您可以登录Grafana开始使用它通过点击”登录。“Grafana一般/主页上,你可以创建一个新的仪表板可视化生成的指标。

让我们添加一个面板到新创建的仪表板通过点击“添加一个新的面板。”

接下来,定义一个查询。从“数据源”下拉菜单中选择grafanacloud——< your-grafana-cloud-stack-name >电普罗米修斯作为数据源。

几乎完成了。定义您的查询,并可能提供一个标题所示的面板。在这里您将使用:

sum(率(analytics_filter[30])),(过滤器)

点击“应用”(页面的右上角)。在这里你去!

您可以添加另一个面板形象化日志。选择grafanacloud——< your-grafana-cloud-stack-name >日志洛基作为数据源。选择表或查询日志可视化和定义例如{过滤器=“极客”}。

最终的想法

所以最终的结果让你了解“正式”和“极客”的袜子都是趋势。这些指标的可视化肯定会帮助你更好地了解客户正在寻找和引导你走向更好的业务决策,产生更多的收入。

如何将应用程序日志和Gloo边缘和Grafana成有用的指标吗用例是一个真正的故事Promtail杠杆是哪里Gloo边缘找到问题的组件:ExtAuth。指标用于信号和警报错误配置。

知道这个方法,您可以利用相同的设置让指标从你的日志,而不仅仅是获得某种形式的分析,但对DevOps来更好地理解你的系统是如何工作的目的。


在这一页上
滚动的更多