监控之星-普罗米修斯Prometheus搭建

监控之星-普罗米修斯Prometheus搭建

导图

架构
部署
第一步
第二步
第三步
监控
Prometheus
开源监控报警系统+时序列数据库
步骤
运行环境搭建安装go
在监控服务器上安装Prometheus
在被监控端上部署exporter

含义

Prometheus是一个开源系统监控和警报工具包,最初在 SoundCloud构建。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司维护。为了强调这一点,并明确项目的治理结构,Prometheus 于 2016 年加入云原生计算基金会,成为继Kubernetes之后的第二个托管项目。

普罗米修斯的主要特点是:

  • 具有由度量名称和键/值对标识的时间序列数据的多维数据模型;
  • PromQL,一种利用这种维度的灵活查询语言;
  • 不依赖分布式存储;单个服务器节点是自治的;
  • 时间序列收集通过HTTP上的拉模型进行;
  • 通过中间网关支持推送时间序列;
  • 通过服务发现或静态配置发现目标;
  • 多种图形模式和仪表板支持。

架构

大多数 Prometheus 组件都是用Go编写的,这使得它们易于构建和部署为静态二进制文件。
在这里插入图片描述

地位

Prometheus现在在Github有4w多的star,基本上过万星的开源工具,可以认为是社区里绝对的主流,社区也相当活跃,可以有大量的经验可以借鉴。在企业级系统中,可以放心的使用。
在这里插入图片描述

原理

Prometheus 是由 SoundCloud 开发的开源监控报警系统和时序列数据库。从字面上理解,Prometheus 由两个部分组成,一个是监控报警系统,另一个是自带的时序数据库(TSDB)

来下载我吧

感觉难点在于下载该资源,总是下载失败
官网:https://prometheus.io/
在这里插入图片描述
后面发现是谷歌浏览器不行,换个360浏览器就可以正常下载了,再不行就百度网盘吧。
链接:https://pan.baidu.com/s/1Xvkba_M77WmVsBXMq8EKLw
提取码:0dqy

安装:prometheus和exporter

简述:
1、运行环境:安装go,因为其是go开发的
2、监控端:安装Prometheus Server
3、受控端:exporter

第一步:运行环境搭建安装go

监控端和受控端都需要安装go
Windows :go1.8.3.windows-amd64.msi (78MB)

第二步:在监控服务器上安装prometheus

一、官方下载链接:https://prometheus.io/download/,按需安装,如下是windows系统:
在这里插入图片描述
二、双击应用即可出现黑窗口
在这里插入图片描述
三、然后,浏览器上输入:http://192.168.180.208:9090/,就出现下述界面,是不是炒鸡简单,如下就是安装的普罗米修斯了。注意,180.208地址是安装监控服务器的地址,按照你的设备地址来的。
在这里插入图片描述
TIPS:功能项介绍:
Alert:用来配置告警规则。之后我们会用Grafana自身的告警界面配置来代替这个。
Graph:用来运行PromQL语句的一个控制台,并且可以把运行出来的语句用用图形化进行展示,此块我们后面章节会介绍到。
Status:包含系统信息,系统状态,配置信息,目标节点的状态,服务发现状态等元信息的查看。

第三步:在被监控端上部署exporter

一、下载并安装exporter

