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 基础架构


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

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

二、Prometheus 安装

准备工作:

主机名 操作系统 IP 地址
Prometheus CentOS 7.4 192.168.1.1
Client CentOS 7.4 192.168.1.2
Granfana CentOS 7.4 192.168.1.3
  • 注意:在所有节点上安装 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 enable --now prometheus                             # 启动并开启自启

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

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

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 ~]# 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 的监控指标。

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.验证


四、使用 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 界面


Add data source(添加数据源)


Import(导入模板)


Prometheus(普罗米修斯)监控系统相关推荐

  1. 一篇文章搞定Prometheus普罗米修斯监控系统的部署

    Prometheus普罗米修斯监控系统 一.普罗米修斯监控概述 1.1 什么是普罗米修斯监控 二.时间序列数据 2.1 什么是序列数据 2.2 时间序列数据特点 2.3 普罗米修斯特征 三.普罗米修斯 ...

  2. 普罗米修斯监控系统_基于Prometheus和Grafana的监控平台 - 环境搭建

    导读 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics. Logging - 用于记录离散的事件.例如,应用程序的调试信息或错误信息.它是我们诊断问题的依据.比如 ...

  3. 普罗米修斯监控系统_一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式...

    前言 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念 ...

  4. 【监控】Prometheus(普罗米修斯)监控概述

    文章目录 一.监控系统概论 二.基础资源监控 2.1.网络监控 2.2.存储监控 2.3.服务器监控 2.4.中间件监控 2.5.应用程序监控(APM) 三.Prometheus 简介 3.1.什么是 ...

  5. Prometheus普罗米修斯监控+Alertmanager预警+钉钉预警

    简单实操,可直接拷贝命令执行 前提条件: centos7  10.11.7.95 关闭selinux vi /etc/sysconfig/selinuxSELINUX=disabled setenfo ...

  6. 普罗米修斯 监控_完美的分布式监控系统——普罗米修斯

    DevOps工程师或SRE工程师,可能都知道Prometheus普罗米修斯.Prometheus于2012年由SoundCloud创建,目前已经已发展为最热门的分布式监控系统.Prometheus完全 ...

  7. 普罗米修斯 监控_接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  8. 普罗米修斯监控linux,Prometheus(普罗米修斯)搭建监控

    Prometheus(普罗米修斯) 实验环境:(各个主机,ip,所需服务) docker01 docker02 docker03 1.10 1.20 1.30 NodeEXporter NodeEXp ...

  9. Prometheus 普罗米修斯

    Prometheus 普罗米修斯 Prometheus由go语言开发,是一套开源的监控.报警.时间序列数据库的组合.适合监控docker容器.因为Kubernetes (K8S) 的流行带动了prom ...

  10. 普罗米修斯监控docker 服务

    环境 192.168.254.127 (监控服务器) 192.168.254.128 (被监控机器) 首先在监控服务器安装: 1.安装Node Exporter 来收集硬件信息 所有节点运行以下命令安 ...

最新文章

  1. 用OpenCV玩《铁拳》!!!
  2. 关于Python正则表达式的问题
  3. Qt中使用C++的方式
  4. SpringBoot 实战:如何从零开发 “淘宝”
  5. 装逼 | 10个JS精简代码无形装逼集合,最为致命,记得收藏好
  6. java list map嵌套_Java 集合-Map集合嵌套 的遍历四种方式
  7. 把python安装到u盘无法使用_U盘无法使用不能用怎么办解决教程
  8. 趣图 | 著名的悖论蒙提霍尔问题到底是什么?
  9. 交互式 shell 玩转 Python
  10. android 代码植入,Android Studio之Debug运行期代码植入的方法
  11. 如何在html中做圆角矩形和 只有右边的分隔线
  12. BZOJ4764弹飞大爷——LCT
  13. Google推出中文图书搜索简体中文试用版(zz)
  14. 虚拟机IP更换后 weblogic无法启动 java.net.BindException: 无法指定被请求的地址
  15. 北大计算机专业毕业论文,北京大学毕业论文格式范本
  16. popwindow详解
  17. JSP校园自行车租赁网站平台管理系统
  18. Windows 10 系统 Java 最新 最全 JDK下载 安装和环境配置 及 卸载:
  19. kali linux安装maven
  20. 教你联想一体机win7系统安装教程

热门文章

  1. DownloadHelper使用教程
  2. osgEarth加载二维地图
  3. 后端知识点:互联网中B端客户和C端客户的区别
  4. ADO与ADO.NET的区别
  5. 什么是HTTP代理?
  6. www.etiger.vipDEVC++入门练习
  7. 塑身必知常识:究竟是有氧运动还是无氧运动好?
  8. 计算机开机报一长两短,电脑开机发出一长两短报警声启动不了怎么办
  9. 刚买的新电脑win10系统卡的不行,谷歌浏览器搜索贼慢
  10. [CSS]CSS 字体属性