Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kubernetes 日志解决方案 Grafana Loki 「Helm 部署案例」

Kubernetes 日志解决方案 Grafana Loki 「Helm 部署案例」

原创
作者头像
sir5kong
修改于 2024-03-27 13:21:34
修改于 2024-03-27 13:21:34
6.2K12
举报

Loki 是一款易于水平扩展、高可用的日志聚合系统。

对比其他日志聚合系统,Loki 具有的优势:

  • 不对日志进行全文索引,通过存储压缩的非结构化日志并且仅索引元数据,Loki 的操作更简单且运行成本更低。
  • 使用与 Prometheus 相同的标签对日志流进行索引和分组。
  • Kubernetes 完美结合,存储 Pod 日志,Pod 标签等元数据会自动抓取并建立索引。

环境准备

  • Kubernetes 1.22+
  • Helm 3.3+
  • S3 对象存储 Bucket、访问密钥及授权

我们使用 Grafana 官方提供的 Helm Charts 部署一套 Loki 日志系统,包括以下组件:

  • 微服务架构的 Loki 后端服务
  • Promtail 日志采集客户端
  • Grafana 可视化前端工具

对象存储

兼容 AWS S3 API 的对象存储都可以,例如:

  • AWS S3
  • 腾讯云 COS
  • 阿里云 OSS
  • MinIO

Loki 与存储之间需要有大带宽,不推荐跨云跨区域部署。

需要具有以下权限的访问密钥:

  • ListBucket
  • PutObject
  • GetObject
  • DeleteObject

不同云平台授权策略有差异,如果遇到权限不足,请改成整个 Bucket 完整读写权限。

获取 Helm 仓库

代码语言:shell
AI代码解释
复制
## 添加加速镜像仓库
helm repo add grafana "https://helm-charts.itboon.top/grafana" --force-update
helm repo update grafana

## 添加官方仓库
# helm repo add grafana "https://grafana.github.io/helm-charts" --force-update
# helm repo update grafana

加速镜像仓库 完全从官方克隆

Helm 部署

Loki Values

代码语言:yaml
AI代码解释
复制
## values-loki.yaml


fullnameOverride: loki

rbac:
  namespaced: true

loki:
  auth_enabled: false
  image:
    # registry: docker.io
    # repository: grafana/loki
    tag: 2.9.6

  readinessProbe:
    initialDelaySeconds: 10
    periodSeconds: 5
    timeoutSeconds: 1

  ## loki.config
  commonConfig:
    ## set to 1, otherwise more replicas are needed to connect to grafana
    replication_factor: 1
  storage:
    bucketNames:
      chunks: Your_Loki_Bucket
      ruler: Your_Loki_Bucket
      admin: Your_Loki_Bucket
    type: s3
    s3:
      ## s3 access, AWS S3 或者兼容 S3 API 的对象存储都可以
      endpoint: cos.ap-guangzhou.myqcloud.com
      accessKeyId: Your_Access_Key_ID
      secretAccessKey: Your_Secret_Access_Key

  compactor:
    working_directory: /var/loki/retention
    shared_store: s3
    compaction_interval: 10m
    retention_enabled: true
    retention_delete_delay: 2h
    retention_delete_worker_count: 150

  ingester:
    max_transfer_retries: 0
    # max_chunk_age: 2h    # default = 2h
    # chunk_idle_period: 30m    # default = 30m
    # chunk_target_size: 1572864
    chunk_encoding: zstd
    autoforget_unhealthy: true
  storage_config:
    tsdb_shipper:
      active_index_directory: /var/loki/tsdb-index
      cache_location: /var/loki/tsdb-cache
      cache_ttl: 72h
      shared_store: s3
  schemaConfig:
    configs:
      - from: 2024-01-01
        store: tsdb
        object_store: s3
        schema: v12
        index:
          prefix: loki_tsdb_index_
          period: 24h
  limits_config:
    ingestion_rate_strategy: local    # default = "global"
    # retention_period: 240h
    ingestion_rate_mb: 20    # default = 4
    ingestion_burst_size_mb: 100    # default = 6
    per_stream_rate_limit: 6MB    # default = 3MB
    per_stream_rate_limit_burst: 50MB    # default = 15MB
    max_concurrent_tail_requests: 20
    max_cache_freshness_per_query: 10m
    max_query_length: 72h
    max_line_size: 256kb
    max_line_size_truncate: true
    ## [max_streams_matchers_per_query: <int> | default = 1000]
    ## [max_query_bytes_read: <int> | default = 0B]
    shard_streams:
      enabled: true
      desired_rate: 2097152    #2MiB
  
  server:
    grpc_server_max_recv_msg_size: 32000100    # default = 4194304
    grpc_server_max_send_msg_size: 32000100    # default = 4194304


