首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >kubernetes-23:监控redis-cluster

kubernetes-23:监控redis-cluster

作者头像
千里行走
发布于 2022-04-28 08:01:20
发布于 2022-04-28 08:01:20
96100
代码可运行
举报
文章被收录于专栏:千里行走千里行走
运行总次数:0
代码可运行

目录

(1).前置阅读

(2).前置准备

(3).容器化生产规划

(4).使用redisd-exporter监控redis实例

1.镜像选择

2.容器化配置

(5).容器化步骤

(6).关键配置

1.prometheus-redis-configmap.yaml

2.datasource.yml

3.provision.yml

4.exporter-deployment-redis-cluster.yaml

(7).最终效果与dashboard详解

(8).相关文章

架构实战交流钉钉群号:23394754

(1).前置阅读

需要先行部署grafana/prometheus,以及合理拓扑,参见:

grafana&prometheus生产级容器化监控-1:生产级容器化

(2).前置准备

容器化redis-cluster实例,可以使用:

https://github.com/hepyu/k8s-app-config/tree/master/yaml/min-cluster-allinone/redis-cluster-min

参考文章:

kubernetes-20:redis-cluster容器化

注意:

即使生产上redis集群本身没有放在K8S中,本文同样适用。redis-exporter放到K8S也是很划算的。

(3).容器化生产规划

原始图片位于:

https://github.com/hepyu/k8s-app-config/blob/master/product/standard/grafana-prometheus-pro/images/grafana-prometheus%E7%94%9F%E4%BA%A7%E7%BA%A7%E5%AE%9E%E8%B7%B5.jpg

如上图所示:

容器化多个prometheus实例

由于当数据量很大(metrics很多)或者grafana选择的时间跨度很大时,prometheus的吞吐性能会很有问题,再加上会有很多人通过grafana查看各业务数据,如果生产环境只部署一个prometheus,肯定是有问题的,prometheus会经常性崩溃。

同时,这样也可以设置不同的数据保存时间,比如对于mq来说,我希望保留更长时间的数据。

(4).使用redis-exporter监控redis-cluster实例

1.镜像选择

镜像:image: oliver006/redis_exporter:v0.28.0

容器化配置位于:

https://github.com/hepyu/k8s-app-config/tree/master/product/standard/grafana-prometheus-pro/exporter-redis

2.容器化配置

建立新的prometheus实例,专门用于存放redis-cluster实例的metrics,同时dashboards导入方式选择provisioning方式。

笔者提供生产级容器化配置,位于:

https://github.com/hepyu/k8s-app-config/tree/master/product/standard/grafana-prometheus-pro

prometheus-redis容器化配置:

https://github.com/hepyu/k8s-app-config/tree/master/product/standard/grafana-prometheus-pro/prometheus-redis

dashboard位置:

https://github.com/hepyu/k8s-app-config/tree/master/product/standard/grafana-prometheus-pro/grafana/provisioning/dashboards/redis

还有一个是单实例redis的dashboard,由于redis单例用法早就淘汰,这里不赘述,有兴趣可以看看。

(5).容器化步骤

大体步骤,注意本例配置默认使用local pv(生产环境需要换成云存储),需要使用者自行创建。

1.cd https://github.com/hepyu/k8s-app-config/tree/master/product/standard/grafana-prometheus-pro

#Kubectl apply -f grafana-prometheus-image-repo-secret.yaml (生产环境使用)

Kubectl apply -f grafana-prometheus-namespace.yaml

2.cd grafana-prometheus-pro/prometheus-redis

kubectl apply -f .

3.cd grafana-prometheus-pro/grafana

kubectl apply -f .

4.cd grafana-prometheus-pro/exporter-redis

Kubectl apply -f .

(6).关键配置

1.prometheus-redis-configmap.yaml

相对路径:prometheus-redis/prometheus-redis-configmap.yaml

配置服务发现,从k8s的那些pod拉取metrics:

代码语言:javascript
代码运行次数:0
运行
复制
label_exporter=redis, namespace=monitor的pod

relabel_configs:
- source_labels: [__meta_kubernetes_pod_label_exporter, __meta_kubernetes_namespace]
action: keep
regex: redis;monitor

2.datasource.yml

相对路径:grafana/provisioning/datasources

