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容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c