日志"/>
JAVA使用Grafana和Loki抓取聚合日志
Grafana和Loki抓取聚合日志
- 适用范围
- 配置
- 常见问题
- 参考文章
适用范围
- Grafana是日志看板
- Loki是Grafana的一个插件用于收集日志
- promtail是Loki配套的抓取工具,放在目标服务器抓取日志
配置
- 日志服务器安装Grafana,傻瓜式下一步
- 日志服务器启动Loki(loki-windows-amd64.exe)
控制台CMD输入启动语句:
.\loki-windows-amd64.exe --config.file=loki-local-config.yaml
- loki-local-config.yaml配置文件:
auth_enabled: falseserver: http_listen_port: 3100ingester: lifecycler: address: 127.0.0.1ring:kvstore: store: inmemoryreplication_factor: 1final_sleep: 0schunk_idle_period: 5mchunk_retain_period: 30smax_transfer_retries: 0schema_config: configs: - from: 2022-02-15store: boltdbobject_store: filesystemschema: v11index: prefix: index_period: 168hstorage_config: boltdb: directory: /tmp/loki/indexfilesystem: directory: /tmp/loki/chunkslimits_config: enforce_metric_name: falsereject_old_samples: truereject_old_samples_max_age: 168hchunk_store_config: max_look_back_period: 0stable_manager: retention_deletes_enabled: falseretention_period: 0s
说明:http_listen_port: 3100
:Loki端口3100,意思就是抓取软件把日志发送到Loki,Loki其实是一个服务端程序,Loki可以接受多个抓取端(promtail-windows-amd64.exe)的发送
- 配置Loki
- 在Grafana中配置Loki
- 浏览器打开 127.0.0.1:3000
左右菜单->Connections->Data sources->Add new connection->找到Loki->配置Loki服务地址127.0.0.1:3100
点击最下面save &text,如果出现提示,意思是抓取软件未配置,现在保存,之后配置抓取即可
- 开放服务器端口
Grafana端口是3000,Loki端口是3100,分别打开防火墙开发给外网。 - 目标服务器配置抓取软件promtail
CMD启动:
.\promtail-windows-amd64.exe --config.file=promtail-local-config.yaml
- promtail-local-config.yaml
server: http_listen_port: 9080grpc_listen_port: 0positions: filename: /tmp/positions.yamlclients: - url: http://127.0.0.1:3100/loki/api/v1/pushscrape_configs:
#第1个监控日志目录
- job_name: job1static_configs: - targets:- 127.0.0.1labels: job: the_job1__path__: C:\Users\*.log
#第2个监控日志目录
- job_name: job2static_configs: - targets:- 127.0.0.1labels: job: the_job2__path__: C:\ABC\*.log
说明:url: http://127.0.0.1:3100/loki/api/v1/push
:修改成Loki所在日志服务器地址
可以配置多个抓取地址,分别命名即可
6. Grafana中查看日志
菜单->探索->选择抓取上设置的job名称,配置过滤字段(可以不填)->点击run query
常见问题
- 抓取软件promtail打开异常:看看日志服务器防火墙有没有放出端口
- Grafana显示的是全英文:配置中选择中文语言
- RUN后什么都没有:看看job名字有没有正确,路径是否正确
- 一条日志分多行显示:配置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>
- 日志出现中文乱码:配置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>
参考文章
- .html
更多推荐
JAVA使用Grafana和Loki抓取聚合日志
发布评论