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

相关文章

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文