四、日志收集loki+ promtail+grafana

一、简介

Loki是受Prometheus启发由Grafana Labs团队开源的水平可扩展,高度可用的多租户日志聚合系统。 开发语言: Google Go。它的设计具有很高的成本效益,并且易于操作。使用标签来作为索引,而不是对全文进行检索,也就是说,你通过这些标签既可以查询日志的内容也可以查询到监控的数据签,极大地降低了日志索引的存储。系统架构十分简单,由以下3个部分组成 :

Loki 是主服务器,负责存储日志和处理查询 ;

promtail 是代理,负责收集日志并将其发送给 loki ;

Grafana 用于 UI 展示;

只要在应用程序服务器上安装promtail来收集日志然后发送给Loki存储,就可以在Grafana UI界面通过添加Loki为数据源进行日志查询(如果Loki服务器性能不够,可以部署多个Loki进行存储及查询)。作为一个日志系统不光只有查询分析日志的能力,还能对日志进行监控和报警。

promtail收集并将日志发送给loki的 Distributor 组件 Distributor会对接收到的日志流进行正确性校验,并将验证后的日志分批并行发送到Ingester Ingester 接受日志流并构建数据块,压缩后存放到所连接的存储后端 Querier 收到HTTP查询请求,并将请求发送至Ingester 用以获取内存数据 ,Ingester 收到请求后返回符合条件的数据 ; 如果 Ingester 没有返回数据,Querier 会从后端存储加载数据并遍历去重执行查询 ,通过HTTP返回查询结果

二、下载安装
1.下载
复制代码
https://github.com/grafana/loki/releases
loki-linux-amd64.zip
promtail-linux-amd64.zip
2.创建目录并解压
复制代码
mkdir loki
cd loki
mkdir chunks
mkdir index
unzip loki-linux-amd64.zip
3.创建配置文件vim config.yaml
复制代码
# This is a complete configuration to deploy Loki backed by the filesystem.
# The index will be shipped to the storage via tsdb-shipper.

auth_enabled: false

server:
  http_listen_port: 3100

common:
  ring:
    instance_addr: 172.17.0.122
    kvstore:
      store: inmemory
  replication_factor: 1
  path_prefix: /data/prometheus/loki

schema_config:
  configs:
  - from: 2024-07-10
    store: tsdb
    object_store: filesystem
    schema: v13
    index:
      prefix: index_
      period: 24h

storage_config:
  filesystem:
    directory: /data/prometheus/loki/chunks
4.启动Loki:
复制代码
nohup loki-linux-amd64 -config.file=config.yaml >loki.log 2>&1 &
5.应用服务器安装promtail
复制代码
mkdir promtail
unzip promtail-linux-amd64.zip
6.创建配置文件vim promtail.yaml
复制代码
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: ./positions.yaml

clients:
  - url: http://172.17.0.122:3100/loki/api/v1/push

scrape_configs:
 - job_name: ehr
   static_configs:
   - targets:
       - 172.17.0.112
   - labels:
      job: ehr
      host: 172.17.0.112
      __path__: /data/ehr/output.log #应用服务日志
7.启动promtail
复制代码
nohup ./promtail-linux-amd64 -config.file=./promtail.yaml > ./promtail.log 2>&1 &
8.grafana操作
复制代码
连接-》数据源-》添加新数据源-》选择loki-》填写loki地址并保存-》数据源列表loki点击Explore-》label fiters下选择job以及promtail中的job_name-》右上角运行查询

之后可导入仪表板进行查看

相关推荐
Connie145120 小时前
记一次K8s故障告警排查(Grafna告警排查)
云原生·容器·kubernetes·grafana
3***16102 天前
【监控】Spring Boot+Prometheus+Grafana实现可视化监控
spring boot·grafana·prometheus
努力发光的程序员3 天前
互联网大厂Java面试场景:微服务与Spring Cloud技术点解析
spring cloud·grafana·prometheus·微服务架构·jwt·api网关·jaeger
天生励志1235 天前
【Linux系统运维】软件安装部署实战--软件安装4-运维监控
运维·zabbix·grafana
DreamLife☼7 天前
Docker-日志与监控:集中采集与性能分析实战
docker·grafana·efk·可观测性·容器监控·cadvisor·prometheus 监控
心一信息9 天前
通过 Grafana 与 Zabbix 实现水暖 / 空调系统控制的详细步骤
zabbix·grafana
yunson_Liu9 天前
grafana+alertmanager配置sendgrid发送邮箱提示
grafana
siriuuus9 天前
Ubuntu Zabbix 安装部署及简单使用
zabbix·grafana
q***483112 天前
【监控】Spring Boot+Prometheus+Grafana实现可视化监控
spring boot·grafana·prometheus
时空无限12 天前
grafana 切换 org 导致的页面跳转不可访问处理
grafana