方式有很多,以下是我学习中自己写的。
要被采集的日志:
{"time":"2023-02-07T10:11:20+08:00","type":"info","msg":"{\"business\":\"elk\",\"module\":\"demo\",\"action\":\"test\",\"level\":\"info\",\"date\":\"2023-02-07 10:11:20\",\"second\":\"0.899408\",\"data\":{\"id\":233,\"name\":\"张三\",\"gender\":24,\"phone\":13511112222}}"}
[2023-02-07T10:11:39+08:00][info] {"business":"elk","module":"demo","action":"test","level":"info","date":"2023-02-07 10:11:39","second":"0.493702","data":{"id":233,"name":"张三","gender":24,"phone":13511112222}}
两条不同格式的日志是为了测试不同格式的采集方式
第一条是纯json格式日志
第二条是ThinkPHP6的默认日志格式,符合大多数的日志格式
在ElasticSearch创建pipeline(管道):
在“Kibana->Stack Management->采集管道->创建管道”
或者
在“Kibana->开发工具->控制台”运行以下代码
PUT _ingest/pipeline/elk-test-pipeline
{
"description" : "解析混合日志",
"processors" :
[{
"grok": {
"field": "message",
"description": "正常日志格式解析",
# grok表达式,注意空格
"patterns": ["\\[%{TIMESTAMP_ISO8601:time}\\]\\[%{LOGLEVEL:type}\\] %{GREEDYDATA:msg}"],
# 出错时增加该字段,方便筛查是否出错了
"on_failure": [
431




被折叠的 条评论
为什么被折叠?



