prometheus监控的搭建

一、prometheus介绍

1、什么是prometheus?

官网:https://prometheus.io/

prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包。

自2012年成立以来,许多公司和组织都采用prometheus,该项目拥有非常活跃的开发人员和用户社区。 现在,它是一个独立的开源项目,并且独立于任何公司进行维护。

prometheus在2016年加入了Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。

2、prometheus的特点

  • 一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据

  • PromQL,一种灵活的查询语言

  • 不依赖分布式存储; 单服务器节点是自治的

  • 时间序列收集通过HTTP上的拉取进行

  • 通过中间网关支持推送时间序列

  • 通过服务发现或静态配置发现目标

  • 多种图形和仪表板支持模式

3、prometheus的架构

prometheus监控的搭建_第1张图片

  • prometheus server

​ 主要负责数据的采集和存储,提供PromQL查询语言支持

  • Retrieval

    采样模块,prometheus的服务器在哪里拉取数据,检索拉取到的数据分发给 TSDB进行存储

  • TSDB

    存储模块默认本地存储为TSDB

  • HTTP server

    提供http接口查询和面板,默认端口为9090

  • short-lived jobs

​ 存在时间不足以被删除的短暂或批量业务,无法通过pull的方式 拉取,需要使用push的方式,与pushgeteway结合使用

  • Service Discovery

服务发现,prometheus支持多种服务发现机制:文件,DNS,k8s,openstack,等,基于服务发现的过程,通过第三方接口,prometheus查询到需要监控的target列表,然后轮询这些target获取监控数据

  • 客户端SDK

官方提供的客户端类库有go,java,python,ruby

  • pushgateway

支持临时性的job主动推送指标的中间网关,prometheus默认通过pull方式从exporters拉取,但有些情况我们是不允许promethes与exporters直接进行通信的,这时候我们可以使用pushgateway由客户端主动push数据到pushgateway,在由prometheus拉取。很多时候我们需要自定义一些组件来采集

  • proDash

使用rails开发的dashboard,用于可视化指标数据

  • exporters

支持其他数据源的指标导入到prometheus,支持数据库,硬件,消息中间件,存储系统,http服务器,jmx等

负责收集目标对象的性能数据,并通过http接口供prometheus server获取,只要符合接口格式,就可以被采集

  • alertmanager

一个组件,用来进行报警

  • prometheus_cli

命令行工具

4、prometheus的工作流程

定期从配置好的jobs或者exporters中拉取metrics(指标),或者接受来自pushgateway发过来的metrics,或者从其他的prometheus server中拉取metrics。

prometheus server 在本地存储收集到的metrics,并运行已经定义好的arlt.rules,记录新的时间序列或者向alertmanager推送报警。

Alertmanager根据配置文件,对接受的警报进行处理,发出告警。

在图形界面中,可视化采集数据,可以使用别人写好的grafana模板。

二、prometheus的安装

1、下载并解压安装包

此处下载的版本为2.17.1

wget https://github.com/prometheus/prometheus/releases/download/v2.17.1/prometheus-2.17.1.linux-amd64.tar.gz

解压

tar zxvf prometheus-2.17.1.linux-amd64.tar.gz

2、部署

把解压后的目录移动到/usr/local/下,并更名为prometheus

# mv prometheus-2.17.1.linux-amd64 /usr/local/
# mv prometheus-2.17.1.linux-amd64 prometheus

查看prometheus目录下的文件

[root@st-53 /usr/local/prometheus]# ls
console_libraries  LICENSE  prometheus      promtool
consoles           NOTICE   prometheus.yml  tsdb

查看prometeus的版本信息:

[root@st-53 /usr/local/prometheus]# ./prometheus --version
prometheus, version 2.17.1 (branch: HEAD, revision: ae041f97cfc6f43494bed65ec4ea4e3a0cf2ac69)
  build user:       root@806b02dfe114
  build date:       20200326-16:18:19
  go version:       go1.13.9

可以看到prometheus版本的相关信息,以及go的版本信息。

三、通过网址访问

启动prometheus服务,以后台方式启动

[root@st-53 /usr/local/prometheus]# ./prometheus &
[1] 4746

在浏览器中输入IP查看(默认端口是9090):

prometheus监控的搭建_第2张图片

你可能感兴趣的:(prometheus监控的搭建)