据我所知,没有模式或内置可以直接解析 Django 异常。
您需要告诉转发代理以您正在生成的 Django 日志文件为目标,将它们标记为"type": "django"
.
然后,在 Logstash 服务器上,您可以使用以下内容:
图案:
DJANGO_LOGLEVEL (DEBUG|INFO|ERROR|WARNING|CRITICAL)
DJANGO_LOG %{DJANGO_LOGLEVEL:log_level}\s+%{TIMESTAMP_ISO8601:log_timestamp}\s+%{TZ:log_tz}\s+%{NOTSPACE:logger}\s+%{WORD:module}\s+%{POSINT:proc_id}\s+%{GREEDYDATA:content}
筛选:
filter {
if [type] == "django" {
grok {
match => ["message", "%{DJANGO_LOG}" ]
}
date {
match => [ "timestamp", "ISO8601", "YYYY-MM-dd HH:mm:ss,SSS"]
target => "@timestamp"
}
}
}
如果您不想添加模式文件,您可以将DJANGO_LOGLEVEL
模式展开到%{DJANGO_LOGLEVEL:log_level}
字段中,并将遵循的目标规则DJANGO_LOG
放入 grok 匹配占位符中。