【发布时间】:2017-12-20 10:35:47
【问题描述】:
我正在使用 ELK 堆栈从我的 Django 服务器集中记录日志。我的 ELK 堆栈位于远程服务器上,logstash.conf 看起来像这样:
input {
tcp {
port => 5959
codec => json
}
}
output {
elasticsearch {
hosts => ["xx.xx.xx.xx:9200"]
}
}
elasticsearch 和 logstash 服务都在工作(使用 docker-compose logs logstash 检查)。
我的 Django 服务器的设置文件的日志记录配置如下:
LOGGING = {
'version': 1,
'handlers': {
'logstash': {
'level': 'INFO',
'class': 'logstash.TCPLogstashHandler',
'host': 'xx.xx.xx.xx',
'port': 5959, # Default value: 5959
'version': 0, # Version of logstash event schema. Default value: 0 (for backward compatibility of the library)
'message_type': 'django', # 'type' field in logstash message. Default value: 'logstash'.
'fqdn': True, # Fully qualified domain name. Default value: false.
'tags': ['django.request'], # list of tags. Default: None.
},
},
'loggers': {
'django.request': {
'handlers': ['logstash'],
'level': 'DEBUG',
},
}
}
我运行我的 Django 服务器,Logstash 处理程序处理日志,因为控制台没有显示日志。我使用Django服务器中的python-logstash库来构建上述conf,但是日志没有发送到我的远程服务器。
我检查了许多问题,确认服务正在运行并且端口正确,但我不知道为什么日志没有发送到 Logstash。
【问题讨论】:
-
你确定“django.request”没有过滤掉所有事件吗?
-
Django 请求应该发送所有请求日志
-
你试过把
fqdn改成False吗? -
是的,但没有成功
标签: python django logstash elastic-stack