prometheus 笔记

前言

  prometheus 是监控应用软件类似于nagios.

 

安装

  1.官网下载prometheus-2.2.0.linux-amd64压缩包,解压,执行./prometheus即可。这里重要的是配置文件。

     a.如果要远程热加载配置文件,启动时加上--web.enable-lifecycle参数。 调用指令是curl -X POST http://localhost:9090/-/reload

     b.重要掌握 prometheus.yml 配置文件.prometheus启动时会加载它。

[root@vm-local1 prometheus-2.2.0.linux-amd64]# cat prometheus.yml 
# my global config
global:scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.评估间隔# scrape_timeout is set to the global default (10s). 默认抓取超时10秒# Alertmanager configuration #管理报警配置
alerting:alertmanagers:- static_configs:- targets: ["localhost:9093"]  #管理报警包需要单独下载,默认启动端口是9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"- rules/mengyuan.rules     #要发送报警,就得写规则,定义规则文件# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:    #抓取配置,就是你要抓取那些主机# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'  #任务名称# metrics_path defaults to '/metrics'  #默认抓取监控机的url后缀地址是/metrics# scheme defaults to 'http'.   #模式是httpstatic_configs:- targets: ['localhost:9090','localhost:9100']labels:group: 'zus'    #targets就是要抓取的主机,对应的客户端,我这有两个,把它们俩规定为一个组,组名是zus- job_name: dj   #又建立个任务名称static_configs:- targets: ['localhost:8000']  #我用django自定义的客户端

 

 注意:

     localhost:9090,默认prometheus提供了数据抓取接口,9100端口是prometheus提供的一个监控客户端

2.安装prometheus客户端

  官网下载node_exporter-0.16.0-rc.1.linux-amd64客户端,解压,执行./node_exporter 即可,默认是9100端口

3.如何自定义一个客户端,其实很简单,只要返回的数据库类型是这样就可以.我这用的django..只要格式正确就可以

  

def metrics(req):ss = "feiji 32" + "\n" + "caidian 31"return HttpResponse(ss)

 

4.编写 rules/mengyuan.rules 规则,规则是发送报警的前提

 

[root@vm-local1 rules]# cat mengyuan.rules 
groups:
- name: zusrules:# Alert for any instance that is unreachable for >5 minutes.- alert: InstanceDown   #报警名字随便写expr: up == 0   #这是一个表达式,如果主机up状态为0,表示关机了,条件为真就会触发报警 可以通过$value得到值for: 5s         #5s内,还是0,就发送报警信息,当然是发送给报警管理器labels:severity: page  #这个类型的报警定了个标签annotations:summary: "Instance {{ $labels.instance }} down dangqian  {{ $value }}"description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."

  

5.现在安装报警管理器

  a.官网下载alertmanager-0.15.0-rc.1.linux-amd64  

    重要的还是配置文件,创建修改它

  

[root@vm-local1 alertmanager-0.15.0-rc.1.linux-amd64]# cat alertmanager.yml 
route:receiver: mengyuan2  #接收的名字,默认必须有一个,对应receivers的- namegroup_wait: 1s  #等待1sgroup_interval: 1s #发送间隔1srepeat_interval: 1m  #重复发送等待1m分钟再发group_by: ["zus"]   routes:      #路由了,匹配规则标签的severity:page 走 receiver: mengyuan , 如果routes不写,就会走默认的mengyuan2- receiver: mengyuan  match:severity: pagereceivers:
- name: 'mengyuan'webhook_configs:  #这我用的webhook_configs 钩子方法,  默认会把规则的报警信息发送到127.0.0.1:8000- url: http://127.0.0.1:8000send_resolved: true
- name: 'mengyuan2'webhook_configs:- url: http://127.0.0.1:8000/2send_resolved: true

 