test:
  enabled: false

monitoring:
  lokiCanary:
    enabled: false
  dashboards:
    enabled: false
  selfMonitoring:
    enabled: false
    grafanaAgent:
      installOperator: false
  serviceMonitor:
    enabled: false

#sidecar:
#  resources:
#    limits:
#      cpu: 200m
#      memory: 500Mi
#    requests:
#      cpu: 10m
#      memory: 50Mi

gateway:
  replicas: 1
  #resources:
  #  limits:
  #    cpu: 1
  #    memory: 2Gi
  #  requests:
  #    cpu: 50m
  #    memory: 200Mi
  #service:
  #  type: LoadBalancer

backend:
  replicas: 1
  persistence:
    size: 20Gi
    enableStatefulSetAutoDeletePVC: false
    #storageClass: null
  #resources:
  #  limits:
  #    cpu: 2
  #    memory: 8Gi
  #  requests:
  #    cpu: 100m
  #    memory: 500Mi


write:
  replicas: 1
  persistence:
    size: 20Gi
    #storageClass: null
  #resources:
  #  limits:
  #    cpu: 2
  #    memory: 8Gi
  #  requests:
  #    cpu: 500m
  #    memory: 4Gi

read:
  replicas: 3
  resources:
    limits:
      cpu: 1
      memory: 2Gi
    requests:
      cpu: 50m
      memory: 100Mi
  autoscaling:
    enabled: true
    minReplicas: 3
    maxReplicas: 15
    targetCPUUtilizationPercentage: 90

部署 Loki

  • 将上面的 Values 保存到 values-loki.yaml 文件。
  • 正确修改 loki.storage 相关字段: endpoint, bucketnames, access_key_id, secret_access_key

正确的 endpoint 字段不含 Bucket 名称

代码语言:shell
AI代码解释
复制
## 部署 Loki
helm upgrade --install loki  \
  --namespace loki \
  --create-namespace \
  -f values-loki.yaml \
  --version 5.47.1 \
  grafana/loki

Promtail Values

代码语言:yaml
AI代码解释
复制
## values-promtail.yaml


image:
  tag: 2.9.6

#resources:
#  limits:
#    cpu: 2
#    memory: 2Gi
#  requests:
#    cpu: 100m
#    memory: 512Mi

config:
  clients:
    - url: http://loki-gateway/loki/api/v1/push
  snippets:
    extraLimitsConfig: |
      max_line_size: 256kb
      max_line_size_truncate: true
      readline_rate_enabled: true
      readline_rate: 110000    # default = 10000
      readline_burst: 810000    # default = 10000
    pipelineStages:
      - cri: {}
      # - match:
      #     ## 过滤某些 namespace
      #     selector: '{namespace=~"Your_Namespace"}'
      #     action: drop
      # - match:
      #     ## 过滤某些 container
      #     selector: '{container=~"Your_Container_Name"}'
      #     action: drop
      - json:
          expressions:
            log: log
      - output:
          source: log
      - multiline:
          ## 跨行合并
          firstline: '^\S'
          max_wait_time: 3s
          max_lines: 2000
      #- match:
      #    ## 匹配标签的日志将进行额外管道处理
      #    selector: '{container=~"java.*"}'
      #    stages:
      #    - multiline:
      #        firstline: '^[A-Z]{3,9} +\['
      #        max_wait_time: 3s
      #        max_lines: 2000
      #    - regex:
      #        expression: '^(?P<level>[A-Z]{3,9}) +\[.*'
      #        #source: log
      #    - labels:
      #        level:

