prometheus监控栈监控redis,Prometheus监控栈:Prometheus+Grafana+Alertmanager
一、环境介绍
主机清单
| 职责 | ip地址 | 备注 |
|---|---|---|
| Prometheus服务器 | 192.168.92.11 | docker模式的prometheus |
| 待监控Linux(test) | 192.168.92.12 | 待准备组件:redis6版本、mongodb4.2.5版本 |
redis概述
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的Key-Value数据库,并提供多种语言的API
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多包括string、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序,在部 分场合可以对关系数据库起到很好的补充作用
mongodb概述(这里没讲到)
MongoDB是一个基于分布式文件存储[1]的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似ison的bson格式,因此可以存储比较复杂的数据类型。Mong0最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引
二、prometheus监控Redis
docker安装(略)
docker-compose安装
#从github中拉取下载docker-compose curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose #设置文件具备执行权限 sudo chmod +x /usr/local/bin/docker-compose #查看已安装的版本,如果能正常输出版本号说明安装compose完毕 docker-compose -v2.1待监控Linux安装Redis
创建docker-compose目录
#test虚拟机(第二台虚拟机) mkdir /data/docker-compose -p cd /data/docker-compose创建docker-compose.yaml
version: '3.3' #指定 Docker Compose 文件格式版本为 3.3 services: #所有服务的根节点 redis: #定义一个名为 "redis" 的服务 image: redis:6 #使用 Redis 官方镜像,版本 6 container_name: redis #设置容器名称(而非自动生成的随机名称) restart: always #容器退出时总是重启 volumes: - /data/redis/data:/data #将宿主机目录挂载到容器内部,格式:宿主机路径:容器内路径 command: redis-server --maxmemory 512mb ports: - "6379:6379"运行docker-compose
docker-compose up -d查看docker 的信息
docker images docker ps -a2.2 待监控Linux安装redis_exporter
二进制安装或者docker安装(或者docker-compose安装),此处选用docker-compose安装修改docker-compose.yaml文件
cd /data/docker-compose vi docker-compose.yamlyaml文件增加redis_exporter组件
version: '3.3' services: redis_exporter: image: oliver006/redis_exporter # 使用最新版 container_name: redis_exporter restart: always environment: - REDIS_ADDR=192.168.92.12:6379 # 连接本地的Redis容器 - REDIS_PASSWORD= # 无密码 ports: - "9121:9121" depends_on: - redis # 确保redis先启动,如果 Redis 没启动,Redis Exporter 会启动失败或报连接错误启动docker-compose.yaml
docker-compose up -d访问redis_exporter
http:/192.168.92.12:9121/metrics
2.3 prometheus服务器添加redis_exporter的地址
192.168.92.11的prometheus上,修改prometheus的配置文件
#进入docker-prometheus目录 cd /data/docker-prometheus #修改prometheus.yml vi prometheus/prometheus.yml添加待监控的redis_exporter
- job_name: 'redis-exporter' static_configs: - targets: ['192.168.92.12:9121'] labels: instance: 'redis服务器'prometheus的热加载:
在prometheus中执行 curl -X POST http://localhost:9090/-/reload刷新访问http://192.168.92.11:9090/targets?search=,确认新监控的redis服务器是否生效
down的http://192.168.92.12:9100/metrics是上一个虚拟机的node-exporter,因为我第二台虚拟机是测试服务器,拍摄了一个just set static ip 的快照,第三个实验我已经重置了just set static ip
2.4 redis服务器指标查询
redis_up 服务是否在线 redis_uptime_in_seconds 运行时长,单位s rate(redis_cpu_sys_seconds_total[1m])+rate(redis_cpu_user_seconds_total[1m]) CPU使用时间 redis_memory_used_bytes 占用内存量 redis_memory_max_bytes 限制的最大内存 delta(redis_net_input_bytes_total[1m]) 网络接收的bytes delta(redis_net_output_bytes_total[1m]) 网络发送的bytes redis_connected_clients 客户端连接数 redis_connected_clients/redis_config_maxclients 连接数使用率 redis_rejected_connections_total 拒绝的客户端连接数 redis_connected_slaves slave连接数2.5 grafana中对redis进行监控
copy id to clipboard->grafana的dashboards中lmport dashboard
https://grafana.com/grafana/dashboards
选一个redis的面板,复制id
grafana里导入这个面板,输入面板id导入
继续导入
然后就可以了,完成了grafana中对redis进行监控