6.django接收报警发过来的消息

  用Django的  request.body会受到json格式的数据,大概像这样

  {"receiver":"mengyuan","status":"resolved","alerts":[{"status":"resolved","labels":{"alertname":"InstanceDown","group":"zus","instance":"localhost:9100","job":"prometheus","severity":"page"},"annotations":{"description":"localhost:9100 of job prometheus has been down for more than 5 minutes.","summary":"Instance localhost:9100 down dangqian  0"},"startsAt":"2018-04-06T22:34:13.51281763+08:00","endsAt":"2018-04-06T23:07:43.514552824+08:00","generatorURL":"http://vm-local1:9090/graph?g0.expr=up+%3D%3D+0\u0026g0.tab=1"}],"groupLabels":{},"commonLabels":{"alertname":"InstanceDown","group":"zus","instance":"localhost:9100","job":"prometheus","severity":"page"},"commonAnnotations":{"description":"localhost:9100 of job prometheus has been down for more than 5 minutes.","summary":"Instance localhost:9100 down dangqian  0"},"externalURL":"http://vm-local1:9093","version":"4","groupKey":"{}/{severity=\"page\"}:{}"}

 到此,我就可以根据收到的数据,调用邮件接口,或其他第三方报警接口了。

 

总结:

   本人也是刚入门。做的一个笔记。

 

转载于:https://www.cnblogs.com/whf191/p/8729460.html

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

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

相关文章

前端radio单选框默认选中_开发记录篇前端内容1

有段时间没有更新文章了&#xff0c;因为是用的公司电脑&#xff0c;没有虚拟机&#xff0c;所以就没法演示hadoop相关的东西了&#xff0c;而且大数据篇的东西需要花费一些时间和精力去收集整理内容&#xff0c;那大数据篇就先暂停一下。最近这段时间的话我可能会更新一些开发…

专属海报小程序_剑3泡泡 | 小程序给你一份专属的账号海报!

01按照惯例&#xff0c;这里是简介paopaods.com本期推送的是&#xff1a;如何正确的使用小程序每个账号均可小程序【剑3泡泡】搜到&#xff0c;生成专属账号海报&#xff01;点击底部【点我卖号】即可拥有&#xff01;02教程开始之前&#xff0c;安利paopaods.com泡泡家定金调整…

日志log4cxx 封装、实例讲解、配置文件log4cxx.properties

日志log4cxx 封装、实例讲解、配置文件log4cxx.properties 1. 日志作用 程序运行过程中&#xff0c;需要记录程序中的运行状况&#xff0c;方便排查问题&#xff0c;记录数据。可以根据日志的记录快速定位错误发生的地方&#xff0c;然后修改代码。还可以设置日志级别&#xff…

td不允许自己扩展_V神原文详解:通过及时性检测器(TD)解决区块链的51%攻击问题...

注&#xff1a;原文作者是以太坊联合创始人Vitalik Buterin&#xff0c;在这篇文章中&#xff0c;他提出了一种称为及时性检测器(TD)的构造&#xff0c;以试图解决区块链51%攻击的问题。(图&#xff1a;Vitalik Buterin)以下为译文&#xff1a;摘要我提出了一种基于Lamport 99%…

Hadoop安装之JDK在Centos虚拟机中安装

安装jdk.bin和jdk.tar.gz打的办法 安装jdk.bin 安装好的VM Centos7的虚拟机&#xff0c; 1、查看是否是64位操作系统&#xff1a; cat /proc/cpuinfo | grep flags | grep lm | wc -l 如果结果>0 则是64位操作系统 2、JDK 中 jdk-6u41-linux-x64.bin 和 jdk-6u41-linux-x64…

Exp3 免杀原理与实践

---恢复内容开始--- 一&#xff0c;实验内容 利用多种工具实现实现恶意代码免杀在另一台电脑上&#xff0c;杀软开启的情况下&#xff0c;实现运行后门程序并回连成功二&#xff0c;实验步骤 &#xff08;1&#xff09;使用msf编码器生成的后门程序 这里可以直接用上次实验生成…

如何进入指定文件目录_Python如何遍历操作指定文件目录下的全部Excel文件?

Python Tablib是麻省理工学院授权的与格式无关的表格数据集库。支持导入、导出和操作表格数据集&#xff0c;轻松的将数据导出为各种不同的格式&#xff0c;包括excel&#xff0c;json&#xff0c;html&#xff0c;yaml&#xff0c;csv&#xff0c;tsv等格式。接下来&#xff0…

《雪吁》

凛冽隆冬风骨寒&#xff0c;层云避日雾无边&#xff1b; 渐絮残花萧萧夜&#xff0c;窗前瘦花犹遮帘。 转载于:https://www.cnblogs.com/morron/p/8749430.html

条形图坐标轴_解密咨询报告中常见的双层条形图的制作方法

