docker-compose 部署redis 、redis-exporter、并使用prometheus进行定时监控redis 并将数据实时写入vm(1)
这个是干嘛的呢,可以这样理解:redis服务运行的时候,是一个独立的容器,是一个黑盒的过程,所以现在就需要通过这个redis-exporter将redis服务给“暴露”出来;因为后续需要写实时脚本将普罗米修斯中的数据插入到vm中,所以还需要起一个vm的服务,vm是一个tsdb,不懂的可以看我之前的文章有写,这里8249是因为vm的默认端口是8248,我本地的8248的端口被正式项目的vm占用了,所
docker拉起服务
1.docker-compose.yml文件和prometheus.yml文件
编写这两个文件是第一步,也是重中之重的一步,因为大多数的问题都来自这里,一旦配置错误,搞什么后面都错了。
所以下面会先给出我的docker-compose.yml和prometheus.yml中的配置并进行讲解:
首先肯定创建redis服务的容器得有,这是数据的来源,不然后面都是鬼扯。
有了redis服务,剩下的就是监控体系的服务创建了——
1.1 prometheus服务
在这个服务中其他的都是正常配置,唯一不同的就是volumn配置项,除了数据的挂在项之外,还有一个prometheus.yml;这个配置项是定义prometheus监控指标的配置的,其中会定义抓取的目标(服务+端口)、抓取到的实例名称和抓取的时间间隔,我定义的是5秒;
# prometheus.yml
global:
scrape_interval: 5s # 抓取间隔时间
scrape_configs:
- job_name: 'redis'
static_configs:
- targets: ['redis-exporter:9121'] # redis-exporter 服务的地址和端口
1.2 redis-exporter
这个是干嘛的呢,可以这样理解:redis服务运行的时候,是一个独立的容器,是一个黑盒的过程,所以现在就需要通过这个redis-exporter将redis服务给“暴露”出来;在environment配置项中需要正确填写redis服务所在的端口,在redis-exporter将redis给暴露出来之后,不难想到prometheus其实是需要监控redis-exporter所在的端口(这点需要注意)
除了redis-exporter,还有mysqld-exporter、等等;镜像可在docker hub中自行查询,也可直接问gpt(手动狗头)
1.3 8429victoriametrics
因为后续需要写实时脚本将普罗米修斯中的数据插入到vm中,所以还需要起一个vm的服务,vm是一个tsdb,不懂的可以看我之前的文章有写,这里8249是因为vm的默认端口是8248,我本地的8248的端口被正式项目的vm占用了,所以用来区分
# docker-composer.yml
version: "3"
services:
# 服务体系
redis:
image: redis:latest
container_name: redis
ports:
- "6379:6379"
volumes:
- ./redis/data:/data
- ./redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
# 以下是监控体系
prometheus:
image: prom/prometheus:latest
container_name: "prometheus"
restart: always
ports:
- "9090:9090"
volumes:
- "./prometheus.yml:/etc/prometheus/prometheus.yml"
- "./prometheus_data:/prometheus"
redis-exporter:
image: oliver006/redis_exporter
container_name: redis-exporter
ports:
- "9121:9121"
environment:
- REDIS_ADDR=redis://redis:6379
8429victoriametrics:
image: victoriametrics/victoria-metrics:latest
container_name: victoria-metrics
volumes:
- "./victoria_data:/victoria-metrics-data"
ports:
- "8429:8429"
restart: always
2.监控
2.1启动容器
在docker-compose.yml文件和prometheus.yml文件所在的目录下docker-compose up ,使用docker-compose ps命令查看所有的容器,如果四个容器都在,说明启动成功

2.2 查看监控到的实例
如果prometheus被争取的拉起了,那么这个服务是有着自带的web console界面的,浏览器访问http://localhost:9090/graph就可以看到界面;
输入 redis_up 来检查 Redis 实例是否运行正常:

如果这个实例的值是1;表示 Redis 实例是“up”的,也就是说,它是可达的。
这是点击graph就能查询并看到各项指标了;这里我监控的是我正式项目的redis服务(有着其它服务的心跳),所以是有数据的。如图

就完成了使用prometheus监控redis
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)