Prometheus(普罗米修斯)监控系统

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,由 SoundCloud 公司开发。

Prometheus(普罗米修斯)监控系统



一、Prometheus 简介


1.Prometheus 优势

2.Prometheus 基础架构


二、Prometheus 安装


1.下载

2.配置

3.后端存储配置


三、使用 Prometheus 实现系统监控


1.安装 Node_Exporter

2.修改 Promehtues 配置文件

3.验证


四、使用 Prometheus + Grafana 实现可视化界面


1.安装 Grafana

2.配置 Grafana 的 Web 界面


一、Prometheus 简介



Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,由 SoundCloud 公司开发。


Prometheus 基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 HTTP 接口就可以接入监控系统,不需要任何 SDK 或者其他的集成过程。这样做非常适合虚拟化环境比如 VM 或者 Docker 。


Prometheus 应该是为数不多的适合 Docker、Mesos、Kubernetes 环境的监控系统之一。


1.Prometheus 优势


易于管理:


  • Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等);
  • 唯一需要的就是本地磁盘,因此不会有潜在级联故障的风险。


强大的查询语言 PromQL:


  • Prometheus 内置一个强大的数据查询语言 PromQL,通过 PromQL 可以实现对监控数据的查询、聚合。
  • 同时 PromQL 也被应用于数据可视化(如 Grafana)以及告警中。


高效:


  • 对于监控系统而言,大量的监控任务必然导致有大量的数据产生。而 Prometheus 可以高效的处理这些数据。


可扩展:


  • Prometheus 支持联邦集群,可以让多个 Prometheus 实例产生一个逻辑集群;
  • 当单实例 Prometheus 处理的任务量过大时,通过使用功能分区(sharding)+ 联邦集群(federation)可以对其进行扩展。


易于集成:


  • 目前官网提供了多种语言的客户端 SDK,基于这些 SDK 可以快速让应用程序纳入到监控系统中,同时还支持与其它的监控系统集成。


可视化:


  • Prometheus Server 自带一个 UI,通过这个 UI 可以方便对数据进行查询和图形化展示;
  • 同时还可以对接 Grafana 可视化工具展示精美监控指标。


2.Prometheus 基础架构


image.png


如上图,Prometheus 主要由以下部分组成:


  • Prometheus:主要是负责存储、抓取、聚合、查询方面。
  • Alertemanager:主要是负责实现报警功能。
  • Pushgateway:主要是实现接收有 Client-push 过来的指标数据,在指定的时间间隔,有主程序来抓取。
  • *_exporter:主要是负责采集物理机、中间件的信息。


二、Prometheus 安装



准备工作:


image.png


  • 注意:在所有节点上安装 ntpdate 工具,并进行时间同步(因为 Prometheus 对时间要求非常严格)


yum -y install ntpdate
/usr/sbin/ntpdate ntp1.aliyun.com


1.下载


[root@Prometheus ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz
[root@Prometheus ~]# tar xf prometheus-2.16.0.linux-amd64.tar.gz
[root@Prometheus ~]# mv prometheus-2.16.0.linux-amd64 /usr/local/prometheus


2.配置


[root@Prometheus ~]# useradd -s /sbin/nologin prometheus
[root@Prometheus ~]# chown -R prometheus:prometheus /usr/local/prometheus/


[root@Prometheus ~]# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus
After=network.target 
[Service]
User=prometheus
Group=prometheus
WorkingDirectory=/usr/local/prometheus
ExecStart=/usr/local/prometheus/prometheus
[Install]
WantedBy=multi-user.target


[root@Prometheus ~]# systemctl daemon-reload
[root@Prometheus ~]# systemctl enabled --now prometheus               # 启动并开启自启   


当启动 Prometheus 后,便可以通过 9090 端口来访问 Prometheus 自带的 UI 界面:


image.png


3.后端存储配置


  • 默认情况下 Prometheus 会将采集的数据存储到本机的 /usr/local/prometheus/data 目录,存储数据的大小受限和扩展不便;
  • 所以这里使用 influxdb 作为后端的数据库来存储数据。


1)安装


[root@Prometheus ~]# wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8.x86_64.rpm
[root@Prometheus ~]# yum -y localinstall influxdb-1.7.8.x86_64.rpm
[root@Prometheus ~]# cp /etc/influxdb/influxdb.conf /etc/influxdb/influxdb.conf.default
[root@Prometheus ~]# systemctl enable --now influxdb


2)验证


[root@Prometheus ~]# influx
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
> create database prometheus;
> exit


image.png


3)配置 Prometheus 集成 infuxdb


[root@Prometheus ~]# vim /usr/local/prometheus/prometheus.yml
在最后面添加:
remote_write:
  - url: "http://localhost:8086/api/v1/prom/write?db=prometheus"
remote_read:
  - url: "http://localhost:8086/api/v1/prom/read?db=prometheus"
[root@Prometheus ~]# systemctl restart prometheus                 # 重启 Prometheus


  • 注意:如果你们 influxdb 配置密码,请参考 官网文档 来进行配置。


