grafana全家桶-loki promtail收集k8s容器日志
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/pushresources:limits:cpu: 300mmemory: 300Mirequests:cpu: 100mmemory: 100Mitolerations:- effect: NoSchedulekey: 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:latestports:- "3100:3100"- "9095:9095"volumes:- ./loki-data:/loki- ./loki-config.yaml:/etc/loki/local-config.yamluser: rootcommand: ["-config.file=/etc/loki/local-config.yaml"]
EOF
2.2、loki-config文件
cat >loki-config.yaml <<EOF
server:http_listen_port: 3100common: #通用配置path_prefix: /lokistorage:filesystem:chunks_directory: /loki/chunksrules_directory: /loki/rulesreplication_factor: 1ring:kvstore:store: inmemoryschema_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:latestcontainer_name: "grafana"ports:- "3000:3000"restart: alwaysvolumes:- "./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

相关文章:
grafana全家桶-loki promtail收集k8s容器日志
loki是grafana旗下轻量级日志收集工具,为了减少loki对集群的影响,把loki的agent日志收集端promtail部署在k8s集群中,loki server部署在集群外面。这样简单做一个解耦,避免大量读写的应用影响到集群内业务服务。 一、promtail部署…...
HTML5+CSS+JavaScript剪子石头布游戏
HTML5CSSJavaScript剪子石头布游戏 用HTML5CSSJavaScript剪子石头布游戏实现剪子石头布游戏,游戏有成绩计数,人、机输赢情况,及平局情况。 ✂代表剪刀,▉代表石头,▓ 代表布,给出人机双方的出拳情况 游戏…...
Flask-3
文章目录 ORMFlask-SQLAlchemySQLAlchemy中的session对象数据库连接设置常用的SQLAlchemy字段类型常用的SQLAlchemy列约束选项 数据库基本操作模型类定义 数据表操作创建和删除表 数据操作基本查询SQLAlchemy常用的查询过滤器SQLAlchemy常用的查询结果方法多条件查询分页器聚合…...
Redis的基本使用
简介 传统的数据库是 关系数据库,但是Redis是键值对数据库传统的数据库是基于 磁盘存储的,但是Redis是基于 内存存储的 基于内存,读写性能更高内存是不大的,只能存储热点信息 安装 绿色软件,安装即可使用 安装服务 手…...
[241004] Linux 系统中配置文件的区别 | VirtualBox 7.1.2 发布,修复多项问题并提升性能
目录 Linux 系统中 /etc/profile, ~/.bash_profile, ~/.profile, ~/.bashrc 等配置文件的区别一、配置文件类型二、配置文件作用三、交互式登录 Shell 和非登录 Shell交互式登录 shell交互式非登录 shell 四、配置文件加载顺序五、~/.bash_profile 和 ~/.bashrc 的区别 Virtual…...
hbuilderx+uniapp+Android宠物用品商城领养服务系统的设计与实现 微信小程序沙箱支付
目录 项目介绍支持以下技术栈:具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是:数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 顾客 领养…...
SVN 迁移到 GIT,并保留提交记录
1)svn账号与git账号映射 创建 user.txt ,格式如下,user.txt 放置在git base here 所选目录下即可 schacon Scott Chacon <schacongeemail.com> selse Someo Nelse <selsegeemail.com> 为了获得 SVN 使用的作者名字列表…...
【数据结构与算法】LeetCode:堆和快排
文章目录 LeetCode:堆和快排排序数组数组中的第K个最大元素 (Hot 100)前 K 个高频元素(Hot 100)数据流的中位数(Hot 100) LeetCode:堆和快排 排序数组 排序数组 双向切分实现快排…...
文档大师:打造一站式 Word 报告解决方案
前言 在政府、医院、银行、财务以及销售等领域,常常需要创建各种报告文件来展开工作汇报,譬如季度销售报告、年度总结报告、体检报告和保险合同等。在没有报表工具支持之前,这类报告主要通过 Word 制作,费时费力且难以维护&#…...
Python 数字专题:全方位解析整数
目录 1. 引言 2. 整数的基本概念 2.1 定义 2.2 整数的表示 2.3 创建整数 3. 整数的基本操作 3.1 算术运算 3.2 比较运算 3.3 位运算 4. 内置函数与方法 4.1 int() 函数 4.2 abs() 函数 4.3 pow() 函数 5. 整数的性能优化 5.1 大整数的处理 5.2 使用 numpy 6. 应…...
IP协议报文
一.IP协议报头结构 二.IP协议报头拆解 1.4位版本 实际上只有两个取值,分别是4和6,4代表的是IPv4,6代表的是IPv6。 2.4位首部长度 IP协议报头的长度也是边长的,单位是*4,这里表示的大小为0~15,当数值为1…...
【分布式微服务云原生】掌握分布式缓存:Redis与Memcached的深入解析与实战指南
掌握分布式缓存:Redis与Memcached的深入解析与实战指南 摘要: 本文深入探讨了分布式缓存在现代分布式系统中的重要性,详细分析了Redis和Memcached两种主流的分布式缓存解决方案的原理和使用场景。文章不仅提供了核心技术的深入解析ÿ…...
计算机毕业设计 基于Python的智能文献管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
如何查看NVIDIA Container Toolkit是否配置成功
要确认 NVIDIA Container Toolkit 是否已成功配置,可以按照以下步骤进行检查: 1.检查 NVIDIA 驱动程序 首先,确保你的系统已经正确安装了 NVIDIA 驱动程序,并且可以识别你的 GPU。你可以使用 nvidia-smi 命令来进行检查…...
python全栈学习记录(二十一)类的继承、派生、组合
类的继承、派生、组合 文章目录 类的继承、派生、组合一、类的继承二、派生三、组合 一、类的继承 继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类。 继承的特性是:子类会遗传父类的属性(继承是类与类之间的关系&a…...
Go语言实现长连接并发框架 - 任务执行流
文章目录 前言接口结构体接口实现项目地址最后 前言 你好,我是醉墨居士,上篇博客中我们实现了客户端的请求的实现,接下来我们要去实现对请求任务的处理,我们需要定义任务执行的流程 接口 trait/task.go type TaskFunc interfa…...
Flutter与原生代码通信
文章目录 1. 知识回顾2. 示例代码3. 经验总结我们在上一章回中介绍了通道相关的内容,本章回中将介绍其中的一种通道:MethodChannnel.闲话休提,让我们一起Talk Flutter吧。 1. 知识回顾 我们在上一章回中介绍了通道的概念和作用,并且提到了通道有不同的类型,本章回将其中一…...
每日读则推(三)
n.(事件的)发生地点,(活动的)场所 n.雄性大园丁鸟 n.多细枝的,苗条的 v.放大,扩大(声音);增强,加强 Male great bowerbirds build twiggy concert venues that amplify their raucous songs and n.园丁鸟 …...
Android Studio | 无法识别Icons.Default.Spa中的Spa
编写底部导航栏,涉及到Spa部分出现报红: 解决办法:在build.gradle.kts中引入图标依赖 dependencies {implementation "androidx.compose.material:material-icons-extended:<version>" }...
SKD4(note上)
微软提供了图形的界面API,叫GDI 如果你想画某个窗口,你必须拿到此窗口的HDC #include <windows.h> #include<tchar.h> #include <stdio.h> #include <strsafe.h> #include <string>/*鼠标消息 * 键盘消息 * Onkeydown * …...
硬件加速方案:OpenClaw调用SecGPT-14B时的vLLM优化配置
硬件加速方案:OpenClaw调用SecGPT-14B时的vLLM优化配置 1. 为什么需要vLLM优化 去年我在本地部署SecGPT-14B时遇到了一个尴尬的问题——我的RTX 3090显卡只有24GB显存,而模型加载后显存直接爆满,连最简单的推理都无法完成。这促使我开始研究…...
告别复杂设置!这款开源IPTV播放器带来极简体验
告别复杂设置!这款开源IPTV播放器带来极简体验 【免费下载链接】iptvnator :tv: Cross-platform IPTV player application with multiple features, such as support of m3u and m3u8 playlists, favorites, TV guide, TV archive/catchup and more. 项目地址: ht…...
读懂 ABAP 调试器里的 ()XVBRP[]:这不是新语法,而是旧式内表加调试器命名表示法的组合
有朋友问我下面这个截图里的变量名是什么语法? 你这张截图里的 ()XVBRP[],结论上并不是一种新的 ABAP 变量声明语法。把它拆开看,更容易理解: XVBRP[] 这一段,核心含义是:XVBRP 是一个带 header line 的旧式内表,而 [] 明确表示你看到的是内表体 table body,不是同名的…...
Windows Defender Remover终极指南:深度解析系统安全组件移除技术
Windows Defender Remover终极指南:深度解析系统安全组件移除技术 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_…...
彻底解决Windows磁盘空间危机:Driver Store Explorer专业驱动管理指南
彻底解决Windows磁盘空间危机:Driver Store Explorer专业驱动管理指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否曾为Windows系统盘空间不断缩小而烦恼ÿ…...
栈(C语言)
目录 1. 栈的定义 2. 代码实现 1. 栈的定义 栈属于线性表,具有后进先出的特点,存储结构类似羽毛球桶,可以依次取出最后放入栈中的数据。实现:栈一般采用数组 / 链表实现,但是推荐程度:数组 > 单链表 …...
突破性QQ音乐加密文件解码工具:qmcdump让音乐自由播放的革新方案
突破性QQ音乐加密文件解码工具:qmcdump让音乐自由播放的革新方案 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump …...
实战分享:我是如何搞定SHEIN新版反爬(anti-in, smdeviceid, armortoken, x-gw-auth)的
电商平台数据采集实战:逆向工程与参数生成策略 最近半年,电商平台的反爬机制呈现出明显的升级趋势。以某国际快时尚电商为例,其新增的四个核心校验参数(anti-in、smdeviceid、armortoken、x-gw-auth)构成了完整的安全验…...
GLM-4.1V-9B-Base快速部署:Docker镜像体积优化与启动时间实测对比
GLM-4.1V-9B-Base快速部署:Docker镜像体积优化与启动时间实测对比 1. 模型概述 GLM-4.1V-9B-Base是智谱开源的一款视觉多模态理解模型,专注于图像内容识别与分析任务。该模型具备9B参数规模,在中文视觉理解领域表现出色,能够完成…...
网站的页面加载速度和SEO有什么关系
网站的页面加载速度和SEO有什么关系 在当今互联网时代,网站的页面加载速度和SEO(搜索引擎优化)之间的关系是一个不可忽视的重要问题。在用户体验和搜索引擎排名方面,页面加载速度起着至关重要的作用。本文将从问题分析、原因说明…...
