“Prometheus监控Redis集群”的版本间的差异
跳到导航
跳到搜索
(未显示同一用户的15个中间版本) | |||
第1行: | 第1行: | ||
+ | [[category:ops]] [[category:container]] [[category:prom]] | ||
+ | |||
=pre= | =pre= | ||
+ | [[Monitoring with prometheus]] | ||
+ | |||
+ | |||
+ | |||
Prometheus 监控 Redis cluster,其实套路都是一样的,使用 exporter。 | Prometheus 监控 Redis cluster,其实套路都是一样的,使用 exporter。 | ||
exporter 负责采集指标,通过 http 暴露给 Prometheus 拉取。granafa 则通过这些指标绘图展示数据。Prometheus 收集的数据还会根据你设置的告警规则判断是否要发送给 Alertmanager, Alertmanager 则要判断是否要发出告警。 | exporter 负责采集指标,通过 http 暴露给 Prometheus 拉取。granafa 则通过这些指标绘图展示数据。Prometheus 收集的数据还会根据你设置的告警规则判断是否要发送给 Alertmanager, Alertmanager 则要判断是否要发出告警。 | ||
第8行: | 第14行: | ||
Pending 你设置的等待时间,即规则里面的 for | Pending 你设置的等待时间,即规则里面的 for | ||
Firing 发送告警到邮件、钉钉之类的 | Firing 发送告警到邮件、钉钉之类的 | ||
+ | |||
=* redis_exporter= | =* redis_exporter= | ||
− | ** redis_exporter from binary | + | ==** redis_exporter from binary == |
<pre> | <pre> | ||
解压而已 | 解压而已 | ||
− | #is me | + | #is me 如果不同一台机器 也是只跑一个 node 加上所以的IP on prometheus.yml就行了呢 |
./redis_exporter -redis.addr 192.168.10.193:7000 -redis.password 3passd123yui -web.listen-address 192.168.10.193:9121 | ./redis_exporter -redis.addr 192.168.10.193:7000 -redis.password 3passd123yui -web.listen-address 192.168.10.193:9121 | ||
第28行: | 第35行: | ||
− | https://github.com/oliver006/redis_exporter/releases/download | + | # 这些看起来 监听内网IP 其它在外网 开了防火墙还是可以通的呢 |
+ | |||
+ | #启动文件 | ||
+ | cat /usr/lib/systemd/system/redis-exporter.service | ||
+ | [Unit] | ||
+ | Description=prometheus redis exporter | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | Type=simple | ||
+ | Restart=on-failure | ||
+ | ExecStart=/data/mon/redis_exporter/redis_exporter \ | ||
+ | -redis.addr 172.31.22.218:7000 \ | ||
+ | -redis.password hpllopasswD9923 \ | ||
+ | -web.listen-address 172.31.22.218:9121 | ||
+ | |||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | |||
+ | |||
+ | systemctl daemon-reload#记得加x | ||
+ | systemctl enable redis-exporter.service | ||
+ | systemctl start redis-exporter.service | ||
+ | |||
+ | |||
+ | https://github.com/oliver006/redis_exporter/releases/download/v1.5.3/redis_exporter-v1.5.3.linux-amd64.tar.gz | ||
+ | |||
+ | https://github.com/oliver006/redis_exporter/releases/ | ||
+ | </pre> | ||
+ | |||
+ | ==**ins redis_exporter using docker== | ||
+ | https://hub.docker.com/r/oliver006/redis_exporter | ||
+ | |||
+ | ==** prome conf== | ||
+ | <pre> | ||
+ | #这个成功的单机配置 记得要 '' 全部当str | ||
+ | - job_name: 'redis' | ||
+ | static_configs: | ||
+ | - targets: ['192.168.11.125:9121'] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | #暂时可以在prome 出数据的redis cluster | ||
+ | #scrape_configs: | ||
+ | - job_name: 'redis_cluster' | ||
+ | scrape_interval: 10s | ||
+ | static_configs: | ||
+ | #- targets: ['192.168.11.125:9121'] | ||
+ | ## config for the multiple Redis targets that the exporter will scrape | ||
+ | # - job_name: 'redis_exporter_targets' | ||
+ | # static_configs: | ||
+ | - targets: | ||
+ | - redis://192.168.10.193:7000 | ||
+ | - redis://192.168.10.193:7001 | ||
+ | - redis://192.168.10.193:7002 | ||
+ | - redis://192.168.10.193:7003 | ||
+ | - redis://192.168.10.193:7004 | ||
+ | - redis://192.168.10.193:7005 | ||
+ | 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.10.193:9121 | ||
+ | |||
+ | http://192.168.10.144:9090/graph?g0.range_input=1h&g0.expr=redis_cluster_state&g0.tab=1 | ||
+ | |||
+ | graph 输入下面的 命令 | ||
+ | redis_cluster_state | ||
+ | |||
+ | #for market | ||
+ | #scrape_configs: | ||
+ | - job_name: 'market_redis_cluster' | ||
+ | static_configs: | ||
+ | #- targets: ['192.168.11.125:9121'] | ||
+ | ## config for the multiple Redis targets that the exporter will scrape | ||
+ | # - job_name: 'redis_exporter_targets' | ||
+ | # static_configs: | ||
+ | - targets: | ||
+ | - redis://10.3.10.141:7000 | ||
+ | - redis://10.3.10.141:7001 | ||
+ | - redis://10.3.10.142:7002 | ||
+ | - redis://10.3.10.142:7003 | ||
+ | - redis://10.3.10.143:7004 | ||
+ | - redis://10.3.10.143:7005 | ||
+ | metrics_path: /scrape | ||
+ | relabel_configs: | ||
+ | - source_labels: [__address__] | ||
+ | target_label: __param_target | ||
+ | - source_labels: [__param_target] | ||
+ | target_label: instance | ||
+ | - target_label: __address__ | ||
+ | replacement: 10.3.10.142:9121 | ||
+ | </pre> | ||
+ | |||
+ | =err= | ||
+ | |||
<pre> | <pre> | ||
+ | 现在 外网能telnet 通 hello的 redis 端口 不过 prometheus 那里还是 0 | ||
+ | |||
+ | |||
+ | 记得要用 dos2unix 去格式化一下 不然配置很容易出错的 yml | ||
+ | |||
+ | 0 err="error loading config from \"/etc/prometheus/prometheus.yml\": couldn't load configuration (--config.file=\"/etc/prometheus/prometheus.yml\"): parsing YAML file /etc/prometheus/prometheus.yml: yaml: line 47: did not find expected key" | ||
+ | |||
+ | |||
+ | </pre> | ||
+ | =* grafana 模板 = | ||
+ | ~/prometheus/redis_mon.yml | ||
+ | |||
+ | 有个 763 也是不错呢 | ||
+ | |||
+ | * 如果client export 那边服务没起来 是跑不动 9090的 例如 昨天加的mysql 没跑 今天加redis 完全打不开 | ||
+ | |||
+ | |||
+ | * redis 单机 版本 | ||
+ | |||
+ | 图形garafa 还不行 有空再看吧 | ||
+ | https://yq.aliyun.com/articles/251478 | ||
+ | |||
+ | =* see also= | ||
+ | [https://www.cnblogs.com/fsckzy/p/12053604.html Prometheus 监控Redis的正确姿势(redis集群)] | ||
+ | |||
+ | [https://www.cnblogs.com/zeq912/p/10614019.html prometheus监控redis] | ||
+ | |||
+ | https://github.com/oliver006/redis_exporter | ||
+ | |||
+ | https://www.jianshu.com/p/fba020bf5716 | ||
+ | [https://www.cnblogs.com/gjc592/p/11412080.html Prometheus+Grafana监控MySQL、Redis数据库 ] | ||
− | + | [https://zhuanlan.zhihu.com/p/70091205 Prometheus Exporter 监控 Redis] |
2020年9月24日 (四) 07:27的最新版本
目录
pre
Prometheus 监控 Redis cluster,其实套路都是一样的,使用 exporter。 exporter 负责采集指标,通过 http 暴露给 Prometheus 拉取。granafa 则通过这些指标绘图展示数据。Prometheus 收集的数据还会根据你设置的告警规则判断是否要发送给 Alertmanager, Alertmanager 则要判断是否要发出告警。
Alertmanager 告警分为三个阶段
Inactive 触发告警的规则会被发送到这来。 Pending 你设置的等待时间,即规则里面的 for Firing 发送告警到邮件、钉钉之类的
* redis_exporter
** redis_exporter from binary
解压而已 #is me 如果不同一台机器 也是只跑一个 node 加上所以的IP on prometheus.yml就行了呢 ./redis_exporter -redis.addr 192.168.10.193:7000 -redis.password 3passd123yui -web.listen-address 192.168.10.193:9121 ./redis_exporter -redis.addr 192.168.10.193:7000 -redis.password 3passd123yui -web.listen-address 192.168.10.193:9121 nohup ./redis_exporter -redis.addr 172.18.11.139:7000 -redis.password xxxxxx -web.listen-address 172.18.11.139:9121 > /dev/null 2>&1 & -redis.addr string -redis.password nohup ./redis_exporter -redis.password xxxxx & # 这些看起来 监听内网IP 其它在外网 开了防火墙还是可以通的呢 #启动文件 cat /usr/lib/systemd/system/redis-exporter.service [Unit] Description=prometheus redis exporter After=network.target [Service] Type=simple Restart=on-failure ExecStart=/data/mon/redis_exporter/redis_exporter \ -redis.addr 172.31.22.218:7000 \ -redis.password hpllopasswD9923 \ -web.listen-address 172.31.22.218:9121 [Install] WantedBy=multi-user.target systemctl daemon-reload#记得加x systemctl enable redis-exporter.service systemctl start redis-exporter.service https://github.com/oliver006/redis_exporter/releases/download/v1.5.3/redis_exporter-v1.5.3.linux-amd64.tar.gz https://github.com/oliver006/redis_exporter/releases/
**ins redis_exporter using docker
https://hub.docker.com/r/oliver006/redis_exporter
** prome conf
#这个成功的单机配置 记得要 '' 全部当str - job_name: 'redis' static_configs: - targets: ['192.168.11.125:9121'] #暂时可以在prome 出数据的redis cluster #scrape_configs: - job_name: 'redis_cluster' scrape_interval: 10s static_configs: #- targets: ['192.168.11.125:9121'] ## config for the multiple Redis targets that the exporter will scrape # - job_name: 'redis_exporter_targets' # static_configs: - targets: - redis://192.168.10.193:7000 - redis://192.168.10.193:7001 - redis://192.168.10.193:7002 - redis://192.168.10.193:7003 - redis://192.168.10.193:7004 - redis://192.168.10.193:7005 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.10.193:9121 http://192.168.10.144:9090/graph?g0.range_input=1h&g0.expr=redis_cluster_state&g0.tab=1 graph 输入下面的 命令 redis_cluster_state #for market #scrape_configs: - job_name: 'market_redis_cluster' static_configs: #- targets: ['192.168.11.125:9121'] ## config for the multiple Redis targets that the exporter will scrape # - job_name: 'redis_exporter_targets' # static_configs: - targets: - redis://10.3.10.141:7000 - redis://10.3.10.141:7001 - redis://10.3.10.142:7002 - redis://10.3.10.142:7003 - redis://10.3.10.143:7004 - redis://10.3.10.143:7005 metrics_path: /scrape relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 10.3.10.142:9121
err
现在 外网能telnet 通 hello的 redis 端口 不过 prometheus 那里还是 0 记得要用 dos2unix 去格式化一下 不然配置很容易出错的 yml 0 err="error loading config from \"/etc/prometheus/prometheus.yml\": couldn't load configuration (--config.file=\"/etc/prometheus/prometheus.yml\"): parsing YAML file /etc/prometheus/prometheus.yml: yaml: line 47: did not find expected key"
* grafana 模板
~/prometheus/redis_mon.yml
有个 763 也是不错呢
- 如果client export 那边服务没起来 是跑不动 9090的 例如 昨天加的mysql 没跑 今天加redis 完全打不开
- redis 单机 版本
图形garafa 还不行 有空再看吧 https://yq.aliyun.com/articles/251478
* see also
Prometheus 监控Redis的正确姿势(redis集群)
https://github.com/oliver006/redis_exporter
https://www.jianshu.com/p/fba020bf5716