部署 Promtail

将上面的 Values 保存到 values-promtail.yaml 文件。

代码语言:shell
AI代码解释
复制
## 部署 Promtail
helm upgrade --install promtail  \
  --namespace loki \
  --create-namespace \
  -f values-promtail.yaml \
  --version 6.15.5 \
  grafana/promtail

Grafana Values

代码语言:yaml
AI代码解释
复制
## values-grafana.yaml


datasources:
  datasources.yaml:
    apiVersion: 1
    datasources:
    - name: Loki
      type: loki
      url: http://loki-gateway
      access: proxy
      jsonData:
        maxLines: 500

# ingress:
#   enabled: true
#   ingressClassName: nginx
#   annotations: {}
#     # kubernetes.io/ingress.class: nginx
#     # kubernetes.io/tls-acme: "true"
#   hosts:
#     - grafana.example.com

resources:
  limits:
    cpu: 100m
    memory: 1Gi
  requests:
    cpu: 20m
    memory: 128Mi

部署 Grafana

将上面的 Values 保存到 values-grafana.yaml 文件。

代码语言:shell
AI代码解释
复制
## 部署 Grafana
helm upgrade --install grafana  \
  --namespace loki \
  --create-namespace \
  -f values-grafana.yaml \
  --version 7.3.7 \
  grafana/grafana

获取 Grafana 初始 admin 密码:

代码语言:shell
AI代码解释
复制
## 获取 Grafana 初始 admin 密码
kubectl get secret -n loki grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

Grafana 日志查询面板
Grafana 日志查询面板

部署优化

  • 数据压缩
  • 标签和索引
  • Querier HPA 扩容

上面的部署案例已经在数据压缩、索引、HPA 等方面进行优化了。

数据压缩

Loki 默认使用 gzip 压缩算法,但是 gzip 解压速度比较慢,推荐使用 zstd 压缩,两者的比较请参考 从 gzip 切换到 zstd

代码语言:yaml
AI代码解释
复制
loki:
  ingester:
    chunk_encoding: zstd

TSDB 索引

Loki v2.8 引入的 TSDB 比旧版本的索引方案具有更优的性能,请参考 官方文档

代码语言:yaml
AI代码解释
复制
loki:
  storage_config:
    tsdb_shipper:

增加吞吐量

代码语言:yaml
AI代码解释
复制
loki:
  limits_config:
    ingestion_rate_strategy: local    # default = "global"
    # retention_period: 240h
    ingestion_rate_mb: 20    # default = 4
    ingestion_burst_size_mb: 100    # default = 6
    per_stream_rate_limit: 6MB    # default = 3MB
    per_stream_rate_limit_burst: 50MB    # default = 15MB
    max_concurrent_tail_requests: 20
    max_cache_freshness_per_query: 10m
    max_query_length: 72h
    max_line_size: 256kb
    max_line_size_truncate: true
    ## [max_streams_matchers_per_query: <int> | default = 1000]
    ## [max_query_bytes_read: <int> | default = 0B]
    shard_streams:
      enabled: true
      desired_rate: 2097152    #2MiB
  
  server:
    grpc_server_max_recv_msg_size: 32000100    # default = 4194304
    grpc_server_max_send_msg_size: 32000100    # default = 4194304

自定义标签

假如日志格式是这样的:

