我用http 9200打开了几个客户端节点,以便查询/索引ElasticSearch。我想通过http 9200记录来自客户端的访问日志,就像Http-Apache有access.log一样。请问我该如何在ES中启用此功能。
我用http 9200打开了几个客户端节点,以便查询/索引ElasticSearch。我想通过http 9200记录来自客户端的访问日志,就像Http-Apache有access.log一样。请问我该如何在ES中启用此功能。
在Elasticsearch本身中没有这样的功能。
但是,如果您安装了Shield插件,您可以通过将以下内容添加到您的elasticsearch.yml
配置文件中来启用审计。
shield.audit.enabled: true
然后你会在ES日志文件夹中得到一个名为elasticsearch-access.log
的新文件。
@lucabelluccini的更新:将Shield审计日志转发到syslog
如果您有兴趣将这些审计日志转发到syslog,可以使用log4j SyslogAppender类,该类允许通过本地套接字将日志转发到syslog。
编辑您的logging.yml文件(自定义格式等)。
appender:
syslog:
type: org.apache.log4j.net.SyslogAppender
syslogHost: localhost
facility: local0
layout:
type: org.apache.log4j.PatternLayout
conversionPattern: "%d{ISO8601} %t %p %c %M %m %n"
确保 rsyslog 配置允许 UDP 源。
将此 appender 关联到 shield 审计主题。