一   PLG

'promtail-loki-grafana'轻量日志监控系统,简称'PLG'

关注: '流程图'、各个组件自身的一些'concepts'

Trap监控_数据

ELK和PLG的区别

promtail

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'推送的日志',有很多组成组件,相当于'日志收集服务端'

重点: 负责'存储'日志和'处理查询'

loki的特点

loki的github地址

loki官网安装

loki官网配置详解

loki各组件的说明

③  grafana

说明: grafana用于 'UI' 展示

1)grafana是一款开源的'可视化'和分析软件,它允许'用户查询'、'可视化'、'警告'和探索监控指标

2)grafana主要提供'时间序列'数据的'仪表板'解决方案,支持超过'数十种'数据源

grafana官网安装

二   PLG安装

说明: 这里三个组件都安装'2.4.1'的版本

(1)promtail安装

①  下载

mkdir /plg/promtail

unzip promtail-linux-amd64.zip

②  下载示例模板

各配置选项中文解读

说明: 一般一个'服务'一个'__Path__',可读性更高

Trap监控_官网_02

'启动'

nohup ./promtail-linux-amd64 -config.file=./promtail.yaml  &>promtail.log &

promtail systemd配置 

Trap监控_官网_03

Trap监控_运维_04

Trap监控_运维_05

(2)安装Loki

示例配置文件下载   2.4.1版本下载地址

nohup ./loki-linux-amd64 -config.file=./loki.yml &> loki.log &

Trap监控_数据源_06

Trap监控_官网_07

loki踩坑记

(3)grafana安装

①  Centos7 rpm源配置

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'避免安装最新版本,'不适配'

②  安装 

Trap监控_数据源_08

grafana配置文件解读

'配置文件'位于/etc/grafana/grafana.ini

Trap监控_数据_09

grafana 忘记密码和启动端口被占用解决方法

Trap监控_运维_10

 

Trap监控_数据源_11

+++ 'Grafana 访问'+++

1)默认端口是3000,这里修改了'端口号(3001)',访问地址:http://ip:3001

2)默认账号/密码:admin/admin,需要重置'密码'

Trap监控_Trap监控_12

②  安装包信息

二进制文件: /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'的地址

Trap监控_数据_13

Trap监控_官网_14

Trap监控_数据_15

Trap监控_运维_16

配置完点击'Save & Test'

细节点: 如果'部署'在k8s中,则应填写的是k8s'内部域名'形式

④  查看日志

配置好'数据源'之后,侧边栏选择'Explore'并且选择'label'就可以查看日志

备注: 此处的标签对应'promtail中'配置的标签

'Log Browser'预览:即需要在面板中'展示'的数据,需要通过'grafana函数表达式'查询数据

Trap监控_官网_17

Trap监控_Trap监控_18

 

Trap监控_官网_19

 

也可以通过LogQL进行查询