prometheus可以理解为一个数据库+数据抓取工具,工具从各处抓来统一的数据,放入prometheus这一个时间序列数据库中。那如何保证各处的数据格式是统一的呢?就是通过这个exporter。exporter也是用GO写的程序,它开放一个http接口,对外提供格式化的数据。所以在不同的环境下,需要编写不同的exporter。好在已经有很多写好的exporter,我们可以直接使用,(本句是一句废话为了更好的排版显示)(https://github.com/prometheus这里可以找到很多exporter)

二、配置监控的配置文件prometheus.yml

一、前言
prometheus的配置文件采用的是yml文件,yml文件书写的要求如下:

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
# Prometheus全局配置项
global:
  scrape_interval:     15s # 设定抓取数据的周期,默认为1min
  evaluation_interval: 15s # 设定更新rules文件的周期,默认为1min
  scrape_timeout: 15s # 设定抓取数据的超时时间,默认为10s
  external_labels: # 额外的属性,会添加到拉取得数据并存到数据库中
   monitor: 'codelab_monitor'
 
# Alertmanager配置
alerting:
 alertmanagers:
 - static_configs:
   - targets: ["localhost:9093"] # 设定alertmanager和prometheus交互的接口,即alertmanager监听的ip地址和端口
      
# rule配置,首次读取默认加载,之后根据evaluation_interval设定的周期加载
rule_files:
 - "alertmanager_rules.yml"
 - "prometheus_rules.yml"
 
# scape配置
scrape_configs:
- job_name: 'prometheus' # job_name默认写入timeseries的labels中,可以用于查询使用
  scrape_interval: 15s # 抓取周期,默认采用global配置
  static_configs: # 静态配置
  - targets: ['localdns:9090'] # prometheus所要抓取数据的地址,即instance实例项
 
- job_name: 'example-random'
  static_configs:
  - targets: ['localhost:8080']

二、修改用例
1、配置如下语句,仅添加红框中的命令,主要要按照书写要求书写
在这里插入图片描述
2、双击重启监控端208的prometheus(修改了它的配置文件,肯定要重启激活)
在这里插入图片描述
若配置yml配置没有正确,比如:在这里插入图片描述
prometheus是无法成功启动的,会出现闪退现象。
正确配置后,就可以出现黑窗口了。
在这里插入图片描述
在这里插入图片描述
3、启动被监控端209上面的exporter服务
在这里插入图片描述
在这里插入图片描述
4、会出现如下
在这里插入图片描述
4、尝试解决“Down”的问题
测试两个地址见的端口连通性,仅测试监控端208到被监控端209的9150端口是否连通(这里是因为防火墙限制了端口间访问,如果设置有问题,方便时可直接关闭防火墙)
在这里插入图片描述
显示是正常的
所以,怀疑是209服务器上的exporert有问题
在这里插入图片描述
但是过段时间,又自动恢复up了。
在这里插入图片描述
把209的exporter服务关闭,208监控端会出现报错,启动exporter服务,监控恢复了
在这里插入图片描述
换成台210服务器和merncached_exporter试试(控制变量法,仅改变了被监控端的设备)
操作同上,不赘述,仅仅截图
在这里插入图片描述
在这里插入图片描述
成功了
在这里插入图片描述
换成台210服务器和haproxy_exporter试试
操作同上,不赘述,仅仅截图
在这里插入图片描述
在这里插入图片描述
依旧出现“down”现象,重启了两端服务多次了,检查配置与上述的209是一样的,只能等等了。
在这里插入图片描述
补充,需要对exporter功能进行了解,安装需要的exporter的

exporter采集数据的原理https://blog.csdn.net/u010751000/article/details/110359345

报警:Alertmanager

一、Alertmanager简介及机制

Alertmanager处理由类似Prometheus服务器等客户端发来的警报,之后需要删除重复、分组,并将它们通过路由发送到正确的接收器,比如电子邮件、Slack等。Alertmanager还支持沉默和警报抑制的机制。

1、分组

分组是指当出现问题时,Alertmanager会收到一个单一的通知,而当系统宕机时,很有可能成百上千的警报会同时生成,这种机制在较大的中断中特别有用。

例如,当数十或数百个服务的实例在运行,网络发生故障时,有可能服务实例的一半不可达数据库。在告警规则中配置为每一个服务实例都发送警报的话,那么结果是数百警报被发送至Alertmanager。

但是作为用户只想看到单一的报警页面,同时仍然能够清楚的看到哪些实例受到影响,因此,人们通过配置Alertmanager将警报分组打包,并发送一个相对看起来紧凑的通知。

分组警报、警报时间,以及接收警报的receiver是在配置文件中通过路由树配置的。

2、抑制

抑制是指当警报发出后,停止重复发送由此警报引发其他错误的警报的机制。

例如,当警报被触发,通知整个集群不可达,可以配置Alertmanager忽略由该警报触发而产生的所有其他警报,这可以防止通知数百或数千与此问题不相关的其他警报。

抑制机制可以通过Alertmanager的配置文件来配置。

3、沉默

沉默是一种简单的特定时间静音提醒的机制。一种沉默是通过匹配器来配置,就像路由树一样。传入的警报会匹配RE,如果匹配,将不会为此警报发送通知。

沉默机制可以通过Alertmanager的Web页面进行配置。

二、部署

一、官方下载链接:https://prometheus.io/download/,按需安装,如下是windows系统:
在这里插入图片描述
二、双击启动
在这里插入图片描述
出现如下黑窗口
在这里插入图片描述
四、浏览器访问:http://192.168.180.208:9093/#/alerts,注意,其中的地址是部署服务器的IP地址,以你的设备地址为准
在这里插入图片描述
但是,目前没有数据
五、接下来修改Server端配置报警规则和altermanager地址

修改prometheus添加altermanager配置,推荐用yml自带的alerting,减少因书写问题导致失效,配置是否成功,可通过重启prometheus是否正常进行判断,闪退为配置错误。
在这里插入图片描述

美化:prometheus换一个面板

一、官方下载链接:https://grafana.com/grafana/download,出现如下界面:
在这里插入图片描述
二、进行安装部署
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fo安方

觉得俺的文章还行,感谢打赏,爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值