Prometheus监控Redis
分析:
1、因为Redis工作的方式是单进程多路复用,只在一台物理服务器上部署一个节点并不能发挥多核CPU的性能,所以一般我们会在单机上启动多个Redis实例来提高利用率。而且我们一般会部署集群版或者哨兵来提高稳定性和负载能力。
2、但这种方式会导致给每个实例部署一个exporter监控相对来说比较麻烦,所以我们选择使用一个exporter去监控多个Redis实例的办法。
3、单exporter监控redis有两种方式一种是静态方式把实例信息写在配置文件上(这种我们这里暂时不介绍),第二种是prometheus通过挂载配置文件的方式随时修改不用重启prometheus服务我们这里介绍这种。
下面我们开始正式的部署:
部署redis、prometheus这里我们就不介绍了。
1、部署redis_exporter
git clone https://github.com/oliver006/redis_exporter.git cd redis_exporter go build . ./redis_exporter --version
2、编写实例的yml文件和带密码的json文件
# cat redis_password_file.json { "redis://172.16.149.217:6379": "123456", "redis://172.16.149.216:6379": "654321" } # cat redis_targets.yml - targets: [172.16.149.217:6379] labels: instance_id: test217 role: master alias: "test217" load_balancer_addr: "172.16.149.217:6379" - targets: [172.16.149.216:6379] labels: instance_id: test216 role: master alias: "test216" load_balancer_addr: "172.16.149.216:6379"
3、添加prometheus监控项添加一个job
- job_name: 'redis_exporter' file_sd_configs: - files: - /prometheus/redis_targets.yml metrics_path: /scrape relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 172.16.149.216:9103 - source_labels: [instance_id] target_label: env regex: '([a-zA-Z]+)_\d+'
添加完重启prometheus
打开页面查看
在grafara中添加模板763