monitoring with Prometheus
Prometheus是一款开源的监控工具,支持k8s metrics的数据格式,同时也支持通过k8s api进行服务发现从而实现对自定义的metrics进行监控。下面通过一个示例来介绍如何将Prometheus集成到k8s集群中。
参考资料
文中的示例具体参考了这篇文章:https://coreos.com/blog/monitoring-kubernetes-with-prometheus.html
Prometheus官方文档:https://prometheus.io/docs
镜像:quay.io/prometheus/prometheus:v1.0.1
示例
编排需要两个文件:prom-deployment.yml和prom-service.yml。前者用于创建deployment并运行一个pod,还创建了一个configmap用于配置Prometheus。后者用于对外提供Prometheus服务。
下面介绍一下configmap中的几个关键配置:
- scrape_configs用来配置数据源(Prometheus称之为target),每个target可以用job_name来命名。Prometheus会定期向每个target发送http请求来获取metrics数据,默认path为/metrics。
- 示例中以kubernetes开头的job都是k8s相关的target,每个target配置的kubernetes_sd_configs就是告诉Prometheus如何通过k8s api发现target服务。
- 大多数情况下我们只需要配置示例中的kubernetes-nodes,其中kubernetes_sd_configs.role=node是必须的。配置之后Prometheus会自动发现各k8s node,并通过kubelet的api来获取metrics,如其中一个node target为192.168.1.97:10250/metrics。
- kubelet提供的metrics通常已满足大多数需求,它能提供各容器的CPU、内存、流量、FS IO等监控数据。
- 我们也可以提供自定义的metrics数据,包括service维度和pod维度。这需要我们自己实现/metrics接口供Prometheus获取数据。配置方式可参考示例中的kubernetes-services和kubernetes-pods
- 每个target的relabel_configs用来处理数据对应的label,__meta开头的label是Prometheus为我们封装好的label,可以用它来生成我们需要的label。label可以理解为索引,在Prometheus查询中扮演着重要角色。
- 大多数情况下,只需要设置kubernetes_sd_configs.in_cluster=true配置就可以完成k8s api的认证方式配置(该方式自动使用serviceaccount)。示例运行的环境有一些特殊设置,为此使用了tls_config和bearer_token进行了配置。
通过两个yaml文件就可以完成Prometheus的部署,在浏览器中访问service可以进入Prometheus的控制台。通常在Prometheus pod启动几分钟之后才能看到监控数据。
相比于heapster api,Prometheus提供的查询API功能更加强大,可以基于label来实现复杂查询。文档也相对完善。但Prometheus从kubelet api中查询到的metrics种类很多,每种metric含义需要进一步查找文档甚至看源码来确认。
monitoring with Prometheus的更多相关文章
- kubernetes之监控Prometheus实战--prometheus介绍--获取监控(一)
Prometheus介绍 Prometheus是一个最初在SoundCloud上构建的开源监控系统 .它现在是一个独立的开源项目,为了强调这一点,并说明项目的治理结构,Prometheus 于2016 ...
- Prometheus使用入门
Monitoring with Prometheus读书笔记 原书见: https://www.safaribooksonline.com/library/view/monitoring-with-p ...
- 部署 Prometheus Operator - 每天5分钟玩转 Docker 容器技术(179)
本节在实践时使用的是 Prometheus Operator 版本 v0.14.0.由于项目开发迭代速度很快,部署方法可能会更新,必要时请参考官方文档. 下载最新源码 git clone https: ...
- k8s部署prometheus
https://www.kancloud.cn/huyipow/prometheus/527092 https://songjiayang.gitbooks.io/prometheus/content ...
- Monitor Minio server with Prometheus
转自:https://blog.minio.io/monitor-minio-server-with-prometheus-4ed537abcb74 Prometheus is an open sou ...
- kubernetes监控--Prometheus
本文基于kubernetes 1.5.2版本编写 kube-state-metrics kubectl create ns monitoring kubectl create sa -n monito ...
- 微服务监控神器Prometheus的安装部署
本文涉及:如何在k8s下搭建Prometheus+grafana的监控环境 基本概念 Prometheus提供了容器和云原生领域数据搜集.存储.处理.可视化和告警一套完整的解决方案,最初时是由Soun ...
- Kubernetes 系列(六):Kubernetes部署Prometheus监控
1.创建命名空间 新建一个yaml文件命名为monitor-namespace.yaml,写入如下内容: apiVersion: v1 kind: Namespace metadata: name: ...
- k8s Helm安装Prometheus Operator
Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装完成了k8s的集群和helm的安装,今天我们来看看Prometheus的监控怎么搞.Prometheus Operator ...
随机推荐
- AJAX使用说明书
AJAX简介 什么是AJAX AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异 ...
- MYSQL之库操作
一.系统数据库 information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等 mysql:核心数据库,里面包含用户.权限. ...
- Android TabLayout 在宽屏幕上tab不能平均分配的问题解决
当TabLayout 在宽屏幕的设备上,如平板横屏的时候,tab的宽度超过一定值后,就不在平均分配宽度,而是居中显示.此时设置 app:tabMode="fixed"或者 top_ ...
- shiro的sessionManager类继承结构及主要类方法
shiro1.3.2 sessionManage的作用是对会话进行管理. 1.类结构 2.主要接口介绍 SessionManager: 包括两个方法,一个是新建会话,一个是通过key获取会话 Vali ...
- Linux-centos-7.2-64bit 安装配置mysql
2018-04-12 安装在/usr/local/下,配置文件在/etc/my.ini 1.下载mysql安装包到 /usr/local/software cd /usr/local/software ...
- from sys import argv
from sys import argv 初学理解: sys 为内置模块,提供了许多函数和变量来处理 Python 运行时环境的不同部分.是固定的用法,不能自己随便写名字代替它,这行的作用就是要把用 ...
- 基于gin框架和jwt-go中间件实现小程序用户登陆和token验证
本文核心内容是利用jwt-go中间件来开发golang webapi用户登陆模块的token下发和验证,小程序登陆功能只是一个切入点,这套逻辑同样适用于其他客户端的登陆处理. 小程序登陆逻辑 小程序的 ...
- java--Iterator迭代问题:集合并发访问异常
用Iterator对数组进行迭代后,如果在迭代过程中对数组进行增加元素操作(这里iterator本身没有提供增加操作方法)时,就会抛出并发访问异常: 异常如下: Exception in thread ...
- [ Java学习基础 ] String字符串的基本操作
字符串的拼接 String字符串虽然是不可变的字符串,但也同样可以进行拼接,只是会产生一个新的对象.String字符串拼接的时候可以使用"+"运算符或String的concat(S ...
- 分析 ajax 请求并抓取今日头条街拍美图
首先分析街拍图集的网页请求头部: 在 preview 选项卡我们可以找到 json 文件,分析 data 选项,找到我们要找到的图集地址 article_url: 选中其中一张图片,分析 json 请 ...