Fluent bit回顾
Log Agent - Fluent Bit 简介
Log Agent - Fluent Bit 安装与常见架构模式
Log Agent - Fluent Bit Service配置与内建 API
Log Agent - Fluent Bit Input元件 与 Tail浅谈
Log Agent - Fluent Bit Parser元件
Log Agent - Fluent Bit Multiline Parsing
在Day20分布式可观测性 Logging 浅谈时,
我们曾提到Grafana家族有Grafana + Loki, 能用来存放与展示Log.
这两个元件的介绍, 日後有机会在深入.
今天先来使用这两个元件加上Fluent Bit收集到的Log, 来做展示跟搜寻.
先透过Docker Compose快速建立Grfana + Loki
version: '3'
services:
loki:
image: grafana/loki:2.3.0
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
- GF_USERS_ALLOW_SIGN_UP=false
执行启动
docker-compose up -d
登入Grafana後, 左边菜单选择Configuration->Data Sources->Add data source
然後在URL输入http://loki:3100/
按下Save & Test
出现Data source connected and labels found.
表示Grafana成功连上Loki
Fluent Bit在Output上也提供非常多的Plugins,
能输出到像是Prometheus、CloudWatch、Datadog,Elasticsearch...
这里因为我们目标是把Fluent Bit收集到的Log, 写到Loki做储存
所以这里选择Loki这Output Plugin
加入Loki的Output进去
[OUTPUT]
name loki
match *
host loki
port 3100
labels job=demo
启动FLuent BIt後
我们来到Grafana左边选单的Explore这里
左上角选择Loki
来到Log browser会看到job有出现刚刚的demo
这label, 选择demo, 然後选择show logs
就会看到上一篇的Log出现在此了.
然後来简单介绍一下Log搜寻语法 LogQL
LogQL => Log Query Language
LogQL也有类似Linux Pipe管线的概念
|
command1 | command2 | command3
後面的command收到的输入都是前一个command的输出结果
也能来用反向来过滤
!
刚刚的Pipe加上Filter就能达到过滤或比对的功能
符号就2种=
和~
=
用来表示包含该字串~
用来表示後面的字串其实是Regex pattern我们把两者合并
|=
Log包含该字串!=
Log内不包含ㄍ字串|~
Log内能匹配到这Regex!~
Log的结果不包含这Regex所匹配到的还有很多玩法, 能参考LogQL官网
就是Fluent Bit + Loki + Grafana
真的是很强大的一套分布式可观测性Log服务
加上现在SRE或运维其实也很多都用Grafana,
如果Log也能用同一套展示面板, 其实在管理设定与学习上就简单多了.
不过Fluent Bit + Loki + Grafana相对於ELK来说可能没那样稳定, 毕竟才出来市场相对没那麽久.
但这套相对於ELK所吃的记忆体就真的少很多了
Fluent Bit真的是很不错的服务, K8S也有用这个在收集跟处理各容器的Log, 几乎常见的场景都适用.
期待大家一起把玩, 一起分享与学习.
今年的铁人赛挑战到此完成了.
刚转换工作, 很多还在适应与学习. 脱离了习惯已久的开发环境与工具.
今年到最後一天才决定开赛. 虽然每天都面离断赛危机.
就每天硬着头皮下班开始开官网学习, 并写成文章.
这次很多部份不够详细与深入, 接着一年的时机要继续深入学习.
感谢各位的阅读.
明年再见
Viewer
权限的帐号如果想看到Expolre
工具, 需要在config开启viewers_can_edit
configuration-viewers-can-edit
<<: 找LeetCode上简单的题目来撑过30天啦(DAY30)
前情提要 在开发 App 的时候,有遇过键盘开启的时候,TextField 却被挡住无法输入的情况吗...
前言 React hook 是 React V16.8 新增的功能,它改变了 React 写 Cla...
要开始写网页之前,首先要了解到网页是如何形成的,其实网页形成非常的简单,透过网页浏览器(google...
规则和政策总是无法照顾到所有情况 现实生活有太多细微的差异 政策再怎麽缜密也追不上 花公司的钱 就...
这几天的内容中,我们已经学到了几个重点: 泛型(generics)的使用 使用 extends 限制...