暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Grafana全家桶(七)日志平台Loki的部署

栋总侃技术 2023-10-25
228

在前面的文章向大家介绍了使用Grafana生态搭建链路跟踪、日志平台,本节将会带来Mimir的介绍,以及通过部署Mimir搭建监控平台。

Mimir简介

Mimir是一个时序数据库,来对指标数据做长期存储。解决了Prometheus天然欠缺的水平扩展、多租户问题。

其实解决Prometheus的长期存储、水平扩展、多租户问题的时序数据库解决方案已经有不少了,例如Thanos、Cortex、VictoriaMetrics。而Mimir有何优势呢?

  1. Mimir支持高基数的 metrics 压缩和查询,Thanos在处理高基数的 metrics 上不太理想。

  2. Mimir支持多租户,也支持跨多租户间查询;VictoriaMetrics也是支持多租户的,但是VictoriaMetrics不支持跨多租户查询。

  3. Mimir的部署简单,仅依赖存储。

在VictoriaMetrics官网中有测试用例对Prometheus、Cotex的资源占用、性能对比。VictoriaMetrics比Prometheus、Cotex、Thanos在内存占用、相同指标的空间占用上少7倍。VictoriaMetrics的数据摄取和数据查询相较于InfluxDB提升了70倍。

这些数据上说明VictoriaMetrics还是很香的,而VictoriaMetrics与Mimir的对比有待进一步验证。我们生产环境使用的就是VictoriaMetrics作为时序数据的存储。

Mimir组件

Mimir指标写入的组件与Tempo、Loki均类似,由distributor介绍指标,然后传递给Ingester与存储交互,完成持久化存储。

Mimir指标查询的过程与Tempo、Loki处理类似,query-Frontend接收到查询请求后,会拆分成若干个小的查询交给Querier并发的执行。

Mimir部署

在Mimir的代码仓库提供了Chart部署包。在Chart中如果Minio.enabled设置为false,需要配置minio.rootUser、minio.rootPassword作为账号密码,同时将mimir.config中

endpoint: {{ .Release.Name }}-minio.{{ .Release.Namespace }}.svc:9000

全局替换为S3存储的地址(有4处)。同时,还需要手动创建Bucket: xxx-ruler、xxx-tsdb,如果默认是Minio安装,则Chart中会运行一个Job自动创建Bucket。

通过Helm命令完成部署后,等待所有的Pod为Running状态,完成部署。

Grafana Agent配置

我们仍然使用在前面章节介绍的Go Demo接入监控,使用代码集成

github.com/prometheus/client_golang/prometheus/promhttp

同时在代码Gin框架中注册handler即可完成PrometheusSDK的集成,将会通过/metrics接口暴露指标:

r.GET("/metrics", gin.WrapH(promhttp.Handler()))

在前面接入Trace示例的Grafana Agent增加以下配置:

  • 由Grafana Agent抓取server1的指标

  • 并将指标remote write至Mimir做持久化存储

prometheus.scrape "custom_targets" {
  targets = [
    {
      __scheme__  = "http",
      __address__      = "server1.go-optl-demo.svc.cluster.local:8080",
      __metrics_path__ = "/metrics",
    },
  ]

  forward_to = [prometheus.remote_write.default.receiver]
}

prometheus.remote_write "default" {
  endpoint {
    url = "http://gateway.mimir-demo:8080/prometheus/api/v1/push"
  }
}

Grafana 配置Mimir数据源查看监控指标

在Grafana的数据源管理页面选择新增Prometheus类型数据源,配置mimir的查询地址:

完成配置后即可通过该数据源查询采集的监控指标:

到这里我们我们完成了Grafana生态的Agent、Tempo、Loki、Mimir部署,能够在Grafana一个平台上整合Trace、Logs、Metrics的查看。

Metrics和Trace

Metrics和Logs

Logs和Trace


我们也可以根据需要将这些视图添加至一个dashboard,实现在一个大盘中同时查看一个服务或者一组服务的的Trace、Logs、Metrics: 

往期回顾

Grafana全家桶(六)日志平台Loki的部署

Grafana全家桶(五)日志系统Loki的介绍

Grafana全家桶(四)链路跟踪Demo-Go代码集成opentelemetry SDK

Grafana全家桶(三)使用Grafana Agent与Tempo实现链路追踪完整demo

Grafana全家桶(二)链路跟踪Grafana Tempo的介绍和部署

Grafana全家桶(一)Grafana Labs产品介绍



文章转载自栋总侃技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论