首先我们监控服务需要知道prometheus-operator是如何去工作的,才好去写相关的yaml配置,这里我划分成了5个部分,如果容器服务本身就以k8s来编排的,那就只需要三步,这里因为我的rabbitmq是部署在外面所以需要5步,它们分别是:

1.创建 Endpoints  # 将外部服务映射进来
 2.创建 Service   # 创建servicName,嫌麻烦也可以不写,这里1,2步只是为了隐藏真实的地址
 3.创建采集工具使用deploy部署
 4.创建采集工具Service ##clusterIP: None
 5.创建ServiceMonitor

我的MQ管理地址为 192.168.100.192 : 15672

vim prometheus-rabbitmq.yaml

apiVersion: v1
kind: Endpoints
metadata:
name: rabbitmq-management
labels:
k8s-app: rabbitmq-management
subsets:
- addresses:
- ip: 192.168.100.192
ports:
- name: api
port: 15672
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmq-management
labels:
k8s-app: rabbitmq-management
spec:
type: ClusterIP
ports:
- name: api
port: 15672
protocol: TCP
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: rabbitmq-exporter
spec:
replicas: 1
template:
metadata:
labels:
k8s-app: rabbitmq-exporter
spec:
containers:
- name: rabbitmq-exporter
image: kbudde/rabbitmq-exporter
env:
- name: PUBLISH_PORT
value: "9099"
- name: RABBIT_CAPABILITIES
value: "bert,no_sort"
- name: RABBIT_USER
value: "you user"
- name: RABBIT_PASSWORD
value: "you password"
- name: RABBIT_URL
value: http://rabbitmq-management:15672
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9099
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmq-exporter
labels:
k8s-app: rabbitmq-exporter
spec:
type: ClusterIP
clusterIP: None
selector:
k8s-app: rabbitmq-exporter
ports:
- name: api
port: 9099
protocol: TCP

kuctl apply -f prometheus-rabbitmq.yaml -n 指定命名空间 PS:我的是以项目+环境来区分的

上述可以进行测试

访问 curl http://10.244.6.145:9099/metrics

创建ServiceMonitor 让其能够自动发现并注册

vim prometheus-rabbitmq-k8s-monitoring.yaml

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: rabbitmq-exporter
namespace: monitoring
labels:
k8s-app: rabbitmq-exporter
namespace: monitoring
spec:
jobLabel: k8s-app
endpoints:
- port: api
interval: 30s
scheme: http
selector:
matchLabels:
k8s-app: rabbitmq-exporter
namespaceSelector:
matchNames:
- default #你采集的数据在哪里,就写它的namespaces

最后 kubectl apply -f prometheus-rabbitmq-k8s-monitoring.yaml

模版是获取的官网新增了namespaces变量,这样就方便多了。

至于规则告警,可以根据自己想要监测的数据来进行报警就不多说了。

prometheus-operator 监控 Rabbitmq集群的更多相关文章

  1. 使用Prometheus和Grafana监控RabbitMQ集群 (使用RabbitMQ自带插件)

    配置RabbitMQ集群 官方文档:https://www.rabbitmq.com/prometheus.html#quick-start 官方github地址:https://github.com ...

  2. prometheus operator(Kubernetes 集群监控)

    一.Prometheus Operator 介绍 Prometheus Operator 是 CoreOS 开发的基于 Prometheus 的 Kubernetes 监控方案,也可能是目前功能最全面 ...

  3. Rancher2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群

    目录 1.Prometheus & Grafana 介绍 2.环境.软件准备 3.Rancher 2.x 应用商店 4.一键式部署 Prometheus 5.验证 Prometheus + G ...

  4. zabbix3.2监控rabbitmq集群

    监控模板和脚本github地址:https://github.com/jasonmcintosh/rabbitmq-zabbix/tree/master/scripts/rabbitmq .将rabb ...

  5. 【集群监控】JMX exporter+Prometheus+Grafana监控Hadoop集群

    下载jmx_exporter的jar包 https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/ ...

  6. k8s中安装rabbitmq集群

    官方文档地址:https://www.rabbitmq.com/kubernetes/operator/quickstart-operator.html 要求 1.k8s版本要1.18及其以上 2.能 ...

  7. 基于prometheus监控k8s集群

    本文建立在你已经会安装prometheus服务的基础之上,如果你还不会安装,请参考:prometheus多维度监控容器 如果你还没有安装库k8s集群,情参考: 从零开始搭建基于calico的kuben ...

  8. Kubernetes之利用prometheus监控K8S集群

    prometheus它是一个主动拉取的数据库,在K8S中应该展示图形的grafana数据实例化要保存下来,使用分布式文件系统加动态PV,但是在本测试环境中使用本地磁盘,安装采集数据的agent使用Da ...

  9. Kubernetes集群部署史上最详细(二)Prometheus监控Kubernetes集群

    使用Prometheus监控Kubernetes集群 监控方面Grafana采用YUM安装通过服务形式运行,部署在Master上,而Prometheus则通过POD运行,Grafana通过使用Prom ...

随机推荐

  1. 2879. [NOI2012]美食节【费用流】

    Description CZ市为了欢迎全国各地的同学,特地举办了一场盛大的美食节.作为一个喜欢尝鲜的美食客,小M自然不愿意错过这场盛宴.他很快就尝遍了美食节所有的美食.然而,尝鲜的欲望是难以满足的.尽 ...

  2. log4j配置不生效

    可能原因是打包时候log4j.properties没有在classpath下面或者是加载时候被其他第三方jar包中的log4j.properties文件覆盖掉了,可以使用如下命令进行查看log4j具体 ...

  3. Day7 访问权限

    构造者模式思想 进行初始化,解决了多个构造器重载,构造器参数过多记不住的情况. package day7;//声明一个程序包 class Employee{ private String name; ...

  4. 约束,索引,rownum&rownum

    --constraint --not null 非空约束 --unique 唯一键 --非空&唯一 --自定义检查约束 --创建约束时,为约束起名 --在添加完列后,还可以添加约束 --除了n ...

  5. 有关linqtosql和EF的区别

    LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术.他们之间的本质区别在于EF对数据库架构和我们查询的类型实行了更好的解耦.使用EF,我们查询的对象不再 ...

  6. java学习笔记-JavaWeb篇三

    63 JSTL_表达式操作64 JSTL_流程控制操作 65 JSTL_迭代操作 66 JSTL_URL操作67 JSTL_改写MVC案例68 Filter概述 69 创建HttpFilter 70 ...

  7. (转)MySQL高可用方案MHA的部署和原理

    背后深层次的逻辑: MHA Node则运行在每个mysql节点上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它自动将最新数据的slave提升为master,然 ...

  8. Flask租房项目总结

    该Flask项目历时3天,开发小组6人,目的是开发一个租房web项目,该项目采用前后端分离模式. Flask租房项目总结 分析需求文档,需要完成的功能模块有: 登陆注册 首页展示,首页搜索 详情展示, ...

  9. 配置bond

    注意:配置bond要有两个以上的网口 1.配置文件所有目录:/etc/sysconfig/network-scripts 网口配置文件名规则:以ifcfg-开头,然后接着是网口名 例如:eth0的配置 ...

  10. HTTP中常见的各种状态码详解及解决方案

    总结了一些常见的http的状态码,以及常见的解决方案. 一.各范围内状态码大致含义 1xx:临时响应(Informational),需要请求者继续执行操作的状态代码,表示服务器正在接受请求. 2xx: ...