十一,prometheus监控部署_willfeng的私人空间

Prometheus监控系列之——安装部署

Prometheus的特点

  • 多维度数据模型。
  • 灵活的查询语言。
  • 不依赖分布式存储,单个服务器节点是自主的。
  • 通过基于HTTP的pull方式采集时序数据。
  • 可以通过中间网关进行时序列数据推送。
  • 通过服务发现或者静态配置来发现目标服务对象。
  • 支持多种多样的图表和界面展示,比如Grafana等。

Prometheus相关组件

Prometheus生态系统由多个组件组成,它们中的一些是可选的。多数Prometheus组件是Go语言写的,这使得这些组件很容易编译和部署。

  • Prometheus Server

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

  • 客户端SDK

官方提供的客户端类库有go、java、scala、python、ruby,其他还有很多第三方开发的类库,支持nodejs、php、erlang等。

  • Push Gateway

支持临时性Job主动推送指标的中间网关。

  • PromDash

使用Rails开发可视化的Dashboard,用于可视化指标数据。

  • Exporter

Exporter是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。

Prometheus提供多种类型的Exporter用于采集各种不同服务的运行状态。目前支持的有数据库、硬件、消息中间件、存储系统、HTTP服务器、JMX等。

  • alertmanager

警告管理器,用来进行报警。

  • prometheus_cli

命令行工具。

  • 其他辅助性工具

多种导出工具,可以支持Prometheus存储数据转化为HAProxy、StatsD、Graphite等工具所需要的数据存储格式。

架构图

工作流程

  • Prometheus 服务器定期从配置好的 jobs 或者 exporters 中获取度量数据;或者接收来自推送网关发送过来的 度量数据。
  • Prometheus 服务器在本地存储收集到的度量数据,并对这些数据进行聚合;
  • 运行已定义好的 alert.rules,记录新的时间序列或者向告警管理器推送警报。
  • 告警管理器根据配置文件,对接收到的警报进行处理,并通过email等途径发出告警。
  • Grafana等图形工具获取到监控数据,并以图形化的方式进行展示。

安装及配置

linux:centos7.5

Prometheus:

alertmanager:

node_exporter:

wget https://github.com/prometheus/prometheus/releases/download/v2./prometheus-.linux-amd64.tar.gz
wget https://github.com/prometheus/alertmanager/releases/download/v0./alertmanager-.linux-amd64.tar.gz
wget https://github.com/prometheus/node_exporter/releases/download/v0./node_exporter-.linux-amd64.tar.gz

groupadd prometheus
useradd -g prometheus prometheus -d /data/prometheus
tar -xvf prometheus-.linux-amd64.tar.gz
mv prometheus-.linux-amd64 /data/prometheus
mkdir /data/prometheus/{data,config,logs} -p
mv prometheus promtool /usr/local/bin/
mv prometheus.yml config/
chown -R prometheus.prometheus *
  • 创建prometheus.service 的 systemd unit 文件
vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/bin/prometheus --config.file=/data/prometheus/config/prometheus.yml --storage.tsdb.path=/data/prometheus/data --web.enable-lifecycle --storage.tsdb.retention=1y
Restart=on-failure
[Install]
WantedBy=multi-user.target

说明:

--web.enable-lifecycle #这个是方便更改配置文件,不用重启Prometheus服务,使用curl -XPOST http://:/-/reload 重载配置

  • 启动服务
systemctl daemon-reload
systemctl enable prometheus.service
systemctl start prometheus.service
  • prometheus 简单web UI :http://:/graph
  • 效果图

如果对您有帮助,记得不要忘了给个关注哦!!!@上海IT故事,也可查看账号统一系列。

  1. 公司IT系统账号大统一体系
原文链接:,转发请注明来源!