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

如何在Cassandra 3.4.4中记录所有查询及相关运行日志

Cassandra 3.4.4 全场景日志配置实现方案

Cassandra 3.4.4 基于Logback实现日志管理,所有日志规则可通过修改安装目录下的conf/logback.xml、conf/cassandra.yaml两个配置文件完成,可覆盖你需要的所有场景:

1. 分场景日志配置

(1)查询执行成功/异常日志

要记录所有CQL查询的执行结果,在logback.xml中新增如下配置即可:

<!-- 定义独立的查询日志输出appender -->
<appender name="QUERYLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <file>${cassandra.logdir}/query.log</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    <fileNamePattern>${cassandra.logdir}/query.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
    <maxFileSize>1GB</maxFileSize>
    <maxHistory>30</maxHistory>
    <totalSizeCap>100GB</totalSizeCap>
  </rollingPolicy>
  <encoder>
    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  </encoder>
</appender>

<!-- 绑定CQL语句执行的日志输出规则 -->
<logger name="org.apache.cassandra.cql3" level="DEBUG" additivity="false">
  <appender-ref ref="QUERYLOG"/>
</logger>

该配置会把所有CQL的执行成功记录、语法错误、执行超时、资源不足等异常信息都输出到独立的query.log文件中,自带请求来源、执行耗时、异常栈等信息。

(2)连接超时、网络异常日志

在logback.xml中新增如下配置,即可记录所有客户端连接相关的事件:

<logger name="org.apache.cassandra.transport" level="DEBUG" additivity="false">
  <appender-ref ref="QUERYLOG"/> <!-- 也可以绑定单独的网络日志appender -->
</logger>

该配置会输出连接建立、连接断开、读写超时、帧解析错误等所有网络相关日志,会明确标记超时事件的客户端IP、端口、请求类型。

(3)凭证错误、权限校验失败日志

在logback.xml中新增如下配置,即可记录所有认证、权限相关的事件:

<logger name="org.apache.cassandra.auth" level="INFO" additivity="false">
  <appender-ref ref="QUERYLOG"/> <!-- 也可以绑定单独的认证日志appender -->
</logger>

该配置会输出用户名密码错误、令牌无效、权限不足等所有认证授权相关的失败记录,自带请求来源IP、尝试使用的用户名信息。

2. 可选:开启原生审计日志

如果需要更规范统一的全场景日志记录,可以直接开启Cassandra自带的审计日志功能,无需单独配置Logback的多logger规则:

  1. 打开conf/cassandra.yaml,找到audit_logging_options配置段,修改为如下内容:
audit_logging_options:
    enabled: true
    logger: SLF4JAuditLogger
    included_categories: AUTH, ERROR, QUERY, DML, DDL, DCL, ADMIN, OTHER
    excluded_categories: []
  1. 重启Cassandra节点后,所有你需要的场景日志都会自动输出到默认的system.log中,也可以单独配置审计日志的输出文件。

3. 注意事项

  • 生产环境不要长期开启DEBUG级的全量查询日志,会占用大量磁盘IO和存储,仅排查问题时临时开启即可,常规运行可将日志级别调整为INFO,仅记录慢查询和异常请求
  • 可以通过修改appender的过滤规则,过滤掉不需要的日志(比如健康检查请求、指定IP的测试请求),减少冗余日志的产生。
  • 所有配置修改完成后,重启Cassandra进程即可生效。

内容的提问来源于stack exchange,提问作者Matei Munteanu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:45:07