摘要
我们先了解日志收集系统的作用
可视化的日志收集系统,故障排查和故障分析:通过可视化的日志收集系统,可以将大量的日志数据以易读的方式呈现出来。这使得开发人员、运维人员等可以更轻松地进行故障排查和故障分析。可视化日志可以帮助快速识别问题、找出异常模式,并加速解决问题的过程。
监控和警报:可视化的日志收集系统能实时监控应用程序、系统或网络的活动。通过对日志数据进行可视化,可以及时发现潜在的问题或异常情况,并触发相应的警报机制。
简述LPG
LPG(Loki、Promtail、Grafana)日志收集方案内存占用很少,经济且高效!它不像ELK日志系统那样为日志建立索引,而是为每个日志流设置一组标签。下面分别介绍下它的核心组件:
- Promtail:日志收集器,可以收集日志文件中的日志,并把收集到的数据推送到Loki中去。
- Loki:聚合并存储日志数据,可以作为Grafana的数据源,为Grafana提供可视化数据。
- Grafana:从Loki中获取日志信息,进行可视化展示。
环境准备
服务器上确保有网能够使用yum或apt命令这样能快速搭建LPG日志收集系统,还需要确保已经安装了docker容器(可以参考网上docker安装),这样你才能够使用docker命令安装。
参考Grafana的官网部署
官网部署loki+promtail地址;Install Loki with Docker or Docker Compose | Grafana Loki documentationhttps://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: 0positions:
filename: /tmp/positions.yaml
# 此处对应loki的服务地址,需要将此地址改为搭建服务的服务器地址
clients:
- url: http://localhost:3100/loki/api/v1/pushscrape_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其实不适用于生产环境,适用于测试环境。