使用Prometheus发现在Kubernetes上运行的应用程序

Prometheus支持抓取应用程序的多个实例。 由于其IP地址会发生变化,因此需要动态发现在协调环境中运行的应用程序。 可以将Prometheus配置为使用Kubernetes API动态地发现正在运行的实例列表中的更改。

下面显示了一个简单的Prometheus示例,该示例对具有多个Pod实例的应用程序进行检测。

普罗米修斯配置

我们配置Prometheus来发现我们的config-example应用程序的pod。

 global: scrape_interval:    15s external_labels: monitor: 'example-monitor'  scrape_configs:  - job_name: 'example-metric' scrape_interval: 5s metrics_path: /metrics/ scheme: https basic_auth: username: admin password: adminadmin tls_config: insecure_skip_verify: true kubernetes_sd_configs: - role: endpoints namespaces: names: - default relabel_configs: - source_labels: [__meta_kubernetes_service_label_app] separator: ; regex: config-example replacement: $ 1 action: keep - source_labels: [__meta_kubernetes_endpoint_port_name] separator: ; regex: https replacement: $ 1 action: keep - source_labels: [__meta_kubernetes_namespace] separator: ; regex: (.*) target_label: namespace replacement: $ 1 action: replace - source_labels: [__meta_kubernetes_pod_name] separator: ; regex: (.*) target_label: pod replacement: $ 1 action: replace - source_labels: [__meta_kubernetes_service_name] separator: ; regex: (.*) target_label: service replacement: $ 1 action: replace - source_labels: [__meta_kubernetes_service_name] separator: ; regex: (.*) target_label: job replacement: ${ 1 } action: replace - separator: ; regex: (.*) target_label: endpoint replacement: https action: replace 

我们需要调整app标签(在此处为config-example )和端口名称( https ),在该端口下可以使用监视端点。

仪表应用

本示例使用在Open Liberty之上运行的MicroProfile Metrics端点。 该应用程序在端口9443和路径/metrics/下以Prometheus格式公开/metrics/

在这里,您可以看到示例服务和部署:

 kind: Service  apiVersion: v1  metadata: name: config-example labels: app: config-example  spec: selector: app: config-example ports: - port: 9443 name: https - port: 9080 name: http 
 kind: Deployment  apiVersion: apps/v1beta1  metadata: name: config-example  spec: replicas: 2 template: metadata: labels: app: config-example spec: containers: - name: config-example image: sdaschner/config-example: 1 # ... 

您可以在GitHub上找到完整的示例,包括正在运行的应用程序。

Prometheus设置和RBAC

为了使该示例适用于RBAC Kubernetes设置,Prometheus服务帐户需要具有正确的权限。 因此,我们将在此处创建服务帐户和相应的群集角色,如YAML定义中所述。 同样,我们在创建Prometheus部署时指定服务帐户。

我们为Prometheus实例创建部署和服务。

 kind: Service  apiVersion: v1  metadata: name: prometheus labels: app: prometheus  spec: selector: app: prometheus ports: - port: 9090 name: http 
 kind: Deployment  apiVersion: apps/v1beta1  metadata: name: prometheus  spec: replicas: 1 template: metadata: labels: app: prometheus version: v1 spec: serviceAccountName: prometheus containers: - name: prometheus image: prom/prometheus:v2. 7.1 ports: 9090 - containerPort: 9090 volumeMounts: - name: prometheus-config-volume mountPath: /etc/prometheus/prometheus.yml subPath: prometheus.yml volumes: - name: prometheus-config-volume configMap: name: prometheus-config restartPolicy: Always 

前面显示的配置可以从配置映射中注入实例。

 kind: ConfigMap  apiVersion: v1  metadata: name: prometheus-config  data: prometheus.yml: | global: scrape_interval:    15s # content as shown earlier ... 

有关Prometheus配置的完整说明,请参阅文档 。

访问目标

