使用 man ascii 来查看 ASCII 表。

ES记录访问日志有没有比较好的方案?

Elasticsearch | 作者 wangxinrong | 发布于2020年04月14日 | 阅读数:3949

我能想到的有下面几种:
1.只允许es通过http方式访问,在查询用节点的前端配置nginx,通过nginx记录日志,并且开启记录post请求。
这样比较麻烦还要额外配置nginx

2.开启es的慢查日志,并且将阈值调为0ms。记录所有查询。
这样也有很多问题:
1)一个查询会在所有数据节点上都有每个分片对应的慢查日志
2)查询中索引名使用*的话,会记录*匹配到的每个索引的慢查日志
3)慢查日志不记录请求者的IP
4)只能得到分片查询用时,无法看到整体的查询用时

3.开启xpack audit日志
好处是和nginx一样,可以在查询节点上记录到原始查询请求,不用额外依赖nginx,并且还能记录到是以哪个用户访问的。但这样无法记录到查询用时。

这3种方式好像都有缺点,我希望的是
1.用户的一次查询只记录一条日志
2.记录remote IP和x-forwarded-for IP
3.记录具体的查询请求内容和查询用时
4.尽量能配置方便,减少存储的日志量。避免我上述3种日志全部记录才能得到所有信息的问题

不知道这方面的最佳实践是怎样的
已邀请:

printf_uck - 1024

赞同来自:

xpack 的audit是收费的吧
匿名用户

匿名用户

赞同来自:

首先排除2,3方式.
 

要回复问题请先登录注册