代码语言:INFO
AI代码解释
复制
[INFO] Reloading
[INFO] plugin/reload: Running configuration SHA512 = 637429c29e6628b9c013e5f8bd5211d4564943dd9f2dd6eeb506a5a2993177f61da856d85e9ed3c8020ebde2b4abbc232f057d9ba5d9df8247d706893feb8754
[INFO] Reloading complete
[ERROR] plugin/errors: 2 cm-cn-central-00001.albatross.10086.cn. HTTPS: read tcp 10.4.63.250:47580->100.100.2.136:53: i/o timeout

在部署 Promtail 的时候可以提取日志级别作为标签:

代码语言:yaml
AI代码解释
复制
- match:
    ## 匹配容器名以 java 开头的容器
    selector: '{container=~"java.*"}'
    stages:
    - multiline:
        ## 跨行合并
        firstline: '^\[[A-Z]{3,9}\] '
        max_wait_time: 3s
        max_lines: 2000
    - regex:
        expression: '^\[(?P<level>[A-Z]{3,9})\] '
        #source: log
    - labels:
        level:

上面这个案例会提取每条日志从行首开始中括号里的大写字母并打上 level 标签,查询条件加上 level 标签可以显著提升查询效率。

自定义标签需要根据日志格式和内容进行设置,这里仅仅演示一下实现方法。

不要使用动态标签,关于动态标签并没有固定的标准。假如一个 Pod 一小时日志量有 100 万条,某个标签会产生超过 1 万个值,那这个标签肯定就属于动态标签。标签需要把日志分类打散,但是不能太散。

性能瓶颈

查询的语句的标签和时间区段决定了 Loki 需要从存储中取出并处理的数据量。如果这个数据量在 10GB 以下,那问题不大。如果达到百GB级别,那就存在性能问题了。

