一 PLG
'promtail-loki-grafana'轻量日志监控系统,简称'PLG'
关注: '流程图'、各个组件自身的一些'concepts'
1)promtail的'角色'相当于'E(L|F)K'中的'(Logstash|FlieBeat)'
2)不依赖于'jdk'环境,所以比较'轻量'
3)角色: 采集'node(通常是节点)'的日志,然后'主动推送[防火墙边界]'给'loki的代理程序'
通俗解读:作为'agent(代理)'在'客户端'收集日志
4)promtail 主要负责日志的'采集、提取、过滤、匹配','批量push'到loki,相当于日志收集客户端
细节点:将日志转换为'流',然后通过 'HTTP API' 将'流'推送到 loki
② loki
Grafana loki 是一个'日志聚合工具',它是功能齐全的'日志堆栈'的核心
loki的'角色'相当于'E(L|F)K'中的'(Elasticsearch)'
Loki则继续将收到的日志'按照标签'进行分发'存储',并在需要时使用'LogQL'进行查询
+++++++++++ 'loki轻量级,适合云原生原因' +++++++++++
1)loki'不会'对原始的日志数据进行'全文'索引,而是采用了Prometheus的'标签'思想,只对标签索引
2)日志数据本身也会'被压缩',并以'chunks(块)的形式'存储在'对象存储(s3)'或者'本地'文件系统
3)Loki能够以'微服务模式'运行,也就是把自身的各个模块'分解出'单个进程运行
角色: 就是'接收'来自于promtail'推送的日志',有很多组成组件,相当于'日志收集服务端'
重点: 负责'存储'日志和'处理查询'
③ grafana
说明: grafana用于 'UI' 展示
1)grafana是一款开源的'可视化'和分析软件,它允许'用户查询'、'可视化'、'警告'和探索监控指标
2)grafana主要提供'时间序列'数据的'仪表板'解决方案,支持超过'数十种'数据源
二 PLG安装
说明: 这里三个组件都安装'2.4.1'的版本
(1)promtail安装
① 下载
mkdir /plg/promtail
unzip promtail-linux-amd64.zip
② 下载示例模板
说明: 一般一个'服务'一个'__Path__',可读性更高
'启动'
nohup ./promtail-linux-amd64 -config.file=./promtail.yaml &>promtail.log &
(2)安装Loki
nohup ./loki-linux-amd64 -config.file=./loki.yml &> loki.log &
(3)grafana安装
vim /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
exclude=*beta*
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
说明: 这里使用'grafana-8.1.5-1'避免安装最新版本,'不适配'
② 安装
'配置文件'位于/etc/grafana/grafana.ini
+++ 'Grafana 访问'+++
1)默认端口是3000,这里修改了'端口号(3001)',访问地址:http://ip:3001
2)默认账号/密码:admin/admin,需要重置'密码'
② 安装包信息
二进制文件: /usr/sbin/grafana-server
init.d 脚本: /etc/init.d/grafana-server
环境'变量'文件: /etc/sysconfig/grafana-server
'配置'文件: /etc/grafana/grafana.ini
'日志'文件:/var/log/grafana/grafana.log
默认配置的'sqlite3数据库':/var/lib/grafana/grafana.db
③ 添加Loki数据源
1)在Grafana的'左侧边栏'选择Configuration > Data Sources
2)点击Add data source按钮,选择'Loki数据源',在URL中填写'Loki Server'的地址
配置完点击'Save & Test'
细节点: 如果'部署'在k8s中,则应填写的是k8s'内部域名'形式
④ 查看日志
配置好'数据源'之后,侧边栏选择'Explore'并且选择'label'就可以查看日志
备注: 此处的标签对应'promtail中'配置的标签
'Log Browser'预览:即需要在面板中'展示'的数据,需要通过'grafana函数表达式'查询数据
也可以通过LogQL进行查询