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

相关文章

Python中4大日志记录库比较的终极PK

《Python中4大日志记录库比较的终极PK》日志记录框架是一种工具,可帮助您标准化应用程序中的日志记录过程,:本文主要介绍Python中4大日志记录库比较的相关资料,文中通过代码介绍的非常详细,... 目录一、logging库1、优点2、缺点二、LogAid库三、Loguru库四、Structlogphp

python项目打包成docker容器镜像的两种方法实现

《python项目打包成docker容器镜像的两种方法实现》本文介绍两种将Python项目打包为Docker镜像的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录简单版:(一次成功,后续下载对应的软件依赖)第一步:肯定是构建dockerfile,如下:第二步

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

JAVA Log 日志级别和使用配置示例

《JAVALog日志级别和使用配置示例》本文介绍了Java中主流的日志框架,包括Logback和Log4j2,并详细解释了日志级别及其使用场景,同时,还提供了配置示例和使用技巧,如正确的日志记录方... 目录一、主流日志框架1. Logback (推荐)2. Log4j23. SLF4J + Logback

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

tomcat日志中文乱码问题及解决方案

《tomcat日志中文乱码问题及解决方案》文章主要介绍了在使用Tomcat时遇到的乱码问题及其解决方法,页面输出乱码可能由于server.xml配置、HTML标签、编程输出编码不一致引起,解决方法包括... 目录一、页面输出乱码1.server.XML配置未注明编码格式2.catalina.bawww.cp

Mysql利用binlog日志恢复数据实战案例

《Mysql利用binlog日志恢复数据实战案例》在MySQL中使用二进制日志(binlog)恢复数据是一种常见的用于故障恢复或数据找回的方法,:本文主要介绍Mysql利用binlog日志恢复数据... 目录mysql binlog核心配置解析查看binlog日志核心配置项binlog核心配置说明查看当前所

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock