0x00 概述 Grafana 是一个开源的,可以用于大规模指标数据的可视化项目,甚至还能对指标进行报警.基于友好的 Apache License 2.0 开源协议,目前是prometheus监控展示的首选.优点如下: 1.使用: 配置方便:支持Dashboard.Panel.Row等组合,且支持折线图.柱状图等多种图例 图表漂亮:可以选择暗黑系或纯白系,你也可以自己定义颜色 模板很多:grafana模板很活跃,有很多用户贡献的面板,直接导入就能用 支持多种数据源:grafana作为展示面板,支…
zabbix学习笔记:zabbix监控之短信报警 zabbix的报警方式有多种,除了常见的邮件报警外,特殊情况下还需要设置短信报警和微信报警等额外方式.本篇文章向大家介绍短信报警. 短信报警设置 短信报警的设置和邮件报警的思路是类似的,主要划分为一下几个过程: 1.编写短信报警的脚本: 2.在zabbix的操作界面添加短信报警媒介: 3.对指定的用户添加短信报警方式: 4.设置动作何时进行短信报警: 我们逐个来分解这些过程: 编写短信报警的脚本 短信报警借助于第三方平台,与邮件报警指定第三方的邮…
[HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设 敲黑板!! <q>元素添加短引用,<blockquote>添加长引用 在段落里添加引用就使用<q> 自成一段的引用就使用<blockquote> 不是所有浏览器都有相同的显示 块元素<block> <h1><h2>···<h6>和<blockquote>均是块元素 每个块元素都单独显示(分块显示) 内联元素<inli…
0x00 概述 Prometheus是继Kubernetes后第2个正式加入CNCF基金会的项目,容器和云原生领域事实的监控标准解决方案.在这次分享将从Prometheus的基础说起,学习和了解Prometheus强大的数据处理能力,了解如何使用Prometheus进行白盒和黑盒监控,以及Prometheus在规模化监控下的解决方案等.最后将从0开始构建完整的Kubernetes监控架构. 0x01 监控的目标 在<SRE:Google运维解密>一书中指出,监控系统需要能够有效的支持白盒监控和…
0x00 Prometheus容器监控解决方案 Prometheus(普罗米修斯)是一个开源系统监控和警报工具,最初是在SoundCloud建立的.它是一个独立的开放源码项目,并且独立于任何公司.不同于传统的运维监控工具,Prometheus是面向容器和微服务的监控系统,采用基于时间序列的存储方式,监控采集更加精确,监控频率更高,和容器和微服务兼容性更好.随着目前容器和微服务的使用日趋广泛,Prometheus的应用范围将会越来越广. 0x01 Prometheus架构 Prometheus是面…
0x00 概述 prometheus在容器云的领域实力毋庸置疑,越来越多的云原生组件直接提供prometheus的metrics接口,无需额外的exporter.所以采用prometheus作为整个集群的监控方案是合适的.但是metrics的存储这块,prometheus提供了本地存储,即tsdb时序数据库.本地存储的优势就是运维简单,启动prometheus只需一个命令,下面两个启动参数指定了数据路径和保存时间. storage.tsdb.path: tsdb数据库路径,默认 data/ st…
0x00 初衷 最近参与的几个项目,无一例外对监控都有极强的要求,需要对项目中各组件进行详细监控,如服务端API的请求次数.响应时间.到达率.接口错误率.分布式存储中的集群IOPS.节点在线情况.偏移量等. 比较常见的方式是写日志,将日志采集到远端进行分析和绘图,或写好本地监控脚本进行数据采集后,通过监控系统客户端push到监控系统中进行打点.基本上我们需要的都能覆盖,但仍然有一些问题在使用上不太舒服,如在大规模请求下日志采集和分析的效率比较难控制,或push打点的粒度和纬度以及查询不够灵活等.…
0x00 概述 视频讲解通过链接网易云课堂·IT技术快速入门学院进入,更多关于Prometheus的文章. Prometheus是最近几年开始流行的一个新兴监控告警工具,特别是kubernetes的流行带动了prometheus的应用. Prometheus是一套完整的监控告警系统: Prometheus的主要特点有: 1. a multi-dimensional data model with time series data identified by metric name and key…
0x00 Prometheus是什么 Prometheus是一个开源的系统监控和报警工具,特点是 多维数据模型(时序列数据由metric名和一组key/value组成) 在多维度上灵活的查询语言(PromQl) 不依赖分布式存储,单主节点工作. 通过基于HTTP的pull方式采集时序数据 可以通过push gateway进行时序列数据推送(pushing) 可以通过服务发现或者静态配置去获取要采集的目标服务器 多种可视化图表及仪表盘支持 pull方式 Prometheus采集数据是用的pull也…
0x00 概述 Prometheus 是一个开源监控系统,它本身已经成为了云原生中指标监控的事实标准,几乎所有 k8s 的核心组件以及其它云原生系统都以 Prometheus 的指标格式输出自己的运行时监控信息.我在工作中也比较深入地使用过 Prometheus,最大的感受就是它非常容易维护,突出一个简单省心成本低.当然,这当中也免不了踩过一些坑,下面就总结一下. # 假如你没有用过 Prometheus,建议先看一遍 官方文档 0x01 接受准确性与可靠性的权衡 Prometheus 作为一个…
SpringBoot提供了三种应用监控的方式 通过HTTP(最简单方便) 通过JMX 通过远程shell 这里就是用最简单的方式来使用SpringBoot的应用监控 首先引入依赖,pom文件如下 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency&…
Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis-server容器 查询本地镜像 :sudo docker images 运行服务端     :sudo docker run -d redis 查看服务端地址:sudo docker inspect -f '{{.NetworkSettings.IPAddress}}' c6c3 sudo dock…
学习目标: 容器之间可以相互连接访问:: --link redis:redisAlias 准备工作 FROM ubuntu:14.04 RUN apt-get install -y ping RUN apt-get update RUN apt-get install -y nginx RUN pat-get install -y curl EXPOSE 80 CMD /bin/bash #构建测试镜像 docker build -t lexiaofei/cct . 1.允许所有容器互联 --i…
python学习笔记 #requests import requests #from class_005.http_resuest import HttpRequest login_url = "http://api.nnzhp.cn/api/user/login" data = {'username':'niuhanyang', 'passwd':'aA123456' } res=requests.post(login_url,data) print(res.cookies) url…
0x00 概述 Prometheus和Grafana部署完成后,网络正常,配置文件正常,抓取agent运行正常,使用curl命令获取监控端口数据正常,甚至Prometheus内的targets列表内都是全绿,Grafana数据源配置也是全绿: 但是Prometheus查询界面(在Windows的浏览器上)无法查询出数据,Grafan展示页面(在Windows的浏览器上)也不显示相关的监控曲线和数据...... prometheus搜索指标显示No datapoints found...或者Gra…
Grafana有账户分权和管理功能,不过和一般的账户分权管理操作不一样.Grafana通过admin账户建立organization,在不通的org内配置数据源和用户,用户隶属于不通的org,只能看到该org内的数据展示. 在org内在进行用户操作权限的配置即可. Grafana中通过设置不同的组织,以及将用户分配到不同组织,来做到多租户,类似门户的概念. Grafana默认是不允许非管理员用户创建新的组织的,这个可以通过修改配置文件以允许非管理员用户创建组织: 下面演示下怎么新建组织,以及将组…
0x00 概述 Prometheus之于kubernetes(监控领域),如kubernetes之于容器编排.随着heapster不再开发和维护以及influxdb 集群方案不再开源,heapster+influxdb的监控方案,只适合一些规模比较小的k8s集群.而prometheus整个社区非常活跃,除了官方社区提供了一系列高质量的exporter,例如node_exporter等.Telegraf(集中采集metrics) + prometheus的方案,也是一种减少部署和管理各种expor…
最近学习K8S和基于容器的监控,发现了如下的教程质量不错,记录下来以备参考 1. K8S最佳实战(包括了K8S的Prometheus监控和EFK日志搜集) https://jimmysong.io/kubernetes-handbook/practice/ 2. Prometheus-book https://yunlzheng.gitbook.io/prometheus-book/ 3.  Prometheus实战 https://songjiayang.gitbooks.io/prometh…
0x00 k8s 的监控设计 k8s 默认以及推荐的监控体系是它自己的一套东西:Heapster + cAdvisor + Influxdb + Grafana,具体可以看 这里 . 包括 k8s 自身的 HPA (Horizontal Pod Autoscaler),默认从 Heapster 中获取数据进行自动伸缩.(顺便提一句,当你部署完 k8s 集群之后,如果从 Dashboard 中看不到监控数据,往往就是因为你没有部署 Heapster,或者网络层有问题, Dashboard 无法访问…
0x00 概述 Prometheus 是一个开源和社区驱动的监控&报警&时序数据库的项目.来源于谷歌BorgMon项目.现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控.主要监控: Node:如主机CPU,内存,网络吞吐和带宽占用,磁盘I/O和磁盘使用等指标.node-exporter采集. 容器关键指标:集群中容器的CPU详细状况,内存详细状况,Network,FileSystem和Subcontainer等.通过cadvisor采集. Kubern…
概述 Prometheus 提供了其它大量的内置函数,可以对时序数据进行丰富的处理.某些函数有默认的参数,例如:year(v=vector(time()) instant-vector).其中参数 v 是一个瞬时向量,如果不提供该参数,将使用默认值 vector(time()).instant-vector 表示参数类型. abs() abs(v instant-vector) 返回输入向量的所有样本的绝对值. absent() absent(v instant-vector),如果传递给它的向…
0x00 概述 Prometheus 提供了一种功能表达式语言 PromQL,允许用户实时选择和汇聚时间序列数据.表达式的结果可以在浏览器中显示为图形,也可以显示为表格数据,或者由外部系统通过 HTTP API 调用. 0x01 表达式语言数据类型 在 Prometheus 的表达式语言中,表达式或子表达式包括以下四种类型之一: 瞬时向量(Instant vector) - 一组时间序列,每个时间序列包含单个样本,它们共享相同的时间戳.也就是说,表达式的返回值中只会包含该时间序列中的最新的一个样…
0x00 概述 有时候对于一个公司,k8s集群或是所谓的caas只是整个技术体系的一部分,往往这个时候监控系统不仅仅要k8s集群以及k8s中部署的应用,而且要监控传统部署的项目.也就是说整个监控系统不是部署在k8s cluster中.非in-cluster的prometheus怎么监控k8s是今天需要讨论的问题.在上一篇文章解读了prometheus提供的监控k8s的配置文件,我们知道主要是采集node,cadvisor,service,endpoint,ingress和pod 6个方面.集群外…
K8S最佳实战(包括了K8S的Prometheus监控和EFK日志搜集) https://jimmysong.io/kubernetes-handbook/practice/ Prometheus-book https://yunlzheng.gitbook.io/prometheus-book/ Prometheus实战 https://songjiayang.gitbooks.io/prometheus/content/ Prometheus中文文档 https://www.yangcs.n…
Exporter for machine metrics prometheus/node_exporter 安装 Prometheus sudo tar -zxvf prometheus-*.tar.gz -C /opt/prometheus/ cd /opt/prometheus/prometheus-*/ sudo ./prometheus --config.file=prometheus.yml --web.enable-lifecycle 解压后,在解压后的路径内执行命令./premet…
详细参考这篇文章 https://cloud.tencent.com/developer/article/1171434 prometheus 2.0于2017-11-08发布,主要是存储引擎进行了优化. 详细发布日志:https://prometheus.io/blog/2017/11/08/announcing-prometheus-2-0/ prometheus 2.0迁移指南:https://prometheus.io/docs/prometheus/2.0/migration/ pro…
0x00 变化 Prometheus 2.0 已经发布一段时间了,从今天开始我将分几篇文章为大家介绍其中的一些变化. 此篇文章主要介绍 2.0 的告警规则声明的新写法. 从 1.x 到 2.0 规则声明由自定义的 DSL 语法变成了标准的 yaml. 这么做的主要原因是 yaml 能够提供更丰富的配置信息,能够彻底解决告警规则分组问题. 在 2.0 中我们可以很方便的给不同告警组设置不同的检查轮询时间,详情请参考官方的文档. 0x01 升级 你的Prometheus 1.x已经运行一段时间了,其…
0x00 简单的时间序列选择 返回度量指标 http_requests_total 的所有时间序列样本数据: http_requests_total 返回度量指标名称为 http_requests_total,标签分别是 job="apiserver", handler="/api/comments" 的所有时间序列样本数据: http_requests_total{job="apiserver", handler="/api/comm…
0x00 概述 Prometheus 当前稳定的 HTTP API 可以通过 /api/v1 访问. 0x01 API 响应格式 Prometheus API 使用了 JSON 格式的响应内容. 当 API 调用成功后将会返回 2xx 的 HTTP 状态码. 反之,当 API 调用失败时可能返回以下几种不同的 HTTP 状态码: 404 Bad Request :当参数错误或者缺失时. 422 Unprocessable Entity : 当表达式无法执行时. 503 Service Unava…
0x00 二元运算符 Prometheus 的查询语言支持基本的逻辑运算和算术运算.对于两个瞬时向量, 匹配行为可以被改变. 算术二元运算符 在 Prometheus 系统中支持下面的二元算术运算符: + 加法 - 减法 * 乘法 / 除法 % 模 ^ 幂等 二元运算操作符支持 scalar/scalar(标量/标量).vector/scalar(向量/标量).和 vector/vector(向量/向量) 之间的操作. 在两个标量之间进行数学运算,得到的结果也是标量. 在向量和标量之间,这个运算…