JAVA使用Grafana和Loki抓取聚合日志

Grafana和Loki抓取聚合日志

适用范围

  • Grafana是日志看板
  • Loki是Grafana的一个插件用于收集日志
  • promtail是Loki配套的抓取工具,放在目标服务器抓取日志

配置

  1. 日志服务器安装Grafana,傻瓜式下一步
  2. 日志服务器启动Loki(loki-windows-amd64.exe)
    在这里插入图片描述
    控制台CMD输入启动语句:
.\loki-windows-amd64.exe --config.file=loki-local-config.yaml
  • loki-local-config.yaml配置文件:
auth_enabled: false
 
server: 
   http_listen_port: 3100
 
ingester: 
  lifecycler: 
    address: 127.0.0.1
    ring:
      kvstore: 
        store: inmemory
      replication_factor: 1
    final_sleep: 0s
  chunk_idle_period: 5m
  chunk_retain_period: 30s
  max_transfer_retries: 0
 
schema_config: 
  configs: 
    - from: 2022-02-15
      store: boltdb
      object_store: filesystem
      schema: v11
      index: 
        prefix: index_
        period: 168h
 
storage_config: 
  boltdb: 
    directory: /tmp/loki/index
 
  filesystem: 
    directory: /tmp/loki/chunks
 
limits_config: 
  enforce_metric_name: false
  reject_old_samples: true
  reject_old_samples_max_age: 168h
 
chunk_store_config: 
  max_look_back_period: 0s
 
table_manager: 
  retention_deletes_enabled: false
  retention_period: 0s

说明:http_listen_port: 3100:Loki端口3100,意思就是抓取软件把日志发送到Loki,Loki其实是一个服务端程序,Loki可以接受多个抓取端(promtail-windows-amd64.exe)的发送

  1. 配置Loki
  • 在Grafana中配置Loki
  • 浏览器打开 127.0.0.1:3000
    左右菜单->Connections->Data sources->Add new connection->找到Loki->配置Loki服务地址127.0.0.1:3100
    在这里插入图片描述
    点击最下面save &text,如果出现提示,意思是抓取软件未配置,现在保存,之后配置抓取即可
  1. 开放服务器端口
    Grafana端口是3000,Loki端口是3100,分别打开防火墙开发给外网。
  2. 目标服务器配置抓取软件promtail
    在这里插入图片描述
    CMD启动:
.\promtail-windows-amd64.exe --config.file=promtail-local-config.yaml
  • promtail-local-config.yaml
server: 
  http_listen_port: 9080
  grpc_listen_port: 0
 
positions: 
  filename: /tmp/positions.yaml
 
clients: 
  - url: http://127.0.0.1:3100/loki/api/v1/push
 
scrape_configs: 
#第1个监控日志目录
- job_name: job1
  static_configs: 
  - targets:
      - 127.0.0.1
    labels: 
      job: the_job1
      __path__: C:\Users\*.log
#第2个监控日志目录      
- job_name: job2
  static_configs: 
  - targets:
      - 127.0.0.1
    labels: 
      job: the_job2
      __path__: C:\ABC\*.log

说明:url: http://127.0.0.1:3100/loki/api/v1/push:修改成Loki所在日志服务器地址
可以配置多个抓取地址,分别命名即可
6. Grafana中查看日志
菜单->探索->选择抓取上设置的job名称,配置过滤字段(可以不填)->点击run query
在这里插入图片描述

常见问题

  1. 抓取软件promtail打开异常:看看日志服务器防火墙有没有放出端口
  2. Grafana显示的是全英文:配置中选择中文语言
  3. RUN后什么都没有:看看job名字有没有正确,路径是否正确
  4. 一条日志分多行显示:配置log4j2日志格式,不要换行
//使用replace替换换行符\r\n
//原默认配置:(大概第六行)
<property name="log.layout">[%d{HH:mm:ss:SSS}] [%p] %c{1} - %t%n</property>
//修改后配置:
<property name="log.layout">[%d{HH:mm:ss:SSS}] [%p] %c{1} - %replace{%m}{[\r\n]+}{~~}%n</property>
  1. 日志出现中文乱码:配置log4j2使用utf-8输出日志
//在log4j2中PatternLayout后添加:charset="UTF-8" 

<RollingFile name="artery-info" fileName="${logbasedir}/artery-info.log" filePattern="${logbasedir}/%d{yyyy-MM-dd}/artery-info-%i.log">
	<Filters>
		<ThresholdFilter level="INFO" />
		<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL" />
	</Filters>
	<PatternLayout charset="UTF-8" pattern="${log.layout}" />
	<Policies>
		<TimeBasedTriggeringPolicy />
		<SizeBasedTriggeringPolicy size="100 MB" />
	</Policies>
</RollingFile>

参考文章

  • https://blog.csdn.net/q1564/article/details/82986983
  • https://www.saoniuhuo.com/question/detail-2167512.html
  • https://blog.csdn.net/cainiaosl/article/details/122514287
  • https://blog.csdn.net/JineD/article/details/127092849
  • https://blog.csdn.net/yucaifu1989/article/details/125018248
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值