Prometheus監控redis使用的是redis_exporter, 作者GitHub: https://github.com/oliver006/redis_exporter
需要說明的是: redis_exporter 對於redis集群的監控表現不是太好, 作者建議為每個redis 實例啟動一個 redis_exporter, 如果一個服務器節點啟動了多個redis進程, 就需要啟動多個 redis_exporter
如果采用一個redis_exporter 采集多個 redis node 會導致其中一個 redis node 連不上.
1. redis_exporter安裝配置
# 下載redis_exporter wget https://github.com/oliver006/redis_exporter/releases/download/v1.3.4/redis_exporter-v1.3.4.linux-amd64.tar.gz # 解壓 tar xzf redis_exporter-v1.3.4.linux-amd64.tar.gz # 刪除下載的文件 rm -f redis_exporter-v1.3.4.linux-amd64.tar.gz # 安裝redis_exporter mv redis_exporter-v1.3.4.linux-amd64 /usr/local/ ln -sv /usr/local/redis_exporter-v1.3.4.linux-amd64 /usr/local/redis_exporter
2. redis_exporter啟動
# 直接啟動。 ## 無密碼 ./redis_exporter redis//192.168.11.110:6379 & ## 有密碼 redis_exporter -redis.addr 192.168.11.111:6379 -redis.password 123456
啟動參數說明:
- -redis.addr:指明 Redis 節點的地址,默認為 redis://localhost:6379(如果有多個redis實例, redis_exporter作者建議啟動多個redis_exporter進程來進行監控數據獲取)
- -redis.password:驗證 Redis 時使用的密碼;
- -redis.file:包含一個或多個redis 節點的文件路徑,每行一個節點,此選項與 -redis.addr 互斥。
- -web.listen-address:監聽的地址和端口,默認為 0.0.0.0:9121
3. 配置redis_exporter為系統服務方式啟動
# 添加redis_exporter啟動用戶 groupadd prometheus useradd -g prometheus -m -d /var/lib/prometheus -s /sbin/nologin prometheus # 創建redis_exporter系統服務配置文件及權限調整 touch /usr/lib/systemd/system/redis_exporter.service chown prometheus:prometheus /usr/lib/systemd/system/redis_exporter.service chown -R prometheus:prometheus /usr/local/redis_exporter* vim /usr/lib/systemd/system/redis_exporter.service # 將如下內容寫入到redis_exporter.service文件中 [Unit] Description=redis_exporter Documentation=https://github.com/oliver006/redis_exporter After=network.target [Service] Type=simple User=prometheus ExecStart=/usr/local/redis_exporter/redis_exporter -redis.addr 192.168.11.110:6379 -redis.password 0NZcyqRqLUteci7D Restart=on-failure [Install] WantedBy=multi-user.target
然后執行如下命令:
# 重載配置 systemctl daemon-reload # 設置開機啟動 systemctl enable redis_exporter 啟動redis_exporter systemctl start redis_exporter # 查看redis_exporter啟動狀態 systemctl status redis_exporter ss -tnl|grep 9121 netstat -tlnp |grep redis_exporte tcp6 0 0 :::9121 :::* LISTEN 22566/redis_exporte
至此, redis服務器端的redis_exporter已安裝配置完成, 接下來配置Prometheus server, 將redis_exporter采集到的數據獲取過來, 然后配置到Grafana中展示
4. 配置Prometheus server
4.1 加入redis_exporter配置
vim /usr/local/prometheus/prometheus.yml
將如下內容加入到Prometheus配置文件中
- job_name: 'PRO_REDIS_CULSTER' static_configs: - targets: - redis://192.168.11.110:6379 metrics_path: /scrape relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 192.168.11.110:9121 ## config for scraping the exporter itself - job_name: 'redis_exporter' static_configs: - targets: - 192.168.11.110:9121
或者添加如下配置到Prometheus配置文件中
- job_name: 'redis' scrape_interval: 10s static_configs: - targets: - ['192.168.11.110:9121']
4.2 重新加載Prometheus server配置
curl -X POST http://10.86.78.175:9090/-/reload
5. 配置Grafana展示
redis_exporter 在 Grafana 上為我們提供好了 Dashboard 模板:https://grafana.com/dashboards/763
根據文章https://www.cnblogs.com/miaocbin/p/12009974.html中描述的方法, 導入redis看板.