grafana全家桶-loki promtail收集k8s容器日志

news2024/12/26 11:22:42

loki是grafana旗下轻量级日志收集工具,为了减少loki对集群的影响,把loki的agent日志收集端promtail部署在k8s集群中,loki server部署在集群外面。这样简单做一个解耦,避免大量读写的应用影响到集群内业务服务。

一、promtail部署

helm配置文件,这里简单说一下promtail会自动从每台k8s node的容器目录去收集日志,默认是按照deployment的name进行拆分job,例如dp的名称是test和baga,job就会是test和baga
这里url写集群外的loki地址就行

cat >vaules.yaml<<EOF
config:
  clients:
    - url: http://172.28.199.199:3100/loki/api/v1/push

resources:
  limits:
    cpu: 300m
    memory: 300Mi
  requests:
    cpu: 100m
    memory: 100Mi


tolerations:
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
EOF

安装promtail

kubectl create namespace logging
helm upgrade --install promtail grafana/promtail -f values.yaml --namespace logging

二、安装配置loki

2.1、docker-compose文件

cat >docker-compose.yaml <<EOF
version: '3'

services:
  loki:
    image: grafana/loki:latest
    ports:
      - "3100:3100"
      - "9095:9095"
    volumes:
      - ./loki-data:/loki
      - ./loki-config.yaml:/etc/loki/local-config.yaml
    user: root
    command: ["-config.file=/etc/loki/local-config.yaml"]
EOF

2.2、loki-config文件

cat >loki-config.yaml <<EOF
server:
  http_listen_port: 3100

common:                             #通用配置
  path_prefix: /loki
  storage:
    filesystem:
      chunks_directory: /loki/chunks
      rules_directory: /loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory

schema_config:
  configs:
    - from: 2020-10-24               # 架构配置的生效日期
      store: boltdb-shipper          # 存储类型
      object_store: filesystem       # 对象存储类型为文件系统
      schema: v11                    # 架构版本
      index:                         # 索引配置
        prefix: index_               # 索引前缀
        period: 24h                  # 索引周期

storage_config:                                                # 存储相关
  boltdb_shipper:
    active_index_directory: /loki/boltdb-shipper-active        # 活动索引的目录
    cache_location: /loki/boltdb-shipper-cache                 # 缓存位置
    cache_ttl: 24h                                             # 缓存的过期时间
    shared_store: filesystem                                   # 共享存储类型为文件系统
  filesystem:
    directory: /loki/chunks                                    # 文件系统的目录

compactor:
  working_directory: /loki/boltdb-shipper-compactor            # 紧缩器的工作目录
  shared_store: filesystem                                     # 共享存储类型为文件系统

limits_config:
  reject_old_samples: true               # 是否拒绝旧样本
  reject_old_samples_max_age: 72h        # 72小时之前的样本被拒绝
  max_entries_limit_per_query: 9999      # 数值改为自己想要的最大查询行数
  ingestion_rate_mb: 32                  # mb单位,每个用户每秒的采样率限制  不设置客户端会报错
  ingestion_burst_size_mb: 64            # 每个用户允许的采样突发大小

chunk_store_config:
  max_look_back_period: 72h              # 为避免查询超过保留期的数据,必须小于或等于下方的时间值

table_manager:
  retention_deletes_enabled: true        # 保留删除开启
  retention_period: 72h                  # 超过72h的块数据将被删除
auth_enabled: false
EOF

经过三天后发现数据保留72h是有效的

2.3、启动loki server

$ docker-compose up -d
# 这里的loki-data目录是loki的data目录,映射出来了   ./loki-data:/loki
root@ip-172-28-199-199:/data/loki# ls
docker-compose.yaml  loki-config.yaml  loki-data

2.4、写入测试数据

在没有grafana时测试loki可用性

curl -X POST http://172.28.199.199:3100/loki/api/v1/push -H "Content-Type: application/json" -d '{
  "streams": [
    {
      "stream": {
        "job": "test-job",
        "host": "example"
      },
      "values": [
        [ "'$(date +%s%N)'", "Hello Loki from test-job" ]
      ]
    }
  ]
}'

2.5、查看loki的job信息

$ curl "http://172.28.199.199:3100/loki/api/v1/label/job/values"
{"status":"success","data":["logging/promtail","sijia-test/vault-demo","test-job","vault/vault","vault/vault-agent-injector","velero/velero"]}

三、部署grafana

loki的ui就是grafana

3.1、docker-compose文件

直接把ldap也配置了

version: '3.7'