三、使用 Prometheus 实现系统监控



  • 因为 Prometheus 并不能直接监控服务,其主要任务负责数据的收集,存储并对外提供数据查询支持;
  • 因此,为了能够监控到某些东西,如:主机的 CPU 使用率,我们需要使用到 Exporter。


1.安装 Node_Exporter


[root@Client ~]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
[root@Client ~]# tar xf node_exporter-0.18.1.linux-amd64.tar.gz
[root@Client ~]# mv node_exporter-0.18.1.linux-amd64 /usr/local/exporter/
[root@Client ~]# useradd -s /sbin/nologin prometheus


[root@Client ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target 
[Service]
User=prometheus
Group=prometheus
ExecStart=/usr/local/exporter/node_exporter \
          --web.listen-address=:20001 \
          --collector.systemd \
          --collector.systemd.unit-whitelist=(sshd|nginx).service \
          --collector.processes \
[Install]
WantedBy=multi-user.target
[root@Client ~]# systemctl daemon-reload
[root@Client ~]# systemctl enable --now node_exporter


当启动 node_exporter 服务后,便可以通过 20001 端口来访问 Client 的监控指标。


image.png


2.修改 Promehtues 配置文件


[root@Prometheus ~]# vim /usr/local/prometheus/prometheus.yml
- job_name: "Client"
  static_configs:
  - targets:
    - "192.168.1.2:20001"
[root@Prometheus ~]# systemctl restart prometheus


3.验证


image.png

image.png


四、使用 Prometheus + Grafana 实现可视化界面



  • 在 Prometheus 中,我们可以使用 Web 界面进行数据的查询和展示,但是展示效果不是很好;
  • 所以我们这里使用 Grafana 来配合 Prometheus 使用。


1.安装 Grafana


[root@Grafana ~]# wget https://dl.grafana.com/oss/release/grafana-6.1.4-1.x86_64.rpm
[root@Grafana ~]# tar xf grafana-6.1.4-1.x86_64.rpm
[root@Grafana ~]# systemctl enable --now grafana-server
[root@Grafana ~]# netstat -anpt | grep 3000


2.配置 Grafana 的 Web 界面


image.png


Add data source(添加数据源)


image.png

image.png


Import(导入模板)


image.png

image.png

image.png


image.png

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
相关文章
|
Prometheus 监控 Cloud Native
Docker的监控-Prometheus(普罗米修斯)
Docker的监控-Prometheus(普罗米修斯)
841 0
|
Prometheus 监控 Cloud Native
Prometheus(普罗米修斯)
Prometheus(普罗米修斯)
855 0
|
存储 Prometheus 监控
CentOS7下简单搭建Prometheus+Grafana监控系统(上)
CentOS7下简单搭建Prometheus+Grafana监控系统
666 0
CentOS7下简单搭建Prometheus+Grafana监控系统(上)
|
存储 数据采集 Prometheus
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(一)
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(一)
1698 0
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(一)
|
6月前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana+NodeExporter 打造一款出色的监控系统,帅呆了!
Prometheus+Grafana+NodeExporter 打造一款出色的监控系统,帅呆了!
175 2
|
JSON Prometheus 监控
ClickHouse监控系统Prometheus+Grafana
ClickHouse监控系统Prometheus+Grafana
836 0
|
Prometheus 监控 Cloud Native
CentOS7下简单搭建Prometheus+Grafana监控系统(下)
CentOS7下简单搭建Prometheus+Grafana监控系统(下)
393 0
CentOS7下简单搭建Prometheus+Grafana监控系统(下)
|
存储 数据采集 JSON
彻底搞懂监控系统,使用Prometheus +Grafana搭建完整的应用监控系统
监控是运维系统的基础,我们衡量一个公司/部门的运维水平,看他们的监控系统就可以了。一个完善的监控系统可以提高应用的可用性和可靠性,在提供更优质服务的前提下,降低运维的投入和工作量,为用户带来更多的商业利益和客户体验。下面就带大家彻底搞懂监控系统,使用Prometheus +Grafana搭建完整的应用监控系统。
11812 1
彻底搞懂监控系统,使用Prometheus +Grafana搭建完整的应用监控系统
|
存储 Prometheus 监控
Prometheus+Grafana普罗米修斯搭建+监控MySQL
​ `Prometheus` 是 `Cloud Native Computing Foundation` 的一个监控系统项目, 集采集、监控、报警等特点于一体。 ​ `Prometheus`主要受启发于`Google`的`Brogmon`监控系统, 从`2012`年开始由前`Google`工程师在`Soundcloud`以开源软件的形式进行研发,`2017`年底发布了基于全新存储层的`2.0`版本,当前最新版本是`2.44.0`版本。
1114 0
|
Prometheus 监控 Cloud Native
生产环境使用二进制安装Prometheus+Grafana监控系统
生产环境使用二进制安装Prometheus+Grafana监控系统
607 0