现在,正在运行的Prometheus实例可以发现两个正在运行的配置示例应用程序,它们都作为Kubernetes容器运行:

 gt; kubectl get pods NAME READY STATUS RESTARTS AGE config-example-69974cbc96-dqd96 gt; kubectl get pods NAME READY STATUS RESTARTS AGE config-example-69974cbc96-dqd96 1 / 1 Running 0 4m config-example-69974cbc96-zstg7 1 / 1 Running 0 4m grafana-8694db9d4f-nvn5s 1 / 1 Running 0 3m prometheus-594dd9cdb8-95ftz 1 / 1 Running 0 3m 

我们可以在Prometheus配置下看到实际目标,包括其IP地址。

Kubernetes与Prometheus

看一下GitHub上的完整示例。 您可能还会看到以下视频,了解如何使用MicroProfile在Java EE应用程序中实现业务指标。

对于定义了更多应用程序的更复杂的微服务示例,使用纯Prometheus配置的这种方法可能有点麻烦。 为了减少样板代码,开发人员可以使用抽象化较低层配置的解决方案,例如Prometheus Operator 。 在下一篇文章中,我们将看到Prometheus Operator如何促进应用程序的配置。

监控愉快!

翻译自: https://www.javacodegeeks.com/2019/02/applications-running-kubernetes-prometheus.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可网管交换机与非网管交换机的区别

交换机的种类按是否可网管,交换机分为可网管交换机和不可网管交换机。那么,可网管交换机与非网管交换机的区别主要体现在哪里呢?接下来我们就跟随飞畅科技的小编一起来详细了解下吧! 一、可网管交换机与非网管交换机的区别 不可网…

bloomfilter的java实现,BloomFilter(布隆过滤器)原理及实战详解

什么是 BloomFilter(布隆过滤器)布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。主要用于判断一个元素是否在一个集合中。通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景,这…

六种让路由器与交换机更加安全的方法

传统的网络安全技术侧重于系统入侵检测,反病毒软件或防火墙。内部安全如何?在网络安全构造中,交换机和路由器是非常重要的,在七层网络中每一层都必须是安全的。很多交换机和路由器都有丰富的安全功能,要了解有些什么&a…

spring jaxb_自定义Spring命名空间使JAXB变得更容易

spring jaxb首先,让我大声说一下: Spring不再是XML繁重的了 。 实际上,如今,您可以使用大量注释, Java配置和Spring Boot来编写几乎没有XML或根本没有XML的Spring应用程序。 认真地停止谈论Spring和XML,这已…

什么是8口poe交换机?8口poe交换机有哪些特点?

八口POE交换机(POE31008P)提供了从一个网络节点利用5类以太网线的电源和数据的传输。81端口快速以太网端口能用于10/100Mps的连接,其中8个端口可以提供工业标准的IEEE802.3af电源。先进的自感知算法只为标准PD终端设备供电,因而不…

如何为您的AWS账户设置多因素身份验证(MFA)

步骤1 : 转到AWS控制台并使用您的用户名密码登录。 第2步 : 转到服务-> IAM 第三步: 单击您的根帐户上的激活MFA 第四步 : 在步骤3中,点击屏幕上的管理MFA按钮。 步骤5: 单击分配MFA设备。选…

电视光端机常见故障问题介绍

一提到电视光端机,可能就会让人想起传输距离远、保密性强、抗干扰能力强、传输性能好、容量大等优点,当然也不会忘记价格高这个特点。但是,我们在使用电视光端机的过程中难免会出现各种各样的故障问题,接下来就由飞畅科技的小编来…

电视光端机应用范围及故障维护问题介绍

随着国内通信网络的发展,发展势头强劲,电视光端机应用的监控范围也越来越广。目前,电视光端机应用最多的方面就是长距离视频和数据的传输。在高速公路、银行、电力、电信等的监控领域都要求对视频信号进行远程的传输,目前主要的解…

php项目部署lnmp,如何在lnmp环境里,部署多个php项目?

