我有一个 json 格式的日志文件(由 logback 生成但不相关),它有两种不同的消息类型:
452 {
453 "timestamp" : "2022-10-25 14:37:50.389",
454 "level" : "INFO",
455 "thread" : "http-nio-38080-exec-10",
456 "logger" : "aaa.bbb.LogClass",
457 "message" : "{\"methodName\":\"POST\",\"requestUri\":\"/api/v1/config/\",\"requestPayload\":11901,\"responseCode\":201,\"responseLenght\":2,\"time\":1666708670389,\"timeTaken\":37}",
458 "context" : "default"
459 }{
460 "timestamp" : "2022-10-25 15:48:08.671",
461 "level" : "INFO",
462 "thread" : "SpringContextShutdownHook",
463 "logger" : "com.zaxxer.hikari.HikariDataSource",
464 "message" : "HikariPool-1 - Shutdown initiated...",
465 "context" : "default"
466 }
我从文档中了解到,您可以将文件拆分多次,所以我明白一定可以序列化不同的消息,对吧?这是我的 promtail 配置。
scrape_configs:
- job_name: Promtail
pipeline_stages:
- json:
expressions:
timestamp:
level:
thread:
logger:
message:
context:
- json:
expressions:
methodName:
requestPayload:
responseCode:
responseLenght:
time:
timeTaken:
source: message
static_configs:
- targets:
- localhost
labels:
job: varlogs
host: yourhost
__path__: /var/log/*.log
- job_name: Promtail2
pipeline_stages:
- json:
expressions:
timestamp:
level:
thread:
logger:
message:
context:
static_configs:
- targets:
- localhost
labels:
job: varlogs2
host: yourhost
__path__: /var/log/*.log
另一个选择是,将其倒入不同的文件中?然后我可以将它与 grafana 中的查询放在一起?
尝试做类似的事情,但使用来自 Java/Go 的日志,因为它们是不同的。我想刮掉它们并使它们看起来相似,这样我就可以在 Grafana/Loki 中查询它们。可以