赞
踩
今天继续给大家介绍Linux运维相关知识,本文主要内容是Prometheus使用Exporter监控Redis。
在上文Prometheus详解(五)——Prometheus Exporter简介中,我们介绍了Prometheus中Exporter的作用。今天,我们来使用Redis Exporter,实现在Kubernetes集群中Prometheus监控Redis。
首先,我们先来部署以下Redis监控,我们部署一个Deployment控制器和Service服务,其中Deployment控制器启动一个Pod,并且把Redis和Redis Exporter两个容器放入一个Pod中,Service服务主要作用是暴露端口。相关配置如下所示:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis
namespace: pzz
spec:
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:4
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379
- name: redis-exporter
image: oliver006/redis_exporter:latest
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 9121
---
kind: Service
apiVersion: v1
metadata:
name: redis
namespace: pzz
spec:
selector:
app: redis
ports:
- name: redis
port: 6379
targetPort: 6379
- name: prom
port: 9121
targetPort: 9121
注意,在上述配置中,我们把相关的Pod和Service全部部署在了pzz的名称空间中,如果您在使用我的上述配置时,可以自行修改该项设置。
配置完成后的Deployment如下所示:
配置完成后的Service如下所示:
接下来,我们首先创建pzz名称空间,执行命令:
kubectl create namespace pzz
该命令执行结果如下所示:
之后,我们直接执行上述配置,创建Deployment和Service,执行命令:
kubectl apply -f prometheus-redis-exporter.yaml
该命令执行结果如下:
等到我们的Pod成功运行(注意:由于设计到新的镜像拉取,因此时间可能会长一些,请耐心等到)后,结果如下:
我们可以访问以下其Service下的9121端口,即Prometheus的监控,结果如下:
从上图可以看出,我们的Redis和Redis Exporter运行正常,能够正常采集数据。
接下来,我们就需要来配置Prometheus的监控配置文件,以便于我们的Prometheus获取监控内容,监控项内容如下:
- job_name: 'redis'
static_configs:
- targets: ['redis.pzz.svc.cluster.local:9121']
注意,我这里使用了pzz的namespace,其他配置请修改相关配置。配置完成后的Prometheus的configmap文件如下所示:
完成上述配置后,我们可以删除该配置文件,然后重新生成,如下所示:
之后,我们可以查看Prometheus对应的Service的端口号,如下所示:
最后,我们打开浏览器,尝试访问Prometheus的Targets,出现如下所示的页面表示Prometheus还没有收集完成数据。
等到一段时间后,出现如下页面,表示Prometheus已经工作正常。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。