数据模型 Prometheus 是将所有数据存为时序数据. 每个时序数据是由指标名称和可选的键值对(称之为标签)唯一标识. 度量类型 counter: 单调递增的计数器,如果标识已经服务的请求数量可以使用该类型. Guage: 仪表盘类型, 可以任意上升或者下降的度量类型. Histogram:直方图类型, 可以通过该类型获取分位数,计算分位点数据是在服务端完成的. Summary: 摘要类型,类似于直方图,计算分位点数据是在客户端完成的. job和实例 在prometheus中, 可以抓取的端…
前面的系列中, prometheus和alertmanager都是单机部署的,会有单机宕机导致系统不可用情况发生.本文主要介绍下prometheus和alertmanager的高可用方案. 服务的高可靠性架构(基本ha) promehtues是以pull方式进行设计的,因此手机时序资料都是通过prometheus本身主动发起的,而为了保证prometheus服务能够正常运行,只需要创建多个prometheus节点来收集同样的metrics即可. 架构图: 这个架构可以保证服务的高可靠性,但是并不…
prometheus安全 我们这里说的安全主要是基本认证和https2种, 目前这2种安全在prometheus中都没有的, 需要借助第三方软件实现, 这里以nginx为例. 基本认证 配置基本认证 在前面的部署中,我们部署完毕prometheus server 后, 可以通过对应的http://192.168.100.10:9090就可以访问到我们的 表达式浏览器, 进行promql的查询了. 这是很不安全, 必要情况下,我们需要加入基本认证, 只有认证过的用户才能访问页面,进行数据的查询.…
由于网络问题或者安全问题,可能我们的数据无法直接暴露出一个entrypoint 给prometheus采集. 这个时候可能就需要一个pushgateway来作为中间者完成中转工作.  prometheus还是采用pull方式来采集pushgateway的数据,我们的采集端通过push方式把数据push给pushgateway,来完成数据的上报. pushgateway的安装 [root@node01 src]# wget https://github.com/prometheus/pushgat…
在Prometheus的报警系统中,是分为2个部分的, 规则是配置是在prometheus中的, prometheus组件完成报警推送给alertmanager的, alertmanager然后管理这些报警信息,包括静默.抑制.聚合和通过电子邮件.on-call通知系统和聊天平台等方法发送通知. 主要步骤如下 安装和部署alertmanager 在prometheus中配置alertmanager的地址信息. 在prometheus中设置报警规则 在alertmanager配置接受者信息等 安装…
在prometheus监控系统,prometheus的职责是采集,查询和存储和推送报警到alertmanager.本文主要介绍下prometheus的配置文件. 全局配置文件简介 默认配置文件 [root@node00 prometheus]# cat prometheus.yml.default # my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Defau…
exporter详解 前面的系列中,我们在主机上面安装了node_exporter程序,该程序对外暴露一个用于获取当前监控样本数据的http的访问地址, 这个的一个程序成为exporter,Exporter的实例称为一个target, prometheus通过轮训的方式定时从这些target中获取监控数据. exporter是什么 广义上向prometheus提供监控数据的程序都可以成为一个exporter的,一个exporter的实例称为target, exporter来源主要2个方面,一个是…
在前面的文章已经写了官方的几个exporter的使用了. 在实际使用环境中,我们可能需要收集一些自定义的数据, 这个时候我们一般是需要自己编写采集器的. 快速入门编写一个入门的demo 编写代码 from prometheus_client import Counter, Gauge, Summary, Histogram, start_http_server # need install prometheus_client if __name__ == '__main__': c = Coun…
prometheus监控系统的的报警规则是在prometheus这个组件完成配置的. prometheus支持2种类型的规则,记录规则和报警规则, 记录规则主要是为了简写报警规则和提高规则复用的, 报警规则才是真正去判定是否需要报警的规则. 报警规则中是可以使用记录规则的. 提供下我整理的node-exporter的记录规则和报警规则. node-exporter-record-rules.yml groups: - name: node-exporter-record rules: - exp…
alertmanager配置文件说明 alertmanager是通过命令行标记和配置文件配置的,命令行标记配置不可变的系统参数,配置文件定义抑制规则.通知路由和通知接收器.可以通过官方提供的routing tree editor 查看配置的路由树详细信息. 默认配置文件如下 [root@node00 ~]# cd /usr/local/prometheus/alertmanager/ [root@node00 alertmanager]# cat alertmanager.yml.default…
在prometheus中,我们可以使用web页面进行数据的查询和展示, 不过展示效果不太理想,这里使用一款专业的展示平台进行展示. grafana安装 # 下载wget https://dl.grafana.com/oss/release/grafana-6.3.6-1.x86_64.rpm # 安装-.x86_64.rpm # 查看配置文件 [root@node00 ~]# rpm -ql grafana |grep etc /etc/grafana /etc/init.d/grafana-s…
Prometheus promQL查询语言 Prometheus提供了一种名为PromQL (Prometheus查询语言)的函数式查询语言,允许用户实时选择和聚合时间序列数据.表达式的结果既可以显示为图形,也可以在Prometheus的表达式浏览器中作为表格数据查看,或者通过HTTP API由外部系统使用. 准备工作 在进行查询,这里提供下我的配置文件如下 [root@node00 prometheus]# cat prometheus.yml # my global config globa…
relabel_config 重新标记是一个功能强大的工具,可以在目标的标签集被抓取之前重写它,每个采集配置可以配置多个重写标签设置,并按照配置的顺序来应用于每个目标的标签集. 目标重新标签之后,以__开头的标签将从标签集中删除的. 如果使用只需要临时的存储临时标签值的,可以使用_tmp作为前缀标识. relabel的action类型 replace: 对标签和标签值进行替换. keep: 满足特定条件的实例进行采集,其他的不采集. drop: 满足特定条件的实例不采集,其他的采集. hashm…
Prometheus简介 prometheus受启发于Google的Brogmon监控系统(相似kubernetes是从Brog系统演变而来), 从2012年开始由google工程师Soundcloud以开源形式进行研发,并且与2015年早起对外发布早期版本. 2016年5月继kubernetes之后成为第二个加入CNCF基金会的项目,童年6月正式发布1.0版本.2017年底发布基于全兴存储层的2.0版本,能更好地与容器平台.云平台配合. prometheus的优势 prometheus是基于一…
下载 在prometheus的官网的download页面,可以找到prometheus的下载二进制包. [root@node00 src]# cd /usr/src/ [root@node00 src]# wget https://github.com/prometheus/prometheus/releases/download/v2.12.0/prometheus-2.12.0.linux-amd64.tar.gz [root@node00 src]# mkdir /usr/local/pr…
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_007_scrapy01.html scrapy爬虫学习系列二:scrapy简单爬虫样例学习: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_007_scrapy02.html scrapy爬虫学习系列三:scrapy部署到scrapyh…
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.html DocX开源WORD操作组件的学习系列二 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_csharp_005_docx2.html DocX开源WORD操作组件的学习系列三: http://www.cnblogs.com/zhaojiedi…
原文:.net reactor 学习系列(四)---.net reactor应用场景         前面已经学习了.net reactor一些基础知识,现在准备学习下实际的应用场景,只是简单的保护和许可证发放场景.如果想应用更高级的场景比如自动化程序许可证的发放及自定义客户端的过期提示等等就需要自己根据实际的需求在掌握基础知识的前提下自己思考了.        首先操作保护程序功能:        打开需要保护的程序:如下图              然后点击左边快捷面板的Protect,然后…
前言 本文来自Prometheus官网手册 和 Prometheus简介 说明 Prometheus通过命令行和配置文件进行配置,命令行配置不能修改的系统参数(例如存储位置,要保留在磁盘和内存中的数据量等),但配置文件定义了与抓取作业及其实例相关的所有内容,以及哪些规则文件的加载. Prometheus可以在运行时重新加载其配置. 如果新配置格式不正确,则更改将不会应用. 通过向Prometheus进程发送SIGHUP或向/-/reload端点发送HTTP POST请求(启用--web.enab…
前言 本文来自Prometheus官网手册1.2.3.4和 Prometheus简介1.2.3.4 记录规则 一.配置规则 Prometheus支持两种类型的规则,这些规则可以定期配置,然后定期评估:记录规则和警报规则. 要在Prometheus中包含规则,请创建包含必要规则语句的文件,并让Prometheus通过Prometheus配置中的rule_files字段加载文件, 规则文件使用YAML. 通过将SIGHUP发送到Prometheus进程,可以在运行时重新加载规则文件. 仅当所有规则文…
前言 本文来自Prometheus官网手册1.2.3 和 Prometheus简介1.2.3 PromQL操作符 一.二元操作符 Prometheus的查询语言支持基本的逻辑运算和算术运算.对于两个瞬时向量, 匹配行为可以被改变. 1.1 算术二元运算符 在Prometheus支持下面的二元算术操作符: + 加法 - 减法 * 乘法 / 除法 % 模 ^ 幂等 二元运算操作符定义在scalar/scalar(标量/标量).vector/scalar(向量/标量).和vector/vector(向…
前言 本文来自Prometheus官网手册和 Prometheus简介 Prothetheus查询 Prometheus提供一个函数式的表达式语言PromQL (Prometheus Query Language),可以使用户实时地查找和聚合时间序列数据.表达式计算结果可以在图表中展示,也可以在表达式浏览器中以表格形式展示,或者作为数据源, 以HTTP API的方式提供给外部系统使用. 一.例子 本文档仅供参考, 对于学习,从几个例子开始可能更容易. 二.表达式语言数据类型 在Prometheu…
前言 本文来自Prometheus官网手册 和 Prometheus简介 存储 Prometheus是一个本地磁盘时间序列数据库,但也可选择与远程存储系统集成,其本地时间序列数据库以自定义格式在磁盘上存储时间序列数据. 1.1 磁盘布局 采集的样本按每两个小时的时间段保存到一个目录,该目录包含一个或多个块文件,该文件包含该时间窗口的所有时间序列样本,以及元数据文件和索引文件(用于将度量名称和标签索引到块文件中的时间序列).通过API删除系列时,删除记录存储在单独的逻辑删除文件中(而不是立即从块文…
前言 本文来自Prometheus官网手册 和 Prometheus简介 HTTP API 在Prometheus服务器上的/api/v1下可以访问当前稳定的HTTP API. 将在该端点下添加任何非中断添加项. 一.格式概述 API返回是JSON格式,每个请求成功的返回值都是以2xx开头的编码.如果API处理的是无效请求,返回一个JSON错误对象,并返回下面的错误码: 400 Bad Request.当参数错误或者丢失时. 422 Unprocessable Entity.当一个表达式不能被执…
前言 本文来自Prometheus官网手册 和 Prometheus简介 FEDERATION 允许Prometheus服务器从另一台Prometheus服务器抓取选定的时间序列. 一,用例 联盟有不同的用例.通常,它用于实现可扩展的Prometheus监控设置或将相关指标从一个服务的Prometheus拉到另一个服务. 1.1 分层联盟 分层联盟使Prometheus可以扩展到具有数十个数据中心和数百万个节点的环境.在此用例中,联合拓扑就像一棵树,更高级别的Prometheus服务器从大量从属…
前言 本文来自Prometheus官网手册 和 Prometheus简介 说明 Prometheus是一个监控平台,通过在监控目标上的HTTP端点来收集受监控目标的指标.本指南将向您展示如何使用Prometheus安装,配置和监控我们的第一个资源. 您将下载,安装并运行Prometheus.您还将下载并安装exporter,这些工具可在主机和服务上公开时间序列数据.我们的第一个exporter将是Prometheus本身,它提供了有关内存使用,垃圾收集等的各种主机级指标. 下载 Promethe…
前言 本文来自Prometheus官网手册 和 Prometheus简介 什么是prometheus? Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包.自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区. 它现在是一个独立的开源项目,可以独立于任何公司进行维护. 为了强调这一点,并阐明项目的治理结构,Prometheus于2016年加入Cloud Native Computing Foundation,作为…
1.简介 Identity Server4支持用户名密码模式,允许调用客户端使用用户名密码来获得访问Api资源(遵循Auth 2.0协议)的Access Token,MS可能考虑兼容老的系统,实现了这个功能,但是不建议这么做. 2.实战一服务端配置 接着Identity Server4学习系列三的基础上,直接扩展里面的项目代码,让服务端同时支持密钥认证和用户名密码认证 第一步:扩展ThirdClients类,如下: /// <summary> /// 配置可以访问IdentityServer4…
前言 本文来自Prometheus官网手册1.Prometheus官网手册2 和 Prometheus简介 说明 Prometheus从根本上存储的所有数据都是时间序列: 具有时间戳的数据流只属于单个度量指标和该度量指标下的多个标签维度.除了存储时间序列数据外,Prometheus还可以生成临时派生的时间序列作为查询的结果. metrics和labels(度量指标名称和标签) 每一个时间序列数据由metric度量指标名称和它的标签labels键值对集合唯一确定. 这个metric度量指标名称指定…
node_exporter简介 node_exporter安装部署 [root@node00 ~]# cd /usr/src/ [root@node00 src]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz [root@node00 src]# mkdir /usr/local/exporter -pv mkd…