You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cassandra 3.11无原生审计日志,如何启用并对接Imperva Sonar?

针对Cassandra 3.11适配Imperva Sonar的审计日志解决方案

一、修复ECAudit配置使其生效并适配Sonar格式

ECAudit是Cassandra 3.x生态中成熟的审计插件,你遇到的未生效问题大概率是配置环节遗漏,按以下步骤重新部署配置:

1. 插件部署校验

  • 下载对应c3.11分支的ECAudit jar包,拷贝到所有Cassandra节点的lib/目录下
  • 重启所有节点,查看启动日志,确认无ecaudit相关的加载报错

2. 核心配置调整(cassandra.yaml)

修改文件中的审计管理器配置,同时定义适配Sonar的日志输出格式:

audit_manager:
  class_name: com.ericsson.bss.cassandra.ecaudit.AuditManager
  parameters:
    # 配置审计范围:记录所有DDL/DML/登录操作,可按需缩小范围
    audit_filter_class_name: com.ericsson.bss.cassandra.ecaudit.filter.AllowAllAuditFilter
    logger:
      class_name: com.ericsson.bss.cassandra.ecaudit.logger.Slf4jAuditLogger
      parameters:
        # 自定义日志格式,匹配Sonar所需的字段顺序与分隔符(需提前确认Sonar的解析规则)
        pattern: "%d{ISO8601} | %client_ip | %user | %operation_type | %status | %query"

3. 日志框架定向配置(logback.xml)

将审计日志输出到独立文件,避免与Cassandra其他日志混淆,便于Sonar采集:

  • 添加专属appender:
<appender name="AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <file>${cassandra.logdir}/audit.log</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    <fileNamePattern>${cassandra.logdir}/audit.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
    <maxFileSize>100MB</maxFileSize>
    <maxHistory>30</maxHistory>
  </rollingPolicy>
  <encoder>
    <pattern>%msg%n</pattern> <!-- 仅输出ECAudit定义的格式,避免额外日志前缀干扰Sonar解析 -->
  </encoder>
</appender>
  • 绑定ECAudit日志器到该appender:
<logger name="com.ericsson.bss.cassandra.ecaudit.logger.Slf4jAuditLogger" level="INFO" additivity="false">
  <appender-ref ref="AUDIT" />
</logger>
  • 重启节点后,执行CQL操作(如CREATE、INSERT),检查audit.log是否有符合格式的日志输出

二、替代方案:Cassandra原生Query Logger适配

若ECAudit仍无法满足需求,可启用Cassandra原生Query Logger并调整格式适配Sonar:

1. 启用Query Logger(cassandra.yaml)

query_log_enabled: true
query_log_options:
  log_level: INFO
  logger_class: org.apache.cassandra.service.QueryLogger
  # 自定义格式,包含Sonar所需的客户端IP、用户名、操作类型等核心字段
  log_format: "%t | %s | %u | %c | %e | %q"
  # 字段说明:%t=时间戳, %s=客户端IP, %u=用户名, %c=操作类型, %e=执行状态, %q=CQL语句

2. 日志输出配置

同样在logback.xml中添加独立appender,将Query日志定向到指定文件,供Sonar采集。

三、适配Imperva Sonar的关键注意事项

  • 格式严格匹配:提前确认Sonar的日志解析规则,确保审计日志的字段顺序、分隔符、字段含义完全符合要求
  • 全节点覆盖:所有Cassandra节点必须配置相同的审计规则,避免遗漏集群内的操作日志
  • 权限保障:确保Sonar的日志采集进程拥有Cassandra日志目录的读取权限
  • 验证测试:配置完成后,执行多种类型的CQL操作,检查Sonar是否能正确识别并展示审计事件

内容的提问来源于stack exchange,提问作者Basel Maged

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 17:17:30