zoukankan      html  css  js  c++  java
  • Prometheus + Grafana(七)系统监控之Redis

    前言

    利用prometheus监控redis.

    github地址:https://github.com/oliver006/redis_exporter

    技术架构

    prometheus通过redis_exporter抓取redis的指标,一个prometheus可以配置很多redis_exporter,一个redis_exporter也可以抓取多个redis。

    安装redis_exporter

    注:在redis集群下的所有节点上部署。

    • 上传解压

    从 redis_exporter下载 并上传redis_exporter-v1.3.5.linux-amd64.tar安装包并解压到/usr/local目录

    wget https://github.com/oliver006/redis_exporter/releases/download/v1.3.5/redis_exporter-v1.3.5.linux-amd64.tar.gz
    tar -xvf redis_exporter-v1.3.5.linux-amd64.tar cd redis_exporter-v1.3.5.linux-amd64/
    • 配置

    使用默认配置

    redis_exporter 常用的选项:

    -redis.addr:指明一个或多个 Redis 节点的地址,多个节点使用逗号分隔,默认为 redis://localhost:6379
    -redis.password:验证 Redis 时使用的密码;
    -redis.file:包含一个或多个redis 节点的文件路径,每行一个节点,此选项与 -redis.addr 互斥。
    -web.listen-address:监听的地址和端口,默认为 0.0.0.0:9121
    • 启动

    进入根目录下,输入以下命令:

    cd redis_exporter-v1.3.5.linux-amd64
    nohup ./redis_exporter -redis.addr 10.x.xxx.213:7000 10.x.xxx:7001 10.x.xxx.213:7002 10.x.xxx.213:7003 &
    tail -1000f nohup.out

    注:-redis.addr 请修改相应环境redis服务地址,如同一台服务器部署了多个实例,全部都要填写

    启动成功后,可以访问 http://10.x.xx.100:9121/metrics/  (IP和端口要改成相应环境的)

    看抓取的信息如下:

    Prometheus配置

    • 配置

    修改prometheus组件的prometheus.yml加入redis监控:

    vi /usr/local/prometheus-2.15.1/prometheus.yml

     

    • 启动验证

    先kill掉Prometheus进程,用以下命令重启它,然后查看targets:

    cd /usr/local/prometheus-2.15.1
    nohup ./prometheus --config.file=prometheus.yml &

    Grafana配置

    • 导入仪表盘模板

    导入标准 redis仪表盘模板,以下是在标准基础上修改的模板文件(Redis-dashboard.json)

    注意:Memory Usage这个图表,一直是N/A。是因为redis_memory_max_bytes 获取的值为0,导致 redis_memory_used_bytes / redis_memory_max_bytes 结果不正常。

    解决办法:将redis_memory_max_bytes 改为服务器的真实内存大小。更改计算公式:

    redis_memory_used_bytes{instance=~"$instance"}  / 8193428
    • 预警指标  

    序号

    预警名称

    预警规则

    描述

    1

    节点数预警

    当集群中的节点数达到阈值【!=12】时进行预警

    2

    客户端连接数预警

    当客户端连接数达到阈值【>900】时进行预警

    3

    内存预警

    当内存使用达到阈值【>80%】时进行预警

    4

    拒绝连接预警

    因最大客户端数量限制而被拒绝的连接请求数量达到阈值【>1】时进行预警

    5

    未命中预警

    当根据key找不到数据的次数达到阈值【>10000000】时进行预警

    其它

    • 注册为系统服务开机自动启动

    ## 准备配置文件
    cat <<EOF >/etc/systemd/system/redis_exporter.service
    [Unit]
    Description=Prometheus exporter for Redis metrics.
    Documentation=Supports Redis 2.x, 3.x, 4.x, and 5.x
    
    [Service]
    ExecStart=/usr/local/redis_exporter/redis_exporter -redis.addr=redis://localhost:6379
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    
    ## 启动并设置为开机自动启动
    systemctl daemon-reload
    systemctl enable redis_exporter.service
    systemctl stop redis_exporter.service
    systemctl start redis_exporter.service
    systemctl status redis_exporter.service
  • 相关阅读:
    RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例
    Spring入门(四):使用Maven管理Spring项目
    Java基础知识常见面试题汇总 第三篇
    Java基础知识常见面试题汇总 第二篇
    Java基础知识常见面试题汇总 第一篇
    程序员如何巧用Excel提高工作效率 第二篇
    程序员如何巧用Excel提高工作效率
    数据库管理工具DataGrip使用总结(一)
    MySql给表添加列和注释
    Spring入门(三):通过JavaConfig装配bean
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/12736384.html
Copyright © 2011-2022 走看看