数据库prometheus-redis放到grafana的数据库列表中:

代码语言:javascript
代码运行次数:0
运行
复制
- name: prometheus-redis
type: prometheus
access: proxy
orgId: 1
url: http://prometheus-redis:9090
isDefault: false
jsonData:
tlsAuth: false
tlsAuthWithCACert: false

3.provision.yml

相对路径:grafana/provisioning/dashboards

将redis-dashboards放到grafana的dashboards列表中:

代码语言:javascript
代码运行次数:0
运行
复制
- name: 'redis-cluster'
orgId: 1
folder: 'redis-cluster'
folderUid: ''
type: file
options:
path: /var/lib/grafana/k8s-app-config/product/standard/grafana-prometheus-pro/grafana/provisioning/dashboards/redis

4.exporter-deployment-redis-cluster.yaml

env要配置被监控的redis-cluster:

- name: REDIS_ADDR

value: redis-hkc-0.redis-hkc.redis-cluster-min.svc.cluster.local:9720,redis-hkc-1.redis-hkc.redis-cluster-min.svc.cluster.local:9720,redis-hkc-2.redis-hkc.redis-cluster-min.svc.cluster.local:9720,redis-hkc-3.redis-hkc.redis-cluster-min.svc.cluster.local:9720,redis-hkc-4.redis-hkc.redis-cluster-min.svc.cluster.local:9720,redis-hkc-5.redis-hkc.redis-cluster-min.svc.cluster.local:9720

(7).最终效果与dashboard详解

1.总览

可以看到dashboard分5组:

下拉框说明:

2.master cluster info bgsave

master节点信息,主要是last bgsave的持续时间和发生时间,可以看到有负数存在,这个在grafana/prometheust体系中是普遍存在的,用于占位。

生产环境要用redis集群的哨兵模式,如果成本允许;bgsave可以关闭,对峰值时段的服务影响还是比较大的,会有很多尖锐的spike。

3.master cluster info

各项很好看懂,不再赘述。

4.node master

各项很好看懂,不再赘述。

(8).相关文章

grafana&prometheus生产级容器化监控-1:生产级容器化