为了增加PPT的设计灵感&#xff0c;我除了经常逛一些设计社区之外&#xff0c;也会收集的各个公司咨询报告来学习。昨天我看了4份数据报告&#xff0c;发现这4份数据报告中都出现了一个共同的图表类型。第1个图表自于IXDC发布的《2018年中国用户体验行业调查报告》&#xff0c;…

小写转 大写

//转换大写 private string Change(double Digital) { //将小写金额转换成大写金额 String[] MyScale { "分", "角", "元", "拾", "佰", "仟", "万", "拾", "佰", "仟"…

赋值给集合_ArrayList集合源码

ArrayList简介ArrayList 是 Java 集合框架中比较常用的数据结构了。ArrayList是可以动态增长和缩减的索引序列&#xff0c;内部封装了一个动态再分配的Object[]数组这里我们可以看到ArrayList继承抽象类AbstractList&#xff0c;实现了 List 接口&#xff0c;同时还实现了 Rand…

Android VideoView无法播放网络视频

今天学习Android播放视频和音频&#xff0c;其中在练习播放视频的时候无法播放网络视频&#xff0c;网络视频是别人发布在网上的&#xff0c;但是把视频放在本地是可以的&#xff0c;最后推测是没有开放网络的访问权限的问题&#xff0c;果然开放了之后就能正常访问视频了 btnM…

大一计算机论文_大一计算机论文发表.doc

第 PAGE 页码 页码 页 / 总共 NUMPAGES 总页数 总页数 页大一计算机论文发表导读&#xff1a;我根据大家的需要整理了一份关于《大一计算机论文发表》的内容&#xff0c;具体内容&#xff1a;如今&#xff0c;我国的现代产业结构已经发生了重大的变化&#xff0c;信息产业地位正…

hdoj-3342-Legal or Not(拓扑排序)

题目链接 1 /*2 Name:hdoj-3342-Legal or Not3 Copyright:4 Author:5 Date: 2018/4/11 15:59:186 Description:7 判断是否存在环 8 */9 #include <iostream> 10 #include <queue> 11 #include <vector> 12 #include <cstring…

剪切文件_lammps模拟带缺陷镍板剪切变形(in文件及注释)

本期给大家带来lammps模拟带缺陷镍板剪切变形的in文件及其详细注释。初始模型如图一所示&#xff1a;图1 生成的初始模型 in文件及注释如下&#xff1a;#利用eam势函数模拟带缺陷镍板的剪切#模型构成——上下镍板夹可动镍块&#xff0c;镍块中有圆柱形缺陷&#xff0c;移动上镍…

js总结:对于字符串的切割截取和合并

1.函数&#xff1a;split() 功能&#xff1a;使用一个指定的分隔符把一个字符串分割存储到数组 例子&#xff1a; str”jpg|bmp|gif|ico|png”; arrstr.split(”|”); //arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组 2.函数&#xff1a;join() 功能&…

为什么将表格的method改为post后就无法工作_用Python将Keras深度学习模型部署为Web应用程序...

构建一个很棒的机器学习项目是一回事&#xff0c;但归根结底&#xff0c;你希望其他人能够看到你的辛勤工作。当然&#xff0c;你可以将整个项目放在GitHub上&#xff0c;但是怎么让你的祖父母也看到呢&#xff1f;我们想要的是将深度学习模型部署为世界上任何人都可以访问的We…

jieba库分词

代码在github网站&#xff1a;https://github.com/oljb/ljb中的py文件里&#xff0c;词频和词频分布图也在github网站上 简介用词特点&#xff1a;和专业有关的词语有编程&#xff0c;软工&#xff0c;测试&#xff0c;技术等&#xff0c;关于个人的词语有希望&#xff0c;兴趣…

datetime mysql 当天_MySQL 获得当前日期时间(以及时间的转换)

MySQL 获得当前日期时间(以及时间的转换)1.1 获得当前日期时间(date time)函数&#xff1a;now()除了 now() 函数能获得当前的日期时间外&#xff0c;MySQL 中还有下面的函数&#xff1a;current_timestamp() current_timestamplocaltime() localtimelocaltimestamp() l…

判断mysql的关键字_mysql中查询常用的关键字

最简单的查询&#xff1a;这里需要注意的是where子句中条件过滤使用到的关键字,比如用到逻辑运算符like中的’%‘(匹配一个或多个字符)和’_‘(仅匹配一个)等。distinct关键字这个关键字,主要用来取出列中唯一的值。需要注意distinct关键字必须放在查询字段的开头&#xff0c;一…