PLG日志系统(docker)

2023-11-30 02:20
文章标签 系统 日志 docker plg

本文主要是介绍PLG日志系统(docker),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

PLG日志系统具有轻量化,部署简单,配置单一,浪费资源少等优势,模块组成由Prontaik+Loki+Grafaba组成。
Promtail

Promtail 是代理,负责收集日志并将其发送给loki。对标ELK中的Logstash。
Promtail是一个日志收集的代理,它的主要工作模式是发现存储在磁盘上的日志文件,并将其与一组标签关联的日志文件转发到 Loki,它通常部署到需要监视应用程序的每台机器/容器上。Promtail主要是用来发现目标、将标签附加到日志流以及将日志推送到Loki。截止到目前,Promtail可以跟踪两个来源的日志:本地日志文件和systemd日志(仅支持AMD64架构)

Loki

Loki 是主服务器,负责存储日志和处理查询。对标ELK中的ElasticSearch。
Loki是一组可以组成一个功能齐全的日志堆栈组件,与其它日志系统不同的是,Loki只建立日志标签的索引而不索引原始日志消息,为日志数据设置一组标签,这意味着Loki的运营成本更低,效率也能提高几个数量级

Grafana

Grafana提供用户界面。对标ELK中的Kibana
Grafana是一款开源的可视化和分析软件,它允许用户查询、可视化、警告和探索监控指标。Grafana主要提供时间序列数据的仪表板解决方案,支持超过数十种数据源

处理流程

在这里插入图片描述

服务部署

  • 服务端部署
  1. 创建yml文件
    vim /data/plg/docker-compose.yml
version: "3"networks:loki:services:loki:image: grafana/loki:2.6.1container_name: PLG_lokirestart: unless-stoppedports:- "3100:3100"volumes:- /data/plg/etc/loki:/etc/loki- /data/plg/data/loki:/lokicommand: -config.file=/etc/loki/local-config.yamlnetworks:- lokipromtail:image: grafana/promtail:2.6.1container_name: PLG_promtailrestart: unless-stoppedvolumes:- /data/cc/logs/:/161/                 #映射日志文件目录- /data/plg/etc/promtail:/etc/promtailcommand: -config.file=/etc/promtail/config.ymlnetworks:- lokigrafana:image: grafana/grafana:latestcontainer_name: PLG_grafanarestart: unless-stoppedports:- "3000:3000"volumes:#- /data/plg/etc/grafana/grafana.ini:/etc/grafana/grafana.ini- /data/plg/data/grafana/:/var/lib/grafana/- /data/plg/logs/grafana:/var/log/grafanaenvironment:- GF_SECURITY_ADMIN_USER=admin            #设置用户名admin- GF_SECURITY_ADMIN_PASSWORD=Weihu12345   #设置密码(不设置默认admin/admin)networks:- loki
  1. 编写配置文件
  • loki

vim /data/plg/etc/loki/local-config.yaml

auth_enabled: false       #启用认证server:http_listen_port: 3100    #监听端口common:path_prefix: /loki   #数据目录storage:filesystem:chunks_directory: /loki/chunksrules_directory: /loki/rulesreplication_factor: 1    #副本数量,测试的情况下或者日志本身并不具备高数据安全要求的情况下就设置为1就好ring:kvstore:store: inmemoryschema_config:configs:- from: 2020-10-24store: boltdb-shipperobject_store: filesystemschema: v11index:prefix: index_period: 24h
limits_config:# 这部分配置是为了增加日志采集的限制,默认的限制是很小的,很容易触发报错#   # 需要注意的是,报错本身只是会丢日志,不会导致采集器或者loki宕机enforce_metric_name: falsereject_old_samples: truereject_old_samples_max_age: 168hingestion_rate_mb: 40       #修改每用户摄入速率限制,即每秒样本量,默认值为4Mingestion_burst_size_mb: 20  #修改每用户摄入速率限制,即每秒样本量,默认值为6M
chunk_store_config:#max_look_back_period: 168h   #回看日志行的最大时间,只适用于即时日志max_look_back_period: 0stable_manager:retention_deletes_enabled: true #日志保留周期开关,默认为falseretention_period: 128h  #日志保留周期#配置alertmanager地址
ruler:alertmanager_url: http://192.168.0.161:9093# By default, Loki will send anonymous, but uniquely-identifiable usage and configuration
# analytics to Grafana Labs. These statistics are sent to https://stats.grafana.org/
#
# Statistics help us better understand how Loki is used, and they show us performance
# levels for most users. This helps us prioritize features and documentation.
# For more information on what's sent, look at
# https://github.com/grafana/loki/blob/main/pkg/usagestats/stats.go
# Refer to the buildReport method to see what goes into a report.
#
# If you would like to disable reporting, uncomment the following lines:
#analytics:
#  reporting_enabled: false
  • promtail

vim /data/plg/etc/promtail/config.yml

server:http_listen_port: 9080    #http监听端口grpc_listen_port: 0positions:filename: /etc/promtail/positions.yaml     #配置文件位置clients:- url: http://192.168.0.161:3100/loki/api/v1/push     #Loki服务器推送地址scrape_configs:
#多个日志目录配置多个job项
- job_name: obc-161-*log           #job名称,相当于elk的索引static_configs:- targets:- localhost                  #日志存放主机Loki地址labels:job: obclog-161-*log         #标签__path__: /161/obc/*.log     #日志位置不支持下级目录,支持同级多个目录例如:/data/{A,B,C}/*log

3.启动服务

docker-compose -f /data/plg/docker-compose.yml up -d

4.Grafana接入Loki数据源

  • 添加loki数据源
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 搜索日志
    在这里插入图片描述

这篇关于PLG日志系统(docker)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/435252

相关文章

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置