轻量级日志收集系统 Grafana+Loki+Promtail

本文详细介绍了如何在Grafana中集成Loki日志存储和检索引擎,以及Promtail作为日志采集器的角色。步骤包括安装Loki、配置文件、启动服务,以及如何使用Promtail收集和推送日志到Loki。还涉及了如何通过Grafana查询、过滤和可视化日志数据。
摘要由CSDN通过智能技术生成

本文转载于个人博客:https://docs.wziqi.vip/

前言

Grafana:提供 Loki 中捕获的日志行的可视化与搜索平台。
Loki :是日志记录存储与检索引擎。
Promtail:做为日志采集器,从 flog 中抓取日志行,并通过网关将它们推送给 Loki。
Promtail:是运行环境的代理(或客户端),它捕获日志行并通过网关将它们推送到 Loki 集群,
在典型环境中,生成日志的应用程序和代理一起运行,但位置与 Loki 集群不同。Grafana 提供了一种对 Loki 中存储的日志进行查询并可视化查询结果的方法。

第一步安装 Loki

简单介绍下Loki:
​
Grafana Loki 是一个日志聚合工具,它是功能齐全的日志堆栈的核心。
Loki 是一个为有效保存日志数据而优化的数据存储。日志数据的高效索引将 Loki 与其他日志系统区分开来,
与其他日志系统不同,Loki 索引是根据标签构建的,原始日志消息未编入索引。

1.1 切换到工作目录下,如果自己创建的不是这个目录下边启动容器的映射也得改
mkdir -p /etc/loki/conf && cd /etc/loki/conf && chmod 0777 -R /etc/loki
1.2 下载配置文件
wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml
1.3 配置文件详解
auth_enabled: false  # 是否启用鉴权
 
server:
  http_listen_port: 3100   #http访问端口
  grpc_listen_port: 9096   #rpc访问端口
 
common:
  path_prefix: /tmp/loki    #loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks    #记录块存储目录,默认chunks块上的日志数量或到期后,将chunks数据打标签后存储
      rules_directory: /tmp/loki/rules      #规则配置目录
  replication_factor: 1
  ring:
    instance_addr: 192.168.1.1   #修改为自己的IP或localhost
    kvstore:
      store: inmemory
 
query_range:         #查询规则
  results_cache:     #结果缓存
    cache:
#      embedded_cache:  #默认开启后会有提示,未配置缓存项,暂不开启
#        enabled: true
#        distributed: true
#        max_size_mb: 100
 
schema_config:      #配置索引信息
  configs:
    - from: 2020-10-24
      store: boltdb-shipper
      object_store: filesystem
      schema: v11
      index:
        prefix: index_    #索引前缀
        period: 24h       #索引时长
 
ruler:
  alertmanager_url: http://192.168.1.1:9093   #告警通知url,修改为自己的IP
1.4 启动服务
docker run -d --name loki --privileged=true \
--restart always -p 3100:3100 -p 9096:9096 \
-e TZ="Asia/Shanghai" -m 512m \
-v /etc/localtime:/etc/localtime:ro \
-v /usr/share/zoneinfo/:/usr/share/zoneinfo/:ro \
-v /etc/loki/conf:/mnt/config grafana/loki:2.8.2 \
-config.file=/mnt/config/loki-local-config.yaml

第二步安装 Promtail

2.1 切换到工作目录下,如果自己创建的不是这个目录下边启动容器的映射也得改
cd /etc/loki/conf
2.2 下载配置文件
wget https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml
2.3 配置文件详解
server:
  http_listen_port: 9080
  grpc_listen_port: 0
 
positions:
  filename: /tmp/positions.yaml   #用于记录每次读取日志文件的索引行数,如:promtail重启后从该配置中恢复日志文件的读取位置
 
clients:
  - url: http://192.168.1.1:3100/loki/api/v1/push   #推送日志流到Loki中的api
 
scrape_configs:   #发现日志文件的位置并从中提取标签
- job_name: bbb   #任务名称
  static_configs:    # 目录配置
  - targets:         # 标签
      - 192.168.1.1
    labels:
      job: bbb   #子任务名称,通常以项目命令
      __path__: /var/log/*log   #要读取的日志文件的位置,允许使用通配符/*log或/**/*.log

- job_name: aaa   # 读取多个项目的日志文件
  static_configs:
  - targets:
      - 192.168.1.1
    labels:
      job: aaa
      __path__: /var/log/test/aaa.log # 定义不同的日志文件路径
2.4 创建服务
docker run -d --name promtail   --privileged=true  \
--restart always   -e TZ="Asia/Shanghai"  -m 512m \
-v /etc/localtime:/etc/localtime:ro   \
-v /etc/loki/conf/:/mnt/config   -v /var/log:/var/log \
grafana/promtail:2.8.2  \
-config.file=/mnt/config/promtail-config.yaml

第三步安装granafa

3.1 创建工作目录并加权
chmod -R 0777 /etc/loki/grafana-storage
3.2 创建服务
docker run -d  -p 3000:3000  --name=grafana  -m 512m   \
-v /etc/loki/grafana-storage:/var/lib/grafana  grafana/grafana
3.3 浏览器访问 IP:3000 (安全组记得开这个端口)

默认用户名和密码:admin/admin

3.4 修改为中文

image.png

image.png

3.5 添加loki插件

image.png

image.png

image.png

image.png

image.png

image.png

image.png

上方正则筛选日志介绍

对于查询表达式的标签部分,将放在 {} 中,多个标签表达式用逗号分隔:

{app="mysql",name="mysql-backup"}

支持的符号有:

\=:完全相同。

!=:不平等。

\=~:正则表达式匹配。

!~:不要正则表达式匹配。

过滤表达式

编写日志流选择器后,您可以通过编写搜索表达式进一步过滤结果。搜索表达式可以文本或正则表达式。

如:

{job=“mysql”} |= “error”

{name=“kafka”} |~ “tsdb-ops.*io:2003”

{instance=~“kafka-[23]”,name=“kafka”} != kafka.server:type=ReplicaManager

支持多个过滤:

{job=“mysql”} |= “error” != “timeout”

目前支持的操作符:

|= line 包含字符串。

!= line 不包含字符串。

|~ line 匹配正则表达式。

!~ line 与正则表达式不匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值