1-Prometheus概述及安装

prometheus

Prometheus 概述

Prometheus是一个优秀的监控工具,非常适合监控容器。
prometheus架构图
Prometheus server:用于收集和存储时间序列数据。
Exporter:采集插件,负责收集目标(host、container等)的性能数据,并通过HTTP接口供Prometheus server获取。prometheus sercer通过pull的方式拉取
Pushgateway:各个目标主机可上报数据到pushgateway。Push gateway通过push的方式推送给prometheus sercer。本身也是一个http服务器,一般通过写脚本抓自己想要的数据,自定义一个监控数据,然后推送到pushgateway,然后pushgateway再推送到prometheus。
Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警。
Grafana:监控仪表盘,可视化监控数据。
service Discovery:服务发现。
Retrieval:负责在活跃的target主机上抓取监控指标数据。
Storage:存储主要是把采集到的数据存储到磁盘中。
PromQL:是Prometheus提供的查询语言模块。。

Prometheus工作方式

  1. Prometheus定期从目标主机上获取数据,目标主机的监控数据可通过配置静态job或者服务发现的方式被prometheus采集到,这种方式默认的pull方式拉取指标;也可通过pushgateway把采集的数据上报到prometheus中;还可通过一些组件自带的exporter采集相应组件的数据。
  2. Prometheus把采集到的监控指标数据保存到本地磁盘或者数据库。
  3. Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到alertmanager。
  4. Prometheus 自带的web ui界面提供PromQL查询语言,可查询监控数据。
  5. Grafana可接入prometheus数据源,把监控数据以图形化形式展示出。

Prometheus安装部署

Prometheus有两种部署方式,二进制文件部署与容器化部署。

容器化部署

docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus

二进制文件部署

Prometheus官网下载对应安装包

1
2
3
4
5
~]# tar xzf prometheus-2.39.1.linux-amd64.tar.gz -C /usr/local/
~]# ln -s /usr/local/prometheus-2.39.1.linux-amd64/ /usr/local/prometheus
~]# ln -s /usr/local/prometheus/prometheus /usr/local/bin/prometheus
~]# ln -s /usr/local/prometheus/promtool /usr/local/bin/promtool
~]# nohup /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml > /usr/local/prometheus/prometheus.log 2>&1 &

通过localhost:9090即可进行访问。再次界面可以查询Prometheus收集上来的数据。

主机数据展示

localhost:9090/metrics中可以查看到Prometheus server的监控指标数据。