services:
  grafana:
    image: grafana/grafana:latest
    container_name: "grafana"
    ports:
      - "3000:3000"
    restart: always
    volumes:
      - "./grafana_data:/var/lib/grafana"
      - "./ldap.toml:/etc/grafana/ldap.toml"
    environment:
      - GF_AUTH_LDAP_ENABLED=true
      - GF_AUTH_LDAP_CONFIG_FILE=/etc/grafana/ldap.toml

3.2、ldap配置

ldap.toml,这是测试环境,所以用户权限都给Admin了

[[servers]]
# LDAP 服务器的地址和端口
host = "172.28.224.89"
port = 389
use_ssl = false
start_tls = false
ssl_skip_verify = false

# 用于绑定 LDAP 服务器的用户凭证
bind_dn = "cn=admin,dc=xx,dc=com"
bind_password = 'xx.compassword'

# 搜索过滤器和基础 DN,用于查找用户
search_filter = "(uid=%s)"
search_base_dns = ["dc=xx,dc=com"]

# LDAP 属性映射
[servers.attributes]
name = "uid"
surname = "sn"
username = "cn"
member_of = "dn"
email = "email"

# 组映射,所有用户默认分配 Admin 角色
[[servers.group_mappings]]
group_dn = "*"
org_role = "Admin"

查看ldap验证信息

docker logs grafana  -f | grep ldap

3.3、在grafana中查询

通过Explore查询
在这里插入图片描述

3.4、通过模板查询

我当前用了dash_id 13639,每个服务都对应一个App
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2181140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker学习笔记(1.0)

docker命令 下载镜像相关命令 检索&#xff1a;docker search 比如&#xff1a;docker search nginx 是查看有没有nginx镜像 后面的OK表示是不是官方镜像&#xff0c;如果有就是官方镜像&#xff0c;如果没有就是第三方的。 下载&#xff1a;docker pull 比如&#xff1a…

USB 3.1 标准 A 型插头到 USB 3.1 Micro-B 型插头电缆组件的电线连接

电线分配 下表定义了电线编号和电线的信号分配&#xff1a; Unshielded twist pair&#xff1a;非屏蔽双绞线Shielded differential pair&#xff1a;屏蔽差分对Braid&#xff1a;编织层Cable external braid to be 360 terminated on to plug metal shell&#xff1a;电缆外部…

JAVA开源项目 大学生就业招聘系统 计算机毕业设计

本文项目编号 T 058 &#xff0c;文末自助获取源码 \color{red}{T058&#xff0c;文末自助获取源码} T058&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 企…

21.1 k8s接口鉴权token认证和prometheus的实现

本节重点介绍 : k8s接口鉴权方式serviceaccount和token的关系手动curl访问metrics接口 k8s对象接口鉴权 以容器基础资源指标为例 对应就是访问node上的kubelet的/metrics/cadvisor接口&#xff0c;即访问https://nodeip:10250/metrics/cadvisor 直接curl访问 会报错&…

无人机在救灾方面的应用!

一、灾害监测与评估 实时监测与评估&#xff1a;无人机可以快速到达灾害现场&#xff0c;通过搭载的高清摄像头、红外热成像仪等设备&#xff0c;对灾区进行实时监测和灾情评估。根据捕捉到的受灾范围、火势大小、建筑物损坏情况等关键信息&#xff0c;为救援行动提供决策依据…

Matplotlib 使用 LaTeX 渲染图表中的文本、标题和数学公式

Matplotlib 使用 LaTeX 渲染图表中的文本、标题和数学公式 Matplotlib 是一个功能强大的 Python 库&#xff0c;用于绘制各种高质量的图表和图形。在许多科研和技术文档中&#xff0c;数学公式是不可或缺的一部分&#xff0c;LaTeX 提供了精美的数学公式渲染能力。Matplotlib …

TI DSP TMS320F280025 Note15:串口SCI的使用

