前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Centos7.X 搭建Prometheus+node_exporter+Grafana实时监控平台

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

作者头像
小菠萝测试笔记
发布2020-06-09 15:21:42
9750
发布2020-06-09 15:21:42
举报
文章被收录于专栏:自动化、性能测试

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

代码语言:javascript
复制
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.0.linux-amd64.tar.gz
cd prometheus-2.13.0.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配置系统服务

代码语言:javascript
复制
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系统,并查看服务是否启动

代码语言:javascript
复制
systemctl daemon-reload
systemctl enable prometheus.service
systemctl start prometheus.service
systemctl status prometheus.servic

查看端口是否正常

netstat -plntu |grep 9090

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

代码语言:javascript
复制
systemctl stop firewalld
systemctl status firewall

访问http://IP:9090

出现上图就是成功了!!

Centos7.x安装Node_exporter

下载安装Node_exporter

代码语言:javascript
复制
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.0.linux-amd64/node_exporter ${NODE_PATH}
chown -R prometheus.prometheus ${NODE_PATH}

配置Node_exporter系统服务

代码语言:javascript
复制
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系统,并查看服务是否启动

代码语言:javascript
复制
systemctl daemon-reload
systemctl enable node_exporter.service
systemctl start node_exporter.service
systemctl status node_exporter.service

查看端口是否正常

netstat -plntu |grep 9100

这里需要放行9100端口

访问http://IP:9100/metrics

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

最后一步,配置prometheus.yml

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

代码语言:javascript
复制
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# 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://cloud.tencent.com/developer/article/1641016

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Prometheus简介
    • 什么是 Prometheus
      • 主要功能
        • 核心组件
          • 基础架构
            • 学习参考网站(此章博客有参考以下网站~用作学习)
        • Prometheus+node_exporter+Grafana资源监控架构图
        • Centos7.x安装Prometheus
          • 下载安装Prometheus
            • 将Prometheus配置系统服务
              • 访问http://IP:9090
              • Centos7.x安装Node_exporter
                • 下载安装Node_exporter
                  • 配置Node_exporter系统服务
                    • 访问http://IP:9100/metrics
                      • 最后一步,配置prometheus.yml
                      • 配置Grafana
                      相关产品与服务
                      Prometheus 监控服务
                      Prometheus 监控服务(TencentCloud Managed Service for Prometheus,TMP)是基于开源 Prometheus 构建的高可用、全托管的服务,与腾讯云容器服务(TKE)高度集成,兼容开源生态丰富多样的应用组件,结合腾讯云可观测平台-告警管理和 Prometheus Alertmanager 能力,为您提供免搭建的高效运维能力,减少开发及运维成本。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档