Redis¶
视图预览¶
Redis 观测场景主要展示了 Redis 的错误信息、性能信息、持久化信息等。

版本支持¶
操作系统支持:Windows/AMD 64, Windows/386, Linux/ARM, Linux/ARM 64, Linux/386, Linux/AMD 64, Darwin/AMD 64
安装部署¶
说明:示例 Redis 版本为 Redis 6.2.3 (CentOS),各个不同版本指标可能存在差异。
Redis 指标采集器,采集以下数据:
- 开启 AOF 数据持久化,会收集相关指标
- RDB 数据持久化指标
- Slowlog 监控指标
- bigkey scan 监控
- 主从replication
前置条件¶
- Redis 版本 v5.0+
在采集主从架构下数据时,请配置从节点的主机信息进行数据采集,可以得到主从相关的指标信息。
配置实施¶
指标采集 (必选)¶
1、 开启 DataKit Redis 插件,复制 sample 文件
2、 修改 redis.conf 配置文件
- host:要采集的redis 的地址
- port:要采集的redis 的端口
- db:要采集的redis 的数据库
- password:要采集的redis 的密码
- connect_timeout:链接超时时间
- service:配置服务名称
- interval:采集指标频率
- keys:要采集的 key 可以多选
- slow_log:开启慢日志
- slowlog-max-len:配置慢日志大小
- command_stats:获取 info 命令的结果转换成指标
[[inputs.redis]]
    host = "localhost"
    port = 6379
    # unix_socket_path = "/var/run/redis/redis.sock"
    db = 0
    # password = "<PASSWORD>"
    ## @param connect_timeout - number - optional - default: 10s
    # connect_timeout = "10s"
    ## @param service - string - optional
    # service = "<SERVICE>"
    ## @param interval - number - optional - default: 15
    interval = "15s"
    ## @param keys - list of strings - optional
    ## The length is 1 for strings.
    ## The length is zero for keys that have a type other than list, set, hash, or sorted set.
    #
    # keys = ["KEY_1", "KEY_PATTERN"]
    ## @param warn_on_missing_keys - boolean - optional - default: true
    ## If you provide a list of 'keys', set this to true to have the Agent log a warning
    ## when keys are missing.
    #
    # warn_on_missing_keys = true
    ## @param slow_log - boolean - optional - default: false
    slow_log = true
    ## @param slowlog-max-len - integer - optional - default: 128
    slowlog-max-len = 128
    ## @param command_stats - boolean - optional - default: false
    ## Collect INFO COMMANDSTATS output as metrics.
    # command_stats = false
3、 重启 DataKit (如果需要开启日志,请配置日志采集再重启)
4、 Redis 指标采集验证 /usr/local/datakit/datakit -M |egrep "最近采集|redis"

5、 指标预览

日志采集 (非必选)¶
1、 修改 redis.conf 配置文件
参数说明
- files:日志文件路径 (通常填写访问日志和错误日志)
- ignore:要过滤的文件名
- pipeline:日志切割文件(内置),实际文件路径 /usr/local/datakit/pipeline/redis.p
- character_encoding:日志编码格式
- match:开启多行日志收集
- 相关文档 < 文本数据处理(Pipeline)>
[inputs.redis.log]
    ## required, glob logfiles
    #files = ["/var/log/redis/*.log"]
    ## glob filteer
    #ignore = [""]
    ## grok pipeline script path
    #pipeline = "redis.p"
    ## optional encodings:
    ##    "utf-8", "utf-16le", "utf-16le", "gbk", "gb18030" or ""
    #character_encoding = ""
    ## The pattern should be a regexp. Note the use of '''this regexp'''
    ## regexp link: https://golang.org/pkg/regexp/syntax/#hdr-Syntax
        #match = '''^\S.*'''
2、 重启 DataKit (如果需要开启自定义标签,请配置插件标签再重启)
3、 Redis 日志采集验证  /usr/local/datakit/datakit -M |egrep "最近采集|redis_log"

4、 日志预览

5、 日志 pipeline 功能切割字段说明
Redis 通用日志切割
- 原始日志为:
- 切割后的字段列表如下:
| 字段名 | 字段值 | 说明 | 
|---|---|---|
| pid | 122 | 进程id | 
| role | M | 角色 | 
| serverity | * | 服务 | 
| statu | notice | 日志级别 | 
| msg | Background saving terminated with success | 日志内容 | 
| time | 1557861100164000000 | 纳秒时间戳(作为行协议时间) | 
插件标签 (非必选)¶
参数说明
- 该配置为自定义标签,可以填写任意 key-value 值
- 以下示例配置完成后,所有 Redis 指标都会带有 service = "redis"的标签,可以进行快速查询。
- 相关文档 <TAG在观测云中的最佳实践>
# 示例
[inputs.redis.tags]
        service = "redis"
    # some_tag = "some_value"
    # more_tag = "some_other_value"
重启 DataKit
场景视图¶
<场景 - 新建仪表板 - 模板库 - 系统视图 - Redis 监控视图>
检测库¶
<监控 - 监控器 - 从模板新建 - Redis 检测库>
| 序号 | 规则名称 | 触发条件 | 级别 | 检测频率 | 
|---|---|---|---|---|
| 1 | Redis 等待阻塞命令的客户端连接数异常增加 | 客户端连接数 > 0 | 紧急 | 1m | 
指标详解¶
最佳实践¶
故障排查¶
<无数据上报排查>