基于promtail+loki+grafana搭建日志系统

devtools/2024/11/14 7:18:03/

文章目录

    • Promtail
      • 安装promtail
      • 创建配置文件
      • 创建systemd 服务文件
      • 启动promtail服务
    • loki
      • 下载loki服务
      • 创建config.yml文件
      • 创建systemd服务文件
      • 启动loki
    • grafana

本文基于promtail+loki+grafana+prometheus(可选)
搭建一个轻量快速的日志系统,集成了日志收集、查询、监控error、做可视化dasborad的日志系统

Promtail

安装在产生日志的服务器上

安装promtail

安装promtail包
解压
创建config.yml文件

curl -O -L "https://github.com/grafana/loki/releases/download/v2.9.1/promtail-linux-amd64.zip"
apt install unzip
unzip promtail-linux-amd64.zip
chmod +x promtail-linux-amd64
sudo mv promtail-linux-amd64 /usr/local/bin/promtail
cd /etc
mkdir promtail
cd promtail
vim config.yml

创建配置文件

config.yml

server:http_listen_port: 9080grpc_listen_port: 0positions:filename: /var/log/positions.yamlclients:- url: http://{收集日志loki服务器ip}/loki/api/v1/pushbatchsize: 1048576batchwait: 5sscrape_configs:- job_name: systemstatic_configs:- targets:- localhostlabels:job: job_name # 该日志的标签名__path__: /data/log # 需要监控传输的日志文件

注意loki的url,如果配置了nginx,注意nginx转发问题

创建systemd 服务文件

vim /etc/systemd/system/promtail.service

promtail.service

[Unit]
Description=Promtail service
After=network.target[Service]
Type=simple
ExecStart=/usr/local/bin/promtail -config.file /etc/promtail/config.yml	# promtail的config配置文件路径
Restart=on-failure
MemoryLimit=128M[Install]
WantedBy=multi-user.target

启动promtail服务

systemctl daemon-reload
systemctl start promtail
systemctl enable promtail
systemctl status promtail 查看状态
# systemctl restart promtail 重启服务
# journalctl -u promtail.service -f 查看启动日志

loki_76">loki

存储日志的数据库,接收promtail传输过来的日志数据,自带高效存储,定时删除等功能

loki_79">下载loki服务

去到需要收集日志的服务器上

curl -O -L "https://github.com/grafana/loki/releases/download/v2.9.1/loki-linux-amd64.zip"
unzip loki-linux-amd64.zip
chmod +x loki-linux-amd64
sudo mv loki-linux-amd64 /usr/bin/loki
#apt-get update
#apt-get install loki promtail

创建config.yml文件

cd /etc
mkdir loki
cd loki
vim config.yml

config.yml

auth_enabled: falseserver:http_listen_port: 3100grpc_listen_port: 9096common:instance_addr: 127.0.0.1path_prefix: /tmp/loki	# loki的存储目录storage:filesystem:chunks_directory: /tmp/loki/chunksrules_directory: /tmp/loki/rulesreplication_factor: 1ring:kvstore:store: inmemoryquery_range:align_queries_with_step: true # 启用后,查询会对齐到步长边界,有助于提高缓存命中率。max_retries: 5 # 查询失败时的最大重试次数。增加重试次数可以提高查询成功率,但也可能增加查询时间。results_cache:cache:embedded_cache:enabled: truemax_size_mb: 100schema_config:configs:- from: 2020-10-24store: boltdb-shipperobject_store: filesystemschema: v11index:prefix: index_period: 24hruler:alertmanager_url: http://localhost:9093limits_config:max_query_parallelism: 16. # 允许并行执行的最大查询数。增加这个值可以提高查询性能,但会增加服务器负载。split_queries_by_interval: 15m #将查询按指定时间间隔拆分,以提高查询效率和性能ingestion_rate_mb: 4  # 每秒最大摄取速率(MB)ingestion_burst_size_mb: 6  # 突发摄取速率(MB)max_streams_per_user: 1000  # 每用户最大流数table_manager:retention_deletes_enabled: trueretention_period: 15d    # 日志保留 15天

创建systemd服务文件

vim /etc/systemd/system/loki.service
loki.service

[Unit]
Description=Loki service
After=network-online.target
Wants=network-online.target[Service]
Type=simple
User=loki
ExecStart=/usr/bin/loki -config.file /etc/loki/config.yml # loki的config配置文件路径
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec = 120
Restart = on-failure
RestartSec = 2
MemoryLimit=512M #内存大小限制[Install]
WantedBy=multi-user.target

loki_172">启动loki

注意创建好对应的loki用户,以及nginx配置
useradd -r -s /sbin/nologin loki

systemctl daemon-reload
systemctl start loki
systemctl enable loki
systemctl status loki 查看状态
# systemctl restart loki 重启服务
# journalctl -u loki.service -f 查看启动日志

grafana_184">grafana

连接loki日志数据库,基于loki的数据库做可视化报表以及监控告警等

grafana_186">下载grafana

后面再更新


http://www.ppmy.cn/devtools/132787.html

相关文章

ReactPress系列—Next.js 的动态路由使用介绍

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议,感谢Star。 Next.js 的动态路由使用介绍 Next.js 是一个流行的 React 框架,支持服务端渲染、静态站点生成和动态路由等功能,极大地简化…

python 爬虫 入门 六、Selenium

Selenium本来是一个自动测试工具,用于模拟用户对网站进行操作。在爬虫领域也有其用处。 一、下载安装Selenium及附属插件 pip install Selenium 安装完成后还需要安装一个浏览器驱动,来让python能启动浏览器。 如果是Edge或者其他基于Chromium的浏览器…

chrony服务器(linux)

简介 重要性 由于IT系统中,准确的计时非常重要,有很多种原因需要准确计时: 在网络传输中,数据包括和日志需要准确的时间戳 各种应用程序中,如订单信息,交易信息等 都需要准确的时间戳 Linux的两个时钟 …

布谷直播系统开发运营推广代理后台功能分析

布谷直播系统开发代理后台: 1、代理分为三级(平台本身除外)平台可以添加运营中心,代理(二级)和经纪人(三级) 2、平台可以看到所有的信息,包括修改下面运营中心、代理、经…

『Django』初识DRF

点赞 + 关注 + 收藏 = 学会了 本文简介 上一讲《『Django』初识前后端分离》https://mp.weixin.qq.com/s/kvhX8pePKbrS7z9fncT0mA 介绍了在 Django 中如何给前端写接口。如果有跟着动手做的工友一定会发现,这样写接口实在太麻烦了,还容易出错。显然大家都意识到这个问题,于…

科研绘图系列:R语言文章组合图形(barplot scatterplot)

文章目录 介绍加载R包数据下载清理环境设置计算资源数据处理图1图2图3图4图5图6图7图8图9系统信息介绍 R语言组合图形 加载R包 library(xlsx) library(reshape2) library(ggplot2) library(ggh4x) library(wbstats

阐述对于鸿蒙生态未来的发展趋势的看法

鸿蒙生态(HarmonyOS)是由华为推出的一个全新的操作系统,旨在实现不同设备间的无缝连接和协同。以下是一些对鸿蒙生态未来发展趋势的看法: 1.**多设备协同**:鸿蒙生态的一个核心特点是多设备协同,能够实现手…

2024系统分析师---统一过程(淘宝押题)

2019年3月,我参加了某市供电公司《电力营销管理信息系统》的开发工作,并担任系统架构师一职,主要负责系统分析和架构设计。该系统包括业扩管理、计量管理、电量电费核算管理、收费与账户管理、线损管理等五个模块。系统采用了 Struts+Spring+Hibernate 的主流 Web 应用框架,降…