redis-exporter grafana面板配置

解决Grafana中Redis监控模板数据丢失:调整CPU和内存指标配置

一、前言

     关于使用tensuns自带的grafana监控模板,监控redis-exporter接口会有一些数据丢失的问题,需要自行修改一下grafana模板的json

二、修改模板

redis grafana模板id:17507

主要是针对cpu使用率和内存使用率做一个说明,因为我在使用该模板时cpu使用率和内存使用率数据缺失

cpu是因为redis_exporter的数据收集中并没有redis_cpu_util这个数据项,所以显示就自然没有数据可以在prometheus查询该项会发现为空,需要使用node_exporter收集的cpu数据来展示

内存使用率会显示一个无穷大的数据,因为内存使用率是使用redis_exporter收集的redis_memory_used_bytes和redis_memory_max_bytes来计算的,我显示无穷大的原因是在配置redis时并没有给redis配置maxmemory最大内存限制,而redis_memory_max_bytes就是取得maxmemory的数据,所以需要给redis配置maxmemory

以下是我修改以后的json文件

修改cpu%项

      "editorMode": "code",
      "exemplar": false,
      "expr": "redis_cpu_util * on (iid) group_right redis_up{account=~\"$account\",group=~\"$group\"} or label_replace(( 1- avg(rate(node_cpu_seconds_total{mode=\"idle\"}[2m])) by (instance))*100,\"nodehost\",\"$1\",\"instance\",\"(.*):.*\") * on (nodehost) group_left(vendor,account,group,name,region,instance) label_replace(redis_up{account=~\"$account\",group=~\"$group\"},\"nodehost\",\"$1\",\"instance\",\"(.*):.*\")",    #更改该项获取数据的配置,改成获取node_exporter监控的cpu参数
      "format": "table",
      "hide": false,
      "instant": true,
      "interval": "",
      "legendFormat": "__auto",
      "refId": "B"
    },

修改CPU使用率项

 

"targets": [
    {
      "datasource": {
        "type": "prometheus",
        "uid": "b270c2e2-cc3e-426b-a9ef-80a48217de5f"
      },
      "exemplar": true,
      "expr": "(1 - avg(rate(node_cpu_seconds_total{instance=~\"$node_host:.+\",mode=\"idle\"}[2m])) by (instance))*100",      #修改该项为从node_exporter获取cpu监控数据
      "interval": "2m",
      "legendFormat": "CPU使用率",
      "refId": "A"
    }

还需要增加一个关于node_host的取值,redis_exporter的grafana模板原本的json是没有node_host

 

        {
        "current": {
          "selected": false,
          "text": "10.1.60.19:6379",
          "value": "10.1.60.19:6379"
        },
        "datasource": {
          "type": "prometheus",
          "uid": "b270c2e2-cc3e-426b-a9ef-80a48217de5f"
        },
        "definition": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, instance)",
        "hide": 0,
        "includeAll": false,
        "multi": false,
        "name": "instance",
        "options": [],
        "query": {
          "query": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, instance)",
          "refId": "StandardVariableQuery"
        },
        "refresh": 2,
        "regex": "",
        "skipUrlSync": false,
        "sort": 1,
        "tagValuesQuery": "",
        "tagsQuery": "",
        "type": "query",
        "useTags": false
      },                #在此处插入以下内容
      {
        "allFormat": "glob",
        "current": {
          "selected": false,
          "text": "10.1.60.19",
          "value": "10.1.60.19"
        },
        "datasource": {
          "type": "prometheus",
          "uid": "b270c2e2-cc3e-426b-a9ef-80a48217de5f"
        },
        "definition": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, instance)",
        "hide": 2,
        "includeAll": false,
        "label": "NodeHost",
        "multi": false,
        "multiFormat": "regex values",
        "name": "node_host",        #取node_host值
        "options": [],
        "query": {
          "query": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, instance)",
          "refId": "StandardVariableQuery"
        },
        "refresh": 2,
        "refresh_on_load": false,
        "regex": "/(.*):.*/",
        "skipUrlSync": false,
        "sort": 5,
        "type": "query",
        "useTags": false
      },                  #到此处截止
      {
        "current": {
          "isNone": true,
          "selected": false,
          "text": "None",
          "value": ""
        },
        "datasource": {
          "type": "prometheus",
          "uid": "b270c2e2-cc3e-426b-a9ef-80a48217de5f"
        },
        "definition": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, iid)",
        "hide": 2,
        "includeAll": false,
        "multi": false,
        "name": "iid",
        "options": [],
        "query": {
          "query": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, iid)",
          "refId": "StandardVariableQuery"
        },
        "refresh": 2,
        "regex": "",
        "skipUrlSync": false,
        "sort": 1,
        "tagValuesQuery": "",
        "tagsQuery": "",
        "type": "query",
        "useTags": false
      }

配置完成后可以查看获取数据的语句是否能正确执行

 

 以上就是使用redis grafana模板时的一些问题

### 如何在Prometheus中配置Redis监控 #### 准备工作 为了确保Prometheus能够成功抓取来自Redis的数据,需先确认已安装并运行了`redis_exporter`服务。此组件作为中间件负责收集Redis指标并将它们暴露给Prometheus。 #### 安装与启动 `redis_exporter` 可以通过Docker来快速部署`redis_exporter`实例: ```bash docker run -d \ --name redis-exporter \ -p 9121:9121 \ oliver006/redis_exporter:v1.35.0 ``` 上述命令会拉取指定版本的镜像文件,并将其映射至主机上的9121端口[^2]。 #### 修改Prometheus配置文件 编辑Prometheus的主要配置文件(通常是`prometheus.yml`),向其中加入一个新的job定义用于指向`redis_exporter`的服务位置: ```yaml scrape_configs: - job_name: 'redis' static_configs: - targets: ['localhost:9121'] ``` 这段YAML片段指示Prometheus定期从本地机器的9121端口获取数据,即之前设置好的`redis_exporter`监听地址[^1]。 #### 测试配置有效性 完成以上更改之后重启Prometheus服务使新配置生效。随后可通过访问Prometheus Web界面中的“Status=>Targets”选项卡验证目标是否处于健康状态;如果一切正常,则应该能看到有关Redis集群的状态信息被正确采集到了。 #### 可视化展示 对于希望进一步利用Grafana来进行更直观的数据呈现的情况,可以考虑导入官方提供的Dashboard模板,这些预构建面板通常已经包含了针对Redis性能分析所需的各种图表和统计项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值