我能想到的有下面几种:
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种日志全部记录才能得到所有信息的问题
不知道这方面的最佳实践是怎样的
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种日志全部记录才能得到所有信息的问题
不知道这方面的最佳实践是怎样的
2 个回复
printf_uck - 1024
赞同来自:
匿名用户
赞同来自: