Prometheus简介

什么是 Prometheus

Prometheus是一个开源监控报警系统和时序列数据库

主要功能

  • 多维数据模型(时序由 metric 名字和 k/v 的 labels 构成)
  • 灵活的查询语句(PromQL)
  • 无依赖存储,支持 local 和 remote 不同模型
  • 采用 http 协议,使用 pull 模式,拉取数据,简单易懂
  • 监控目标,可以采用服务发现或静态配置的方式
  • 支持多种DashBoard,图形化友好

核心组件

  • Prometheus Server, 主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。
  • client libraries,用于对接 Prometheus Server, 可以查询和上报数据。
  • push gateway ,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。
  • 各种汇报数据的 exporters ,例如汇报机器数据的 node_exporter, 汇报 MongoDB 信息的 MongoDB exporter 等等。
  • 用于告警通知管理的 alertmanager 。

基础架构

主要模块包含: Server, Exporters, Pushgateway, PromQL, Alertmanager, WebUI 等。

  • Prometheus Server:主要是负责存储、抓取、聚合、查询方面
  • Alertmanager:主要是负责实现报警功能
  • Pushgateway :主要是实现接收由Client push过来的指标数据,在指定的时间间隔,由主程序来抓取
  • exporter:数据采样器

学习参考网站(此章博客有参考以下网站~用作学习)

技术大牛博客: https://www.k8stech.net/

中文技术文档:https://www.prometheus.wang/visualiztion/grafana.html

Prometheus+node_exporter+Grafana资源监控架构图

Centos7.x安装Prometheus

下载安装Prometheus

PROM_PATH='/data/prometheus'
mkdir -p ${PROM_PATH}
mkdir -p ${PROM_PATH}/{data,conf,logs,bin}
useradd prometheus
cd /usr/local/src
wget https://github.com/prometheus/prometheus/releases/download/v2.13.0/prometheus-2.13.0.linux-amd64.tar.gz
tar -xvf prometheus-2.13..linux-amd64.tar.gz
cd prometheus-2.13..linux-amd64/
cp prometheus promtool ${PROM_PATH}/bin/
cp prometheus.yml ${PROM_PATH}/conf/
chown -R prometheus.prometheus /data/prometheus
# Setting Variables
cat >> /etc/profile <<EOF
PATH=/data/prometheus/bin:$PATH:$HOME/bin
EOF

将Prometheus配置系统服务

cat >>/etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target [Service]
Type=simple
User=prometheus
ExecStart=/data/prometheus/bin/prometheus --config.file=/data/prometheus/conf/prometheus.yml --storage.tsdb.path=/data/prometheus/data --storage.tsdb.retention=90d
Restart=on-failure [Install]
WantedBy=multi-user.target
EOF

现在使用下面的systemctl命令重新加载systemd系统,并查看服务是否启动

systemctl daemon-reload
systemctl enable prometheus.service
systemctl start prometheus.service
systemctl status prometheus.servic

查看端口是否正常

netstat -plntu |grep

这里需要放行9090端口,也可以直接关闭防火墙

systemctl stop firewalld
systemctl status firewall

访问http://IP:9090

出现上图就是成功了!!

Centos7.x安装Node_exporter

下载安装Node_exporter

NODE_PATH='/data/prometheus/node_exporter/'
cd /usr/local/src/
mkdir -p ${NODE_PATH}
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.0/node_exporter-0.18.0.linux-amd64.tar.gz
tar -xvf node_exporter-0.18.0.linux-amd64.tar.gz
cp node_exporter-0.18..linux-amd64/node_exporter ${NODE_PATH}
chown -R prometheus.prometheus ${NODE_PATH}

配置Node_exporter系统服务

cat > /lib/systemd/system/node_exporter.service <<EOF
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target [Service]
Type=simple
User=prometheus
ExecStart=/data/prometheus/node_exporter/node_exporter
Restart=on-failure [Install]
WantedBy=multi-user.target
EOF

现在使用下面的systemctl命令重新加载systemd系统,并查看服务是否启动

systemctl daemon-reload
systemctl enable node_exporter.service
systemctl start node_exporter.service
systemctl status node_exporter.service

查看端口是否正常

netstat -plntu |grep

这里需要放行9100端口

访问http://IP:9100/metrics

如果出现上图,就成功啦!!!

最后一步,配置prometheus.yml

如果是跟着我的安装步骤走的话,它的路径是 /data/prometheus/conf

# my global config
global:
scrape_interval: 15s # Set the scrape interval to every seconds. Default is every minute.
evaluation_interval: 15s # Evaluate rules every seconds. The default is every minute.
# scrape_timeout is set to the global default (10s). # Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager: # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus' # metrics_path defaults to '/metrics'
# scheme defaults to 'http'. static_configs:
- targets: ['localhost:9090'] # 主要是新增了node_exporter的job,如果有多个node_exporter,在targets数组后面加即可 - job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']

配置Grafana

这里就不展开如何安装Grafana了哈,不懂的可以查看这篇博客:https://www.cnblogs.com/poloyy/p/12219145.html 

配置完之后,就能自动读取prometheus存储的数据,然后就dengdengdengdeng!!厉酷炫吧!!

如果你读取失败,请务必检查自己的prometheus和Node_exporter是否有安装成功,通过访问9090和9100端口的网址来判断即可!

Centos7.X 搭建Prometheus+node_exporter+Grafana实时监控平台的更多相关文章

  1. Centos8.X 搭建Prometheus+node_exporter+Grafana实时监控平台

    Prometheus Promtheus是一个时间序列数据库,其采集的数据会以文件的形式存储在本地中,因此项目目录下需要一个data目录,需要我们自己创建,下面会讲到 下载 下载好的.tar.gz包放 ...

  2. 基于Prometheus和Grafana的监控平台 - 运维告警

    通过前面几篇文章我们搭建好了监控环境并且监控了服务器.数据库.应用,运维人员可以实时了解当前被监控对象的运行情况,但是他们不可能时时坐在电脑边上盯着DashBoard,这就需要一个告警功能,当服务器或 ...

  3. 基于Prometheus和Grafana的监控平台 - 环境搭建

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

  4. Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台(不使用docker)

    工具介绍 [centos7安装influxDB] Influxdata官网下载路径:https://portal.influxdata.com/downloads/ 1.直接执行以下命令安装 2.安装 ...

  5. 全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台

    背景 日常工作中,经常会用到Jmeter去压测,毕竟LR还要钱(@¥&*...),而最常用的接口压力测试,我们都是通过聚合报告去查看压测结果的,然鹅聚合报告的真的是丑到家了,作为程序猿这当然不 ...

  6. window平台基于influxdb + grafana + jmeter 搭建性能测试实时监控平台

    一.influxdb 安装与配置 1.1 influxdb下载并安装 官网无需翻墙,但是下载跳出的界面需要翻墙,我这里提供下载链接:https://dl.influxdata.com/influxdb ...

  7. Centos8.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台

    前言 本篇文章引用了小菠萝测试笔记,大部分内容非原创,基于自身实操过程中,完善了部分. 本篇随笔是在Linux上搭建的,后面会补充在docker以及k8s上如何部署安装 工具介绍 工具 介绍 Jmet ...

  8. Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息

    Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息 一.通过redis_exporter监控redis 1.1 下载镜像 1.2 运行服务 ...

  9. Centos7.5搭建ELK-6.5.0日志分析平台

    Centos7.5搭建ELK-6.5.0日志分析平台 1. 简介 工作工程中,不论是开发还是运维,都会遇到各种各样的日志,主要包括系统日志.应用程序日志和安全日志,对于开发人员来说,查看日志,可以实时 ...

随机推荐

  1. [Algo] 306. Check If Linked List Is Palindrome

    Given a linked list, check whether it is a palindrome. Examples: Input:   1 -> 2 -> 3 -> 2 ...

  2. Educational Codeforces Round 78 (Rated for Div. 2)B. A and B(1~n的分配)

    题:https://codeforces.com/contest/1278/problem/B 思路:还是把1~n分配给俩个数,让他们最终相等 假设刚开始两个数字相等,然后一个数字向前走了abs(b- ...

  3. [原]livekd使用问题记录

    sysinternal suite中的livekd.exe可谓神器.可以用来观察本地内核的一些状态,当然抓内核dump再合适不过了. 在使用livekd的时候遇到了一些问题,现总结如下: 使用live ...

  4. 包-logging-hashlib-深浅拷贝

    一.包: 包的本质就是一个模块 什么是包:它是一系列模块文件的结合体,表示形式就是一个文件夹,该文件夹内部通常会有一个__init__..py的文件 导入包的过程:先产生一个执行文件的名称空间 1:创 ...

  5. ZJNU 1153 - 找单词——中级

    状态转移b[i]记录价值为i的单词种类数d[j+k*i]+=b[j] , k<=a[i]&&j+k*i<=50表示价值为j+k*i的单词可以由价值为j的单词加上k个i字母转 ...

  6. 序列化模块Serializer

    序列化组件: 知识点:Serializer(偏底层).ModelSerializer(重点).ListModelSerializer(辅助群改) Serializer 序列化准备: 模型层:model ...

  7. dubbo同步/异步调用的方式

    我们知道,Dubbo 缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制:基于这种机制,Dubbo 实现了以下几种调用方式: 同步调用(默认) 异步调用 参数回调 事件通知 同步 ...

  8. P - Atlantis (线段树+扫描线)

      There are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Som ...

  9. Euler characteristic

    Euler characteristic Euler定理 顶点(v),棱数(edge)(e),面(J) 尽管我们有四个不同的四面体,但是如果我们将顶点数\((v)\)减去棱数\((e)\)再加上四面体 ...

  10. [Linux] Ubuntu 配置nfs

    安装NFS Server: 1. 执行命令 "$ sudo apt-get install nfs-kernel-server",安装nfs server 端 2. 创建需要用来分 ...