TMS320F280025 串口SCI的使用 ` 文章目录 TMS320F280025 串口SCI的使用框图分析串口特点可编程数据格式SCI端口中断非FIFO/FIFO模式下SCI中断的操作/配置UartDriver.cUartDriver.h串口时钟由PCLKCR7控制使能,默认位系统时钟4分频 串口接收与发送都可以触发中断 串口使用的引脚…

uniapp微信小程序,获取上一页面路由

在进入当前页面的时候&#xff0c;判断是不是从某个页面跳转过来的&#xff08;一般是当前页面为公共页面是出现的&#xff09;&#xff0c;比如 A-->B C-->B ,那么 要在 C跳转到B页面的时候多个提示语什么的 而在A跳转到B时不需要&#xff0c;那么就要判断 上一页面的…

HTML【知识改变命运】01基础介绍

网页的组成 1&#xff1a;网页三件套1:html&#xff08;结构&#xff09;2:css&#xff08;表现&#xff09;JavaScript&#xff08;行为&#xff09; 2小技巧3:html的介绍4:两种运行方式5:html的主体结构6:html的注意情况 1&#xff1a;网页三件套 1:html&#xff08;结构&am…

系统架构设计师论文《论SOA在企业集成架构设计中的应用》精选试读

论文真题 企业应用集成(Enterprise Application Integration, EAI)是每个企业都必须要面对的实际问题。面向服务的企业应用集成是一种基于面向服务体系结构(Service-OrientedArchitecture,SOA&#xff09;的新型企业应用集成技术&#xff0c;强调将企业和组织内部的资源和业务…

LSTM模型改进实现多步预测未来30天销售额

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝&#xff0c;拥有2篇国家级人工智能发明专利。 社区特色…

粉丝们得以一窥索菲亚罗兰奢华的90岁生日庆祝仪式! 她已完成了所有的遗愿清单 !

计划中索菲亚罗兰将与一小群亲友庆祝她的90岁生日&#xff0c;但有人给了她一个巨大的惊喜。乔治阿玛尼给了她惊喜。 认识索菲娅罗兰&#xff0c;那是在一部堪称经典的影片《卡桑德拉大桥》之中。那时候的我&#xff0c;正值青春年华&#xff0c;才 20 多岁&#xff0c;怀揣着…

Albert Koetsier X射线摄影图连发四案,这些图片都不能用

案件基本情况起诉时间&#xff1a;2024-9-18、2024-9-24案件号&#xff1a;24-cv-08568、24-cv-08574、24-cv-08817、24-cv-08824原告&#xff1a;Albert Koetsier原告律所&#xff1a;keith起诉地&#xff1a;伊利诺伊州北部法院品牌介绍Albert Koetsier 的X射线花卉艺术&…

Vue Mini基于 Vue 3 的小程序框架

新的小程序框架 https://vuemini.org/ Vue Mini 是一个基于 Vue 3 的小程序框架&#xff0c;它允许开发者利用 Vue 3 的强大功能来构建微信小程序。Vue Mini 的核心优势在于它的响应式系统和组合式 API&#xff0c;这些特性让开发者能够以一种更声明式、更高效的方式来编写和…

结构体内存对齐与位段

1.对齐规则&#xff1a; 1.结构体的第一个成员对齐到结构体变量的起始位置&#xff08;偏移量为0处&#xff09;。 2.其它成员要对齐到对齐数的整数倍的地址处&#xff08;编译器默认对齐数&#xff08;vs默认为8&#xff0c;gcc没有默认只看变量&#xff09;与该成员变量所占…

text2sql方法:基于ChatGPT的zero-shot方法C3

ChatGPT SQL ChatGPT SQL出自2023年3月的论文《A comprehensive evaluation of ChatGPT’s zero-shot Text-to-SQL capability》(github)&#xff0c;这篇论文分析了ChatGPT的text2sql能力&#xff0c;实验结果表明ChatGPT的text2sql能力令人印象深刻&#xff0c;虽然没有达到…

CK-G080AB低频RFID传感器|工业级读写器性能与接口说明

CK-G080AB 是一款基于射频识别技术的低频 RFID 标签传感器&#xff0c;传感器工 作频率为 125KHZ&#xff0c;同时支持对 EMID&#xff0c;FDX-B 两种格式标签的读取。传感器内部 集成了射频部分通信协议&#xff0c;用户只需通过 RS232\RS485 通信接口接收数据便能完 成对标签…

谷歌网站收录查询,帮助您快速准确地查询网站在谷歌的收录情况的3个方法

谷歌网站收录查询&#xff0c;帮助您快速准确地查询网站在谷歌的收录情况的3个方法。 一、使用GoogleSearchConsole&#xff08;谷歌搜索控制台&#xff09; 1.注册并验证网站 -首先&#xff0c;确保您的网站已注册并验证在GoogleSearchConsole中。这是一个免费的工具&…

VR全景摄影的商业模式及盈利点分析

VR全景摄影作为一种新兴的商业技术&#xff0c;其商业模式和盈利点主要体现在以下几个方面&#xff1a; 内容订阅与付费&#xff1a;企业可以通过提供VR全景内容平台&#xff0c;让用户通过订阅或单次购买来获得特定的VR全景内容&#xff0c;这类似于音乐和视频流媒体平台的运营…

Element UI教程:如何将Radio单选框的圆框改为方框

大家好&#xff0c;今天给大家带来一篇关于Element UI的使用技巧。在项目中&#xff0c;我们经常会用到Radio单选框组件&#xff0c;默认情况下&#xff0c;Radio单选框的样式是圆框。但有时候&#xff0c;为了满足设计需求&#xff0c;我们需要将圆框改为方框&#xff0c;如下…