我有2个php项目,想放在同一个lnmp环境里如果你说两个项目是通过两个不同的域名来访问的话,直接参考以下conf文件内容第一段:server {listen 80 ;server_name www.host1.cc; #监听的hostnameroot /var/www/www_host1_cc/; #第一个项目…

linux文件系统的管理方法,Linux学习笔记:2.文件系统的管理命令(2)

1.命令touch:功能:若之前对应文件不存在,创建一个新文件;若存在,则修改这个文件的最后修改期限。语法:touch [参数] [文件名]主要参数:-a:只更改存取时间-c:不建立任何文…

光端机2m是什么意思,光端机E1与2M有什么关系?

光端机就是将多个E1信号变成光信号的设备,光端机也叫光传输设备。光端机根据传输E1(就是2M)口数量的多少,价格也不同。一般最小的光端机可以传输4个E1目前最大的光端机可以传输4032个E1每个E1包括30个电话。那么,光端机…

ida调试linux程序,MAC使用IDA PRO远程调试LINUX程序

1 背景在学习Linux系统上的一些漏洞知识的时候,往往需要进行“实地测试”,但是在Linux系统上进行调试并不太方便,因为LINUX自带的GDB调试工具真的不太人性化,即使有GDBTUI之类的“伪图形界面调试器”,也跟IDA PRO之类的…

RS485数据光端机产品特点及技术参数介绍

485光端机提供RS-232/485/422串口转光纤功能,实现光纤与RS-232/485/422串口的数据双向透明传输。由于光纤传输距离远(多模2KM,单模可达20,40,60KM),抗干扰能力强,是连接远程终端单元…

传输设备,光端机的应用及故障分析

光端机是光通信系统中的传输设备,主要是进行光电转换及传输功用。一般用于电信、电力、监控、工业控制、视频传输等功能,在各个行业有着广泛的应用。常说的光端机指的是用于监控系统用来传输视频、数据、以太网、音频等综合信息的光端机。主要分模拟光端…

什么是网络光纤收发器?

网络光纤收发器,将网络中的连接介质换为光纤。光纤的低损耗、高抗电磁干扰性,在使网络传输距离从200米扩展到2公里至几十公里,乃至于上百公里的同时,也使数据通讯质量有了较大的提高。它使服务器、中继器、集线器、终端机与终端机…

关于光纤收发器的一些基本常识介绍

光纤收发器是网络数据传输中必不可缺少的一种设备,那么,什么是光纤收发器呢,光纤收发器都有什么组成的呢,光纤收发器是怎么分类的呢,光纤收发器有哪些特点呢,光纤收发器在数据传播过程中起到什么作用呢&…

工业级光纤收发器产品性能特点介绍

工业级光纤收发器是一种可以延长传输距离的一种工业交换机,它具有便捷、维护简单、抗干扰性能强、性能强大、运行稳定等优点,产品设计符合以太网标准,性能稳定可靠。那么在,数据通信行业中,工业级光纤收发器到底扮演者…

工业级光纤收发器如何正确使用和维护?

工业级光纤收发器在越来越多的场景中运用,如何正确的使用和维护是延长工业级光纤收发器寿命的重要手段。那么,如何正确使用及维护光纤收发器呢?接下来飞畅科技的小编就给大家简单梳理一下!一起来看看吧! 1、在使用中要…

JavaFX的科幻用户界面第1部分

使用JavaFX创建的Sci-Fi UI成形窗口 虚构的UI可以变成现实吗? 成长于80年代的小时候,我看到了自己的科幻电影,这确实激发了我对图形用户界面(GUI)的热爱,尤其是试图使科幻UI在现实世界中成为可能的想法。 …

NoSQL数据库程序员应该在2019年学习的5大知识

尽管Java或Web开发人员学习NoSQL数据库不是强制性的,但世界正朝着这个方向发展,Java和Web开发人员都应该熟悉NoSQL数据库。 如果您想知道NoSQL数据库是什么意思,那么这里是快速概述。 NoSQL数据库指的是非SQL,非关系或非SQL的非SQ…