本文主要是介绍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主要提供时间序列数据的仪表板解决方案,支持超过数十种数据源
处理流程
服务部署
- 服务端部署
- 创建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
- 编写配置文件
- 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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!