日志收集系统-LPG&docker搭建

摘要

我们先了解日志收集系统的作用

可视化的日志收集系统,故障排查和故障分析:通过可视化的日志收集系统,可以将大量的日志数据以易读的方式呈现出来。这使得开发人员、运维人员等可以更轻松地进行故障排查和故障分析。可视化日志可以帮助快速识别问题、找出异常模式,并加速解决问题的过程。

监控和警报:可视化的日志收集系统能实时监控应用程序、系统或网络的活动。通过对日志数据进行可视化,可以及时发现潜在的问题或异常情况,并触发相应的警报机制。

简述LPG

LPG(Loki、Promtail、Grafana)日志收集方案内存占用很少,经济且高效!它不像ELK日志系统那样为日志建立索引,而是为每个日志流设置一组标签。下面分别介绍下它的核心组件:

  1. Promtail:日志收集器,可以收集日志文件中的日志,并把收集到的数据推送到Loki中去。
  2. Loki:聚合并存储日志数据,可以作为Grafana的数据源,为Grafana提供可视化数据。
  3. Grafana:从Loki中获取日志信息,进行可视化展示。

环境准备

服务器上确保有网能够使用yum或apt命令这样能快速搭建LPG日志收集系统,还需要确保已经安装了docker容器(可以参考网上docker安装),这样你才能够使用docker命令安装。

参考Grafana的官网部署

官网部署loki+promtail地址;Install Loki with Docker or Docker Compose | Grafana Loki documentationicon-default.png?t=N7T8https://grafana.com/docs/loki/latest/setup/install/docker/

我们直接按照上述步骤三在Linux中进行安装部署Loki和Promtail

1.安装Loki

(1)下载Loki的配置文件

默认下载到你当前的目录,因此你想存放在其他目录建议先切换到你想要的目录下,然后下载。

wget https://raw.githubusercontent.com/grafana/loki/v2.9.1/cmd/loki/loki-local-config.yaml -O loki-config.yaml

选项 -O:重命名,将loki-local-config.yaml文件重命名为loki-config.yaml

(2)使用docker命名运行

docker run --name loki -d -v $(pwd):/mnt/config -p 3100:3100 grafana/loki:2.9.1 -config.file=/mnt/config/loki-config.yaml

 -v $(pwd):/mnt/config:将当前目录和Loki中容器的/mnt/config,挂载,也就是共享文件,即你删除宿主容器挂载目录下的文件,容器中的目录下对应文件也会删除。

-p 3100:3100:指定宿主器的端口和容器中的端口绑定(左边是宿主端口即服务器的端口,右边是容器端口)

-config.file:指定配置文件

说明:如果不需要先使用docker pull 去拉取镜像,因为使用docker run 命令的时候如果它发现没有这个镜像,它会自动下载对应你docker run 后面的镜像。比如,上述命令中我的镜像名称为grafana/loki:2.9.1 容器会自动下载对应的这个版本,并运行。

(3)Loki的配置(默认)

# 认证功能现在为false 即不需要进行身份验证就可以访问Loki。

auth_enabled: false

# 指定了Loki服务器监听的HTTP端口为3100,GRPC端口为9096

server:
  http_listen_port: 3100
  grpc_listen_port: 9096

# 通用配置项,其中包括了实例地址、存储路径前缀、文件系统存储的目录(用于存储Loki的日志数据块和规则文件)、复制因子、环形存储(Kvstore)类型等。

common:
  instance_addr: 127.0.0.1
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory

# 查询范围的配置,其中通过启用嵌入式缓存,可以将查询的结果缓存在内存中。max_size_mb表示缓存的最大容量为100MB。

query_range:
  results_cache:
    cache:
      embedded_cache:
        enabled: true
        max_size_mb: 100

# Loki的模式配置项,指定了从2020-10-24开始使用的配置。它使用boltdb-shipper作为存储引擎,filesystem作为对象存储类型,v11作为模式版本。prefix定义了索引文件的前缀,period定义了索引滚动的时间间隔为24小时。

schema_config:
  configs:
    - from: 2020-10-24
      store: boltdb-shipper
      object_store: filesystem
      schema: v11
      index:
        prefix: index_
        period: 24h

# 指定了Ruler(规则引擎)使用的Alertmanager的URL地址,用于发送警报通知。

ruler:
  alertmanager_url: http://localhost:9093

2.安装Promtail

(1)下载Promtail的配置文件

wget https://raw.githubusercontent.com/grafana/loki/v2.9.1/clients/cmd/promtail/promtail-docker-config.yaml -O promtail-config.yaml

(2)使用docker命名运行promtail

docker run --name promtail -d -v $(pwd):/mnt/config -v /var/log:/var/log --link loki grafana/promtail:2.9.1 -config.file=/mnt/config/promtail-config.yaml

 --link参数是用于链接两个容器,实现它们之间的网络通信。这里就是loki和promtail之间进行通信。

 (3)Promtail配置(默认)

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml
# 此处对应loki的服务地址,需要将此地址改为搭建服务的服务器地址
clients:
  - url: http://localhost:3100/loki/api/v1/push

scrape_configs:
# 此处对应grafana界面中的标签名
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      //这个对应日志存储路径,
      __path__: /var/log/*log

 3.安装Grafana

设置内存512,直接docker命令执行,它会下载最新的grafana的镜像,并运行容器

docker run -d --name grafana -p 3000:3000 -m 512m 

到此 LPG 的docker搭建就完成了。后面就测试。

测试并验证

1. 浏览器访问:服务器ip+3000 出现如下界面即为成功。

初始账号密码为admin/admin ,登录之后会让你重新设置密码,但时候就根据自己意愿设置想要的密码即可。

 2. 添加数据源

 

 配置url,此处的url为你搭建loki服务的服务器地址,端口默认3100

 如果出现如下错误 “Data source connected, but no labels received. Verify that Loki and Promtail are correctly configured ”

解决方案:就可能是Promtail中配置的日志路径,没有文件,随便加一个.log文件即可,我在/var/log/目录下添加了一个log文件之后,再点击Save&test 就成功了如下

3.验证测试

再工具栏的左侧点击Explore

如下图是匹配的结果,到此,即为验证成功。

喜欢的话就点个赞哟,这么详细的博主不多了了,是我的话一键三连。大家共同进步。

个人意见:docker部署LPG其实不适用于生产环境,适用于测试环境。

参考博客:Grafana loki部署及使用及问题处理方法(超详细)_LT_1029的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/m0_52985087/article/details/133275733