一、背景
用prometheus+grafana+redis_exporter监控redis,对redis 1主1从3哨兵 实例做一些业务分析。
prometheus、grafana安装机器: 192.168.1.101
redis_exporter 安装机器: 192.168.1.102
二、安装redis_exporter
在redis主从哨兵的maser节点(192.168.1.102):
wget https://github.com/oliver006/redis_exporter/releases/download/v0.21.2/redis_exporter-v0.21.2.linux-amd64.tar.gztar -zxf redis_exporter-v0.21.2.linux-amd64.tar.gzmkdir /usr/local/redis_exportermv redis_exporter /usr/local/redis_exporter/vim /usr/lib/systemd/system/redis_exporter.service
####################################################
[Unit]
Description=Redis Exporter
Wants=network-online.target
After=network-online.target[Service]
User=root
Group=root
Type=simple
ExecStart=/usr/local/redis_exporter/redis_exporter \-web.listen-address ":9121" \-redis.addr "redis://192.168.1.102:6381" \-redis.password "Redis@123"[Install]
WantedBy=multi-user.target####################################################systemctl daemon-reloadsystemctl start redis_exporter
systemctl enable redis_exporter
systemctl status redis_exporterss -tan | grep 9121
LISTEN 0 1024 [::]:9121 [::]:*
ESTAB 0 0 [::ffff:192.168.1.102]:9121 [::ffff:192.168.1.102]:42594
image.png
三、安装prometheus、grafana
在一台空闲新机器上:
安装prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.33.3/prometheus-2.33.3.linux-amd64.tar.gz
mkdir /var/lib/prometheus
tar -zxf prometheus-2.33.3.linux-amd64.tar.gz
mv prometheus-2.33.3.linux-amd64 /usr/local/prometheusvim /usr/lib/systemd/system/prometheus.service
##################################################
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/
After=network.target[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/usr/local/prometheus
ExecStart=/usr/local/prometheus/prometheus \
--web.listen-address=0.0.0.0:9090 \
--storage.tsdb.path="/var/lib/prometheus" \
--config.file=prometheus.yml
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=on-failure[Install]
WantedBy=multi-user.target##################################################vim /usr/local/prometheus/prometheus.yml
############################################################################
# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:- job_name: "redis-server"static_configs:- targets: ["192.168.1.102:9121"]###############################################################################systemctl start prometheus
systemctl enable prometheus
systemctl status prometheus# ss -tan | grep -w 9090
LISTEN 0 65535 [::]:9090 [::]:*