kubernetes-20:redis-cluster容器化

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 千里行走 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
grafana&prometheus生产级容器化监控-3:监控mysql
1.prometheus-storage-mysql-configmap.yaml
千里行走
2019/10/22
1.1K0
grafana&prometheus生产级容器化监控-3:监控mysql
grafana&prometheus生产级容器化监控-1:生产级容器化
prometheus是时序数据库,相比传统数据库更适合存储监控类数据;是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统;同时也是云原生时代监控的事实标准。
千里行走
2019/10/14
1.2K0
grafana&prometheus生产级容器化监控-1:生产级容器化
kubernetes-20:redis-cluster容器化
笔者使用Redis容器化只用于本地环境,用于自己一些项目的调试(https://github.com/hepyu/saf)。
千里行走
2019/11/30
1.4K0
grafana&prometheus生产级容器化监控-4:使用kube-prometheus监控k8s集群
(1).关于prometheus-operator和kube-prometheus
千里行走
2019/12/26
3.1K0
grafana&prometheus生产级容器化监控-2:监控rocketmq
笔者为了简单快速,是直接调用rocketmq-console的ajax/http取现成数据,所以本例rocketmq-exporter的运行必须有对应的rocketmq-console实例。
Criss@陈磊
2019/10/24
1.6K0
微服务框架saf-1:容器化部署allinone-demo
3.解放业务,使业务方专注于业务逻辑本身:通过注解以搭积木方式引入各式资源,每个资源都是一行注解,极大提升业务方产出效率。
千里行走
2019/11/30
8550
rocketmq-6:golang实现的生产可用rocketmq-exporter
数据来源:从rocketmq-console的http请求获取数据。也就是说RocketmqExporter必须依赖rocketmq-console。好吧,我承认我图省事儿了^_^。
千里行走
2019/11/08
4.9K0
rocketmq-6:golang实现的生产可用rocketmq-exporter
kubernetes-10:prometheus-operator容器化
prometheus-operator是专门为k8s集群量身定做的,用于监控k8s集群,同时自带grafana,alertmanager报警等组件;
千里行走
2019/12/26
6640
微服务框架saf-2:容器化部署allinone-demo
(6).容器化部署saf-boot-starter-sample-allinone-service
千里行走
2019/12/16
5220
微服务框架saf-2:容器化部署allinone-demo
kubernetes监控-prometheus(十六)
通过各种exporter采集不同维度的监控指标,并通过Prometheus支持的数据格式暴露出来,Prometheus定期pull数据并用Grafana展示,异常情况使用AlertManager告警。
yuezhimi
2020/09/30
8230
kubernetes监控-prometheus(十六)
kubernetes-21:生产环境应用skywalking探针到apollo配置中心
3.制作apollo-skywalking-docker-image镜像注意sk-plugin选择
千里行走
2021/12/13
7460
kubernetes-21:生产环境应用skywalking探针到apollo配置中心
kubernetes监控-prometheus+grafana完美监控
通过各种exporter采集不同维度的监控指标,并通过Prometheus支持的数据格式暴露出来,Prometheus定期pull数据并用Grafana展示,异常情况使用AlertManager告警。
kubernetes中文社区
2019/06/21
6.4K0
kubernetes监控-prometheus+grafana完美监控
Kubernetes容器集群管理环境 - Prometheus监控篇
一、Prometheus介绍 之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana。Prometheus(普罗米修斯)是一个开源系统监控和警报工具,最初是在SoundCloud建立的。自2012年成立以来,许多公司和组织都采用了普罗米修斯,该项目拥有一个非常活跃的开发者和用户社区。它现在是一个独立的开放源码项目,并且独立于任何公司,为了强调该点并澄清项目的治理结构,Prometheus在2016年加入了云计算基金会,成为继Kubernetes之后的第二个托管项目。 Prometheus是用来收集数据的,同时本身也提供强大的查询能力,结合Grafana即可以监控并展示出想要的数据。
洗尽了浮华
2019/07/10
2.2K0
Kubernetes容器集群管理环境 - Prometheus监控篇
kubernetes-6:elasticsearch容器化
https://github.com/hepyu/k8s-app-config/tree/master/helm/min-cluster-allinone/es-min
千里行走
2019/07/03
1.2K0
kubernetes-6:elasticsearch容器化
Kubernetes 集群和应用监控方案的设计与实践
当你的应用部署到 Kubenetes 后,你很难看到容器内部发生了什么,一旦容器死掉,里面的数据可能就永远无法恢复,甚至无法查看日志以定位问题所在,何况一个应用可能存在很多个实例,用户的一个请求不指定被哪个容器处理了,这使得在 Kubernetes 中对应用进行故障排除较为复杂。在应用之外,由于 Kubernetes 作为基础设施,掌管这整个集群的生死,Kubernetes 的任何故障,必定影响到应用服务的运行,因此监控 Kubernetes 运行状况也至关重要。
痴者工良
2022/05/06
1.2K0
Kubernetes 集群和应用监控方案的设计与实践
容器化生产环境集成apollo配置中心与skywalking全链路追踪
3.制作apollo-skywalking-docker-image镜像注意sk-plugin选择
千里行走
2019/11/08
2.3K0
kubernetes-7:elasticsearch容器化
https://github.com/hepyu/k8s-app-config/tree/master/helm/min-cluster-allinone/es-min
千里行走
2021/10/28
1.1K0
kubernetes-7:elasticsearch容器化
Prometheus监控神器-Kubernetes篇(二)
本篇使用StorageClass来持久化数据,搭建Statefulset的Grafana,并且在Dashboard导入前配置前面已经创建好的Prometheus的集群内部访问地址,同时配置ingress-nginx外部访问。
Kubernetes技术栈
2020/09/09
8800
kubernetes-11:jenkins容器化
https://github.com/hepyu/k8s-app-config/tree/master/yaml/min-cluster-allinone/jenkins
千里行走
2019/07/03
6200
kubernetes-11:jenkins容器化
微服务框架saf-7:saf-http的sentinel流控demo体验和一些深入思考
本文主要是陈述sentinel如何使用,以及度量展现(grafana/prometheus),原理与机制并不会过多涉及(以后有时间再开)。
千里行走
2020/02/20
5660
推荐阅读
相关推荐
grafana&prometheus生产级容器化监控-3:监控mysql
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档