1 安装 redis_exporter
1.1 k8s启动redis_exporter
因为redis为一主两从,所以启动三个deployment,分别监听每个redis pod,且创建redis_exporter service,yaml文件如下:
redis-exporter.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-exporter-0
namespace: monitoring
labels:
app: redis-exporter
spec:
replicas: 1
selector:
matchLabels:
app: redis-exporter
template:
metadata:
labels:
app: redis-exporter
spec:
containers:
- name: redis-exporter-0
image: reg.hrlyit.com/common/redis_exporter:v1.3.2
args:
- "-redis.addr=redis-announce-0.default:6379" # Redis 服务地址
- "-redis.password=123456" # 若 Redis 有密码
ports:
- containerPort: 9121
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-exporter-1
namespace: monitoring
labels:
app: redis-exporter
spec:
replicas: 1
selector:
matchLabels:
app: redis-exporter
template:
metadata:
labels:
app: redis-exporter
spec:
containers:
- name: redis-exporter-1
image: reg.hrlyit.com/common/redis_exporter:v1.3.2
args:
- "-redis.addr=redis-announce-1.default:6379" # Redis 服务地址
- "-redis.password=123456" # 若 Redis 有密码
ports:
- containerPort: 9121
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-exporter-2
namespace: monitoring
labels:
app: redis-exporter
spec:
replicas: 1
selector:
matchLabels:
app: redis-exporter
template:
metadata:
labels:
app: redis-exporter
spec:
containers:
- name: redis-exporter-2
image: reg.hrlyit.com/common/redis_exporter:v1.3.2
args:
- "-redis.addr=redis-announce-2.default:6379" # Redis 服务地址
- "-redis.password=123456" # 若 Redis 有密码
ports:
- containerPort: 9121
---
apiVersion: v1
kind: Service
metadata:
name: redis-exporter-service
namespace: monitoring
labels:
app: redis-exporter
spec:
selector:
app: redis-exporter
ports:
- name: redis-exporter-9121
port: 9121
1.2 创建redis-ServiceMonitor
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: redis-exporter
namespace: monitoring
labels:
app: redis-exporter
spec:
endpoints:
- port: redis-exporter-9121
interval: 30s
jobLabel: app
namespaceSelector:
matchNames:
- monitoring
selector:
matchLabels:
app: redis-exporter
2 二进制部署
## 下载
wget https://github.com/oliver006/redis_exporter/releases/download/v1.69.0/redis_exporter-v1.69.0.linux-amd64.tar.gz
tar xvf redis_exporter-v1.69.0.linux-amd64.tar.gz
mv redis_exporter-v1.69.0.linux-amd64 /opt/soft/redis_exporter
## 配置系统服务
cat /lib/systemd/system/redis_exporter.service
[Unit]
Description=Redis Exporter
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/soft/redis_exporter/redis_exporter \
-redis.addr redis://localhost:6379 \ # Redis连接地址
-redis.password "your_password" \ # 密码认证(无密码可删除此行)
-web.listen-address :9121 # 监听端口:ml-citation{ref="4,7" data="citationList"}
Restart=always
[Install]
WantedBy=multi-user.target
## 启动
systemctl daemon-reload
systemctl enable --now redis_exporter
systemctl status redis_exporter
配置prometheus,并重启
- job_name: "redis-exporter"
static_configs:
- targets: ["10.188.3.118:9121 ","10.188.1.139:9121 ","10.188.1.3:9121 "]