更新时间:2024-07-31 GMT+08:00
分享

中间件-Redis日志

自建中间件功能在邀测中,支持华北-北京四局点,仅针对用户内测使用,后续将全网开放,敬请期待!

Redis的日志主要用于记录Redis服务器的运行状态、相关事件以及客户端执行的命令等信息。Redis的日志主要有系统日志和慢查询日志。

  1. 系统日志(System Log):
    • 记录Redis服务器的启动、关闭、配置加载、持久化操作(如 RDB 和 AOF)等系统级事件。
    • Redis的系统日志级别包括debug、verbose、notice、warning和error。你可以通过配置文件redis.conf 中的loglevel参数来设置日志级别。
    • 系统日志的输出方式可以是标准输出(stdout)或文件输出(file)。在配置文件中,使用logfile参数来指定日志文件的路径。
  2. 慢查询日志(Slow Query Log):
    • 用于记录执行时间超过指定阈值的命令。这有助于识别和优化性能瓶颈。
    • 慢查询日志的阈值(即命令执行时间的上限)可以通过 redis.conf 中的 slowlog-log-slower-than 参数来设置,单位是微秒。
    • 慢查询日志的最大长度(即可以保存的慢查询记录数)可以通过 slowlog-max-len 参数来设置。
    • 慢查询日志存储在内存中,不会写入磁盘文件。但你可以使用Redis命令SLOWLOG来查看和获取慢查询日志的内容。

采集方法

使用ICAgent采集日志,接入前请参考安装ICAgent(区域内主机)完成ICAgent安装。然后再通过采集ECS-文本日志方式将日志上报至LTS服务,详细操作请参考云主机ECS文本日志接入LTS

Redis日志示例以及字段含义

  1. 系统日志(System Log):
    [12345] 2024-04-30 15:30:00.123456 [info] # Server started, Redis version 6.x.x  
    [12345] 2024-04-30 15:30:15.654321 [notice] * 1 client connected (IP: 127.0.0.1,port: 6379)  
    [12345] 2024-04-30 15:30:30.987654 [warning] # There are 100 clients waiting in the background, you may need to check your latency.  
    [12345] 2024-04-30 15:31:00.000000 [debug] * DB saved on disk  
    [12345] 2024-04-30 15:32:00.000000 [error] # OOM command not allowed when used memory > 'maxmemory'.
    表1 系统日志字段说明

    字段

    说明

    示例

    PID

    Redis服务器的进程ID(PID)。它用于在系统级别上识别和管理Redis进程。

    [12345]

    时间戳

    日志条目的时间戳,通常包括日期、时间和毫秒数。

    2024-04-30 15:30:00.123456

    日志级别

    日志级别 ([info]、[notice]、[warning]、[debug]、[error]):Redis使用不同的日志级别来指示日志条目的重要性。常见的日志级别包括:

    • [info]:信息性消息,通常表示服务器正常运行的通知。
    • [notice]:通知性消息,通常表示重要但不紧急的事件。
    • [warning]:警告性消息,表示可能出现问题的情况,但尚未导致故障。
    • [debug]:调试信息,通常用于开发人员调试和故障排除。
    • [error]:错误消息,表示发生了错误或异常情况。

    [info]

    日志内容

    描述了发生的具体事件或操作。例如“Server started”表示Redis服务器已启动,“1 client connected”表示有一个客户端连接到Redis服务器,“OOM command not allowed”表示由于超出了最大内存限制,Redis拒绝执行某个命令。

    Server started, Redis version 6.x.x

    附加信息

    在某些日志条目中,可能包含有关事件的附加信息。例如在“1 client connected”条目中,包含了连接客户端的IP地址和端口号。

    IP: 127.0.0.1,port: 637

  2. 慢查询日志(Slow Query Log)
    1) 1) (integer) 12345  
       2) (integer) 1598765432  
       3) (integer) 123456  
       4) 1) "GET"  
          2) "somekey"
    表2 系统日志字段说明

    字段

    说明

    示例

    唯一标识符

    慢查询日志条目的唯一标识符。随着时间的推移,Redis会继续为新的慢查询日志条目增加序号。

    (integer) 12345

    时间戳

    录了这条慢查询日志产生的时间戳,通常是Unix时间戳(以秒为单位)。

    (integer) 1598765432

    执行时间

    执行慢查询命令所花费的时间,单位是微秒(μs)。

    (integer) 123456

    命令及其参数

    • "GET": 这是被记录为慢查询的命令本身,这里是GET命令。
    • "somekey": 这是GET命令的参数,即被检索的键(key)。

    -

日志位置

在Redis的配置文件redis.conf中指定日志文件的路径。找到logfile配置项,例如:

logfile "/var/log/redis/redis-server.log"

相关文档