假如有一个 pod coredns-79f4544dbb-8ck2b, 一天产生超过 100GB 的日志(压缩前 100GB),我们一次性查询一天的日志数据,从中找出符合条件的内容。

  • 使用 pod 标签 {pod="coredns-79f4544dbb-8ck2b"} 查询一天的日志,Loki 一次处理 100GB 日志会比较慢。
  • 假如增加了 level 标签,INFO 90GB、WARN 9GB、ERROR 1GB,单独查询 ERROR 级别的日志 {pod="coredns-79f4544dbb-8ck2b",level="ERROR} 就很轻松了。

解决的办法就是合理设置标签,比如日志级别、功能模块、事件类型等。

查询语句优化

查询的语句的标签和时间区段决定了 Loki 需要处理的数据量,标签越具体查询效率越高,以下列举一些查询语句及评分:

  • 25 分: {namespace="kube-system"} |= "timeout" 时间区段最近 24 小时
  • 50 分: {namespace="kube-system",pod=~"coredns-.*"} |= "timeout" 时间区段最近 24 小时
  • 60 分: {pod="coredns-79f4544dbb-8ck2b"} |= "timeout" 时间区段最近 24 小时
  • 70 分: {pod="coredns-79f4544dbb-8ck2b"} |= "timeout" 时间区段最近 1 小时
  • 90 分: {pod="coredns-79f4544dbb-8ck2b",level="ERROR} |= "timeout" 时间区段最近 1 小时

网络带宽和存储IO

如果日志量比较大,建议 Kubernetes 节点选择 10G 以上的网络带宽,因为 Querier 可以分布到多个节点,所以节点网络带宽的压力可以稀释,带宽瓶颈会转移到后端存储。如果云平台对象存储的性能不能满足需求,可以考虑裸机部署 MinIO 存储。

查询性能存在瓶颈并不能掩盖 Loki 独特的优势,实际上微服务架构中的 Loki 异常坚固,哪怕多个大型查询并发造成堵塞,Loki 依然可以稳定地摄入新数据。

课后作业

  • 给日志增加自定义标签,提升查询效率。
  • 在 Loki 微服务架构中,查询日志时 Querier 需要消耗大量 CPU 和网络带宽,但它并不需要稳定的机器。可以把 querier 调度到廉价的 spot 节点,并尽可能均匀地分布到多台节点上,用较低的成本大幅度提升查询速度。
  • 加快 Querier HPA 扩容速度。

后续章节会完善上述内容,敬请期待。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
12 条评论
热度
最新
太优秀了,mack 一下
太优秀了,mack 一下
回复回复1举报
太棒了
太棒了
回复回复点赞举报
可能是pod网段问题,aws eks 用官方最新的chart,loki 分部署部署直接起不来,然后指定了memberlist的bind_addr之后能起来 结果Status: 500. Message: too many unhealthy instances in the ring 太糟心了
可能是pod网段问题,aws eks 用官方最新的chart,loki 分部署部署直接起不来,然后指定了memberlist的bind_addr之后能起来 结果Status: 500. Message: too many unhealthy instances in the ring 太糟心了
11点赞举报
文档已经更新到最新版本了(chart loki 都是最新版), 你重新部署试试。
文档已经更新到最新版本了(chart loki 都是最新版), 你重新部署试试。
回复回复点赞举报
Pod网断有要求吗?为啥我的是failed to create memberlist
Pod网断有要求吗?为啥我的是failed to create memberlist
22点赞举报
网段没有要求,pod 网络能够互通就可以,重点需要关注对象存储的权限和配置
网段没有要求,pod 网络能够互通就可以,重点需要关注对象存储的权限和配置
回复回复点赞举报
大佬可以加个微信吗? 方便请教一下问题
大佬可以加个微信吗? 方便请教一下问题
回复回复点赞举报
为什么我按照你的部署,最多只能看到1天的日志
为什么我按照你的部署,最多只能看到1天的日志
44点赞举报
storage_config: 对象存储相关参数需要改成你自己的,检查这块配置是否正确,可以查一下 ingester pod 是否有报错日志。 storage_config: aws: endpoint: cos.ap-guangzhou.myqcloud.com bucketnames: loki-logs-2308 access_key_id: Your_Access_Key_ID secret_access_key: Your_Secret_Access_Key
storage_config: 对象存储相关参数需要改成你自己的,检查这块配置是否正确,可以查一下 ingester pod 是否有报错日志。 storage_config: aws: endpoint: cos.ap-guangzhou.myqcloud.com bucketnames: loki-logs-2308 access_key_id: Your_Access_Key_ID secret_access_key: Your_Secret_Access_Key
回复回复点赞举报
连接cos 我都配置了,cos也生成了index 和 fake 文件,没有看到 ingester pod 报错信息,查了好几天了,也没找到原因
连接cos 我都配置了,cos也生成了index 和 fake 文件,没有看到 ingester pod 报错信息,查了好几天了,也没找到原因
回复回复点赞举报
查看全部4条回复
推荐阅读
编辑精选文章
换一批
Loki & Promtail 详解
Loki 是受 Prometheus 启发的水平可扩展、高可用、多租户日志聚合系统。非常适合采集 Kubernetes Pod 的日志,关键 Loki 还易于操作且更加轻量级(相比 ELK/EFK/EFLK )。
gopher云原生
2021/10/18
15.8K0
在 EKS 中实现基于 Promtail + Loki + Grafana 容器日志解决方案
如果今天谈论到要部署一套日志系统,相信用户首先会想到的就是经典的ELK架构,或者现在被称为Elastic Stack。Elastic Stack架构为Elasticsearch + Logstash + Kibana + Beats的组合,其中,Beats负责日志的采集, Logstash负责做日志的聚合和处理,Elasticsearch作为日志的存储和搜索系统,Kibana作为可视化前端展示,整体架构如下图所示:
我是阳明
2021/06/25
3K0
在 EKS 中实现基于 Promtail + Loki + Grafana 容器日志解决方案
使用 Grafana 和 Loki 搭建 Milvus 日志查询系统
本教程将介绍如何设置 Grafana 和 Loki 来有效监控您的 Milvus 实例。
Zilliz RDS
2024/07/20
2950
使用 Grafana 和 Loki 搭建 Milvus 日志查询系统
Grafana 系列文章(十四):Helm 安装Loki
1.启用 Prometheus Operator Service Monitor 做监控2.增加external_labels - cluster, 以识别是哪个 K8S 集群;3.pipeline_stages 改为 cri, 以对 cri 日志做处理(因为我的集群用的 Container Runtime 是 CRI, 而 Loki Helm 默认配置是 docker)4.增加对 systemd-journal 的日志收集:
东风微鸣
2022/06/14
2.1K0
Grafana 系列文章(十四):Helm 安装Loki
Kubernetes集群日志-使用Loki实现高效日志分析和查询
Grafana Loki 是一个水平可扩展,高可用性,多租户的日志聚合系统,Loki 是基于仅索引有关日志元数据的想法而构建的:标签(就像 Prometheus 标签一样)。日志数据本身被压缩然后并存储在对象存储(例如 S3 或 GCS)的块中,甚至存储在本地文件系统上,轻量级的索引和高度压缩的块简化了操作,并显著降低了 Loki 的成本,Loki 更适合中小团队。由于 Loki 使用和 Prometheus 类似的标签概念,所以如果你熟悉 Prometheus 那么将很容易上手,也可以直接和 Grafana 集成,只需要添加 Loki 数据源就可以开始查询日志数据了。
王先森sec
2023/12/11
3.7K2
Kubernetes集群日志-使用Loki实现高效日志分析和查询
Loki日志聚合系统
Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。项目受 Prometheus 启发,官方的介绍就是:Like Prometheus, but for logs.,类似于 Prometheus 的日志系统。
mikelLam
2022/10/31
1.6K0
Loki日志聚合系统
grafana loki轻量级日志收集系统
Loki的第一个稳定版本于2019年11月19日发布 是 Grafana Labs 团队最新的开源项目 是一个水平可扩展,高可用性,多租户的日志聚合系统 Loki 特性
章工运维
2023/05/19
1.2K0
部署loki采集kubernetes容器日志
Grafana Loki is a set of components that can be composed into a fully featured logging stack. Unlike other logging systems, Loki is built around the idea of only indexing metadata about your logs: labels (just like Prometheus labels). Log data itself is then compressed and stored in chunks in object stores such as Amazon Simple Storage Service (S3) or Google Cloud Storage (GCS), or even locally on the filesystem. A small index and highly compressed chunks simplifies the operation and significantly lowers the cost of Loki.
锅总
2024/06/12
2710
部署loki采集kubernetes容器日志
简易日志系统LPG生产环境实践指南 | 坑我已经帮你们踩好了
最近在构建日志系统,对比了ELK还有LPG,发现LPG更加适合我们系统。奈何网上可靠的文章真是太少了,大多都是抄来抄去,整个过程躺过无数坑,特记录一下,回馈给读者。文章的所有配置文件都可以直接使用,并且配置做了优化,不会出现莫名其妙的问题。
Lu说
2022/06/07
2.2K0
简易日志系统LPG生产环境实践指南 | 坑我已经帮你们踩好了
TKE中部署日志聚合工具Loki
Loki是受Prometheus启发的水平可扩展,高度可用的多租户日志聚合系统。它的设计具有很高的成本效益,并且易于操作。它不索引日志的内容,而是为每个日志流设置一组标签。
聂伟星
2020/11/06
2.3K0
Loki简介,部署,使用
在对公司容器云的日志方案进行设计的时候,发现主流的 ELK (Elasticsearch, Logstash, Kibana) 或者 EFK (Elasticsearch, Filebeat or Fluentd, Kibana) 比较重,再加上现阶段对于 ES 复杂的搜索功能很多都用不上,最终选择了 Grafana 开源的 Loki 日志系统。下面我们来介绍下 Loki 的一些基本概念和架构,当然 EFK 作为业界成熟的日志聚合解决方案也是大家应该需要熟悉和掌握的;
iginkgo18
2021/06/21
4.7K0
Grafana Loki 简明教程
Loki 是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流配置一组标签。项目受 Prometheus 启发,官方的介绍就是:Like Prometheus, but for logs,类似于 Prometheus 的日志系统。
我是阳明
2020/08/24
13.4K0
Grafana Loki 简明教程
企业IT基础设施-日志系统笔记
日志系统是企业IT基础设施的重要组成部分,为了能够更好地管理和分析系统运行时产生的大量数据,从而帮助提升系统的稳定性、安全性、性能以及用户体验,遂进行日志系统搭建。主要满足以下几方面的能力。
ceagle
2025/02/10
1960
使用loki和grafana展示ingress-nginx的日志
在kubernetes中,对于日志的收集,使用最多的是FEK, 不过有时候,FEK在架构上会略显重, ES的查询及全文检索功能其实使用的不是很多.LoKi做为日志架构的新面孔, 由grafana开源, 使用了与Prometheus同样的label理念, 同时摒弃了全文检索的能力, 因此比较轻便, 非常具有潜力。
没有故事的陈师傅
2021/01/04
2.5K0
使用loki和grafana展示ingress-nginx的日志
日志收集系统loki+promtail+Grafana 部署
一、简 介 Loki是受Prometheus启发由Grafana Labs团队开源的水平可扩展,高度可用的多租户日志聚合系统。 开发语言: Google Go。它的设计具有很高的成本效益,并且易于操作。使用标签来作为索引,而不是对全文进行检索,也就是说,你通过这些标签既可以查询日志的内容也可以查询到监控的数据签,极大地降低了日志索引的存储。系统架构十分简单,由以下3个部分组成 :
熬夜的花斑狗
2022/01/11
6.4K0
使用 Loki 收集 Traefik 日志
前面我们介绍了 Loki 的实现架构以及 Promtail 的相关配置,本文我们将来介绍如何安装 Loki,并为 Traefik 的日志设置一个可视化的 Dashboard。
我是阳明
2021/05/17
1.5K0
使用 Loki 收集 Traefik 日志
03-Loki 日志监控
Loki是受Prometheus启发的水平可扩展、高可用、多租户日志聚合系统。它的设计非常具有成本效益且易于操作。它不索引日志的内容,而是索引每个日志流的一组标签。
JavaEdge
2025/06/01
510
03-Loki 日志监控
轻量级日志管理平台Grafana Loki搭建及应用
在微服务以及云原生时代,由于应用部署到遍地是,为了不像传统的方式上每台应用服务器筛选日志,那么我们可以使用日志管理平台,将所有日志都采集到统一的平台,供运维和研发人员快速排查故障,进而提升效率。
Lcry
2024/08/31
9200
轻量级日志管理平台Grafana Loki搭建及应用
齐活了,Grafana 发布大规模持续性能分析开源数据库 - Phlare
Grafana Phlare 是一个用于聚合 continuous profiling(持续分析)数据的开源软件项目。Grafana Phlare 可以和 Grafana 完全集成,允许你与其他可观察信号相关联。
我是阳明
2022/12/29
8700
齐活了,Grafana 发布大规模持续性能分析开源数据库 - Phlare
一文搞懂 Grafana Mimir
Hello folks,我是 Luga,今天我们来分享一下与 Grafana 有关的观测性话题- Grafana Mimir。 作为一个开源软件项目,Grafana Mimir 主要为 Prometheus 提供可扩展的长期存储功能支撑。
Luga Lee
2023/03/10
5.1K2
一文搞懂 Grafana Mimir
相关推荐
Loki & Promtail 详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档