当前位置: 首页 > article >正文

Prometheus+Grafana搭建日志采集

介绍

一、什么是日志数据采集

日志数据采集是指通过各种手段获取应用程序运行时产生的各类日志信息,并将这些信息存储到特定的地方,以便后续分析和使用。通常情况下,这些日志信息包括系统运行状态、错误信息、用户操作记录等等。通过对这些信息的统计和分析,可以有效地监控应用程序的运行状况,及时发现和解决问题。

二、为什么需要进行日志数据采集

对于企业应用系统而言,日志数据采集至关重要。首先,在应用程序出现问题时,通过查看相关日志信息可以快速定位原因,并进行相应处理。其次,在系统运行期间,通过对日志信息的统计和分析,可以发现系统存在的潜在问题,进而进行优化和改进。此外,对于一些业务场景,如在线广告、电商等,日志数据采集更是必不可少,它可以帮助企业更好地了解用户行为、偏好等信息,从而提升营销效果和用户体验。

三、常见的日志采集方案

在这里插入图片描述

方案介绍

• Promtail 是日志收集器,负责收集应用的日志并发送给 Loki。
• Loki 用于日志的存储和解析,并提供查询 API 给下游展示。
• Grafana 负责将 Loki 的日志可视化
在这里插入图片描述

Grafana搭建

之前写过,见文章:Prometheus+Grafana搭建

Loki安装

下载

https://github.com/grafana/loki/releases

#规划:安装在/usr/local下面,数据放在/data下
#以root账号,在/usr/local创建文件夹loki,并将安装包放置在此目录下
mkdir loki
#新建存储路径,数据放在/data下
mkdir  /data
mkdir  /data/loki
mkdir  /data/loki/{chunks,index}
#将安装包loki-linux-amd64.zip移动到/usr/local下,解压
unzip loki-linux-amd64.zip
#解压后重新生成文件夹loki-linux-amd64 ,将文件移动到loki目录下
mv loki-linux-amd64 /usr/local/loki/

在/usr/local/loki目录下,修改配置,如没有则新增
vi config.yaml

#在编辑页面可以插入下述脚本,可自行调整部分配置
auth_enabled: false
server:
  http_listen_port: 3100
ingester:
  lifecycler:
    address: xx.xx.xx.xx #ip地址
    ring:
      kvstore:
        store: inmemory
      replication_factor: 1
    final_sleep: 0s
  chunk_idle_period: 5m
  chunk_retain_period: 30s
 
schema_config:
  configs:
  - from: 2022-07-01
    store: boltdb
    object_store: filesystem
    schema: v11
    index:
      prefix: index_
      period: 168h   #每张表的时间范围7天
 
storage_config:
  boltdb:
    directory: /data/loki/index   #索引文件存储地址
 
  filesystem:
    directory: /data/loki/chunks  #块存储地址
 
limits_config:
  enforce_metric_name: false
  reject_old_samples: true
  reject_old_samples_max_age: 168h
chunk_store_config:
#最大可查询历史日期 28天,这个时间必须是schema_config中的period的倍数,否则报错。
  max_look_back_period: 672h
#表的保留期28天
table_manager:
  retention_deletes_enabled: true
  retention_period: 672h

#启动服务
nohup ./loki-linux-amd64 -config.file=./config.yaml >./loki.log 2>&1 &
#设置开机自启动
cd /etc/systemd/system/
vi loki.service

#可复制下述页面,调整文件路径即可
[Unit]
Description=loki
After=network.target 

[Service]
ExecStart=/usr/local/loki/loki-linux-amd64 \
        -config.file=/usr/local/loki/config.yaml &>> /usr/local/loki/loki.log
Restart=on-failure

[Install]
WantedBy=multi-user.target

设置自启动

systemctl daemon-reload

启动服务

systemctl start loki #systemctl stop loki systemctl restart loki

查看启动结果

systemctl status loki

加入开机自启动

systemctl enable loki

部署promtail

需要到日志采集端部署

下载

wget https://github.com/grafana/loki/releases/download/v2.8.0/promtail-linux-amd64.zip
#规划:安装在/usr/local下面
#以root账号,在/usr/local创建文件夹promtail,并将安装包放置在此目录下
mkdir promtail
#将安装包promtail-linux-amd64.zip移动到/usr/local下,解压
unzip promtail-linux-amd64.zip
#解压后重新生成文件夹promtail-linux-amd64 ,将文件移动到promtail目录下
mv promtail-linux-amd64  /usr/local/promtail/

在/usr/local/promtail目录下,修改配置,如没有则新增
vi promtail.yaml

#在编辑页面可以插入下述脚本,可自行调整部分配置
server:
  http_listen_port: 9080
  grpc_listen_port: 0
 
positions:
  filename: ./positions.yaml
 
clients:
  - url: http://xx.xx.xx.xx:3100/loki/api/v1/push   #loki地址,xx是ip地址
 
scrape_configs:
##jobname
 - job_name: centername                         #jobname
   static_configs:
   - targets: 
       - xx.xx.xx.xx                           #xx是ip地址
   - labels:
      job: centername                          #jobname
      host: xx.xx.xx.xx                        #xx是ip地址
      __path__: /home/script/log/*.log        #监控的日志地址,你们根据具体情况选择自己的路径

Promtail默认端口是9080,启动完成后,可以采用上边的方式查看进程是否启动成功

nohup ./promtail-linux-amd64 -config.file=promtail-local-config.yaml > promtail.log 2>&1 &

同样按照上面loki自启动的写法,也可以加入自启动中去

Grafana展示

模版导入

配置Loki数据源,导入监控模版 13639
在这里插入图片描述


http://www.kler.cn/news/155996.html

相关文章:

  • Langchain-Chatchat的安装过程
  • C++基础 -35- string类
  • 操作系统·存储器管理
  • 亚信科技AntDB数据库完成中国信通院数据库迁移工具专项测试
  • unordered_map与unordered_set的实现(含迭代器)
  • go使用aes加密算法
  • 【ArcGIS Pro微课1000例】0043:深度学习--框架库安装
  • 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(3)路由导航卫士、主页实现
  • Jupyter NoteBook未授权访问漏洞
  • 2024年天津财经大学珠江学院专升本专业课报名缴费操作流程
  • KALI LINUX入门
  • LC-1423. 可获得的最大点数(子数组和、枚举)
  • 牛客在线编程(SQL大厂面试真题)
  • 抓取检测(Grasp Dection)
  • U盘不仅能在电脑上使用,在手机上也可使用,包括安卓和苹果手机,但苹果的较特殊
  • 二叉树k层的叶子结点个数
  • 【Qt开发流程】之自定义语法高亮和使用HTML语法
  • Proteus仿真--基于ADC0832设计的两路电压表
  • Mongodb安装及其使用
  • Linux 基本语句_14_信号灯实验
  • Hdoop学习笔记(HDP)-Part.06 安装OracleJDK
  • 【Java基础系列】BigDecimal入门
  • GB/T 37380-2019抗污易洁涂膜玻璃检测
  • Paxos 算法
  • 算法通关村第十六关-白银挑战滑动窗口经典题目
  • 第十七章 其他-rpc、rabbitmq(如何对消息做持久化、如何控制消息被消费的顺序)、celery(应用场景、运行机制、如何实现定时任务)
  • postgres在docker中使用
  • LeetCode刷题---反转链表
  • SCAU:链表创建与插入结点(填空)
  • word表格图片批处理参考程序