有时候需要对一些日志的输出进行过滤,es的x-pack提供了这样的功能。可以通过一些配置来开启,所有的配置都可以在elasticsearch.yml里面进行配置。
开启审计
xpack.security.audit.enabled=true
表示开启审计,默认情况是false,开启之后会把一些审计事件放在<clustername>_audit.json
文件里。
审计事件
事件或者一些内容记录都是可以通过以下设置来进行配置:
xpack.security.audit.logfile.events.include
指定审计输出中包含哪些事件,一共包含:access_denied, access_granted, anonymous_access_denied, authentication_failed, connection_denied, tampered_request, run_as_denied, run_as_granted
这些事件。
xpack.security.audit.logfile.events.exclude
从输出中排除某些事件。默认情况下,不排除任何事件。
xpack.security.audit.logfile.events.emit_request_body
指定是否在某些特定事件(如authentication_failed)的REST请求中包含请求体,默认值是false。
本地节点设置
xpack.security.audit.logfile.emit_node_name
指定是否在每个审计事件中包含节点名作为字段,默认是true。
xpack.security.audit.logfile.emit_node_host_address
指定是否包含节点的ip地址作为字段,默认是false。
xpack.security.audit.logfile.emit_node_host_name
指定是否包含节点的域名作为字段,默认是false。
xpack.security.audit.logfile.emit_node_id
指定是否包含节点的id作为字段,默认是true。该信息不会在<clustername>_access.log
里面,他是一种新格式,他不像节点name,可以通过配置修改他,id在集群重启的时候确定的,管理员没办法去修改他。
审计事件忽略策略
通过这些配置,可以判断哪些内容可以输出到日志文件里面。具有相同策略名称的所有设置组合起来形成一个策略。如果事件匹配特定策略的所有条件,则忽略该事件并不打印它。
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.users
用户名或者通配符列表。用户匹配了这些策略,那么将不打印日志。
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.realms
身份验证名称或者通配符列表。用户满足这些指定身份的策略,那么将不打印日志。
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.roles
角色名或者通配符列表。用户有这些角色的话,那么将不打印日志。如果用户有多个角色,但是有一些策略不在这个范围内,那么这个事件对那些策略不起作用。
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.indices
索引名或者通配符列表。当事件中的所有索引都匹配这些值时,指定的策略将不会打印审计事件。如果事件涉及多个索引,其中一些索引不包含在策略中,则策略将不包含此事件。
注意:本文归作者所有,未经作者允许,不得转载