Docker+Prometheus+Grafana+node-exporter性能监控平台

前期准备:
安装Docker:安装Docker

前置知识:
Prometheus:开源的系统监控和报警工具
安装位置:性能服务器
作用:采集监控数据
Exporter是一个采集监控数据并通过Prometheus监控规范对外提供数据的组件,能为Prometheus提供监控的接口。
Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的Endpoint端点,即可获取到需要采集的监控数据。不同的Exporter负责不同的业务。
Grafana:开源可视化监控工具
安装位置:性能服务器
作用:生成各种漂亮的性能指标图,方便插入性能测试报告中
node-exporter:采集服务器性能工具
安装位置:性能服务器
作用:收集性能服务器的各种系统资源指标

一、准备工作

1.查看防火墙状态

firewall-cmd --state

在这里插入图片描述

2.临时关闭防火墙

systemctl stop firewalld.service

在这里插入图片描述

3.设置开机禁用防火墙(永久关闭防火墙)

systemctl disable firewalld.service 

在这里插入图片描述

4.查看系统时间

date

在这里插入图片描述
如果不准确,则安装ntp

yum install -y ntp

在这里插入图片描述
ntp 同步最新网络时间

ntpdate pool.ntp.org

在这里插入图片描述

二、安装node-exporter

1.下载node-exporter镜像

docker pull prom/node-exporter

在这里插入图片描述

2.查看所有下载的镜像

docker images

在这里插入图片描述

3.后台启动node-exporter镜像

docker run --name exporter -p 9100:9100 -d prom/node-exporter

命令解释:
–name exporter 启动镜像后就是个容器,给容器起个名字叫exporter
-p 9100:9100 指定宿主机(Linux)的9100端口与exporter容器的9100端口对应
-d 后台运行
prom/node-exporter 启动的镜像名
在这里插入图片描述

遇到的问题:Docker容器做端口映射报错:Error response from daemon: driver failed programming external connectivity on endpoint mynode-exporter
在这里插入图片描述
问题原因:docker服务启动时定义的自定义链DOCKER被清除
解决办法:
重启Docker

systemctl restart docker

在这里插入图片描述
删除刚才新建的容器

docker rm -f exporter

回到第3步,重新后台启动node-exporter镜像

4.打开浏览器,输入地址

地址:http://ip:9100/metrics
在这里插入图片描述

三、安装Prometheus(普罗米修斯)

1.创建配置文件

创建目录并编辑该目录下的prometheus.txt文件

mkdir -p /data/prometheus && vim /data/prometheus/prometheus.txt

命令解释:
mkdir加-p参数的意思是如果创建目录的父目录不存在则自动创建父目录,也就是data目录
vim编辑文件时,如果该文件不存在则自动创建

输入以下内容并修改为自己node-exporter的ip地址,按ESC,输入:wq保存并退出

# 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: ['自己的node-exporter的IP:9100']

重命名:把prometheus.txt文件重命名为prometheus.yml文件

mv /data/prometheus/prometheus.txt /data/prometheus/prometheus.yml

在这里插入图片描述

这么做的原因:如果直接生成.yml文件,把上述内容复制到.yml文件,会出现格式错乱的情况,而.yml基本语法规则如下:
大小写敏感;
使用缩进表示层级关系;(重点)
缩进时不允许使用Tab键,只允许使用空格;
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可;

2.下载Prometheus镜像

docker pull prom/prometheus

在这里插入图片描述

3.查看所有下载的镜像

docker images

在这里插入图片描述

4.后台启动Prometheus镜像

docker run --name prometheus -p 9090:9090 -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -d prom/prometheus

命令解释:
–name prometheus 启动镜像后就是个容器,给容器起个名字叫prometheus
-p 9090:9090 指定宿主机(Linux)的9090端口与prometheus容器的9090端口对应
-v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml 主机(linux)的/data/prometheus/prometheus.yml文件挂载容器的/etc/prometheus/prometheus.yml文件
-d 后台运行
prom/prometheus 启动的镜像名
在这里插入图片描述

5.打开浏览器,输入地址

地址:http://ip:9090/
在这里插入图片描述

四、安装Grafana

1.下载Grafana镜像

docker pull grafana/grafana

在这里插入图片描述

2.查看所有下载的镜像

docker images

在这里插入图片描述

3.后台启动grafana镜像

docker run --name grafana -p 3000:3000 -d grafana/grafana

–name grafana启动镜像后就是个容器,给容器起个名字叫grafana
-p 3000:3000 指定宿主机(Linux)的3000端口与grafana容器的3000端口对应
-d 后台运行
grafana/grafana 启动的镜像名
在这里插入图片描述

4.从浏览器中打开Grafana

地址:http://ip地址:3000/
例如:http://192.168.0.104:3000/

5.输入默认用户名:admin,默认密码:admin,点击Log in(登录)

在这里插入图片描述

6.点击Skip(跳过)。如果你想要设置新的密码的话,需要输入新密码和确认密码,点击Submit(提交),这里咱们跳过就好。

在这里插入图片描述

7.点击Add your first data source(添加第一个数据源)

在这里插入图片描述

8.Time series databases(时间序列数据库)选择Prometheus

在这里插入图片描述

9.配置数据源

Name填写Prometheus,或者你也可以自己起个名字,URL输入Prometheus地址
在这里插入图片描述
其他保持默认,点击Save & Test(保存和测试)按钮,如果出现Data source is working(数据源正在工作),表示配置已经好了
在这里插入图片描述

10.选择模板

进入网址https://grafana.com/grafana/dashboards/8919,点击Copy ID to Clipboard(复制ID到剪贴板)
在这里插入图片描述

11.导入模板

选择+号,点击Import(导入)
在这里插入图片描述
输入ID,点击Load(加载)
在这里插入图片描述
VictoriaMetrics(维多利亚度量)选择刚才配置的数据源Prometheus,点击Import(导入)
在这里插入图片描述

12.配置完成,效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Guess you like

Origin blog.csdn.net/Zuo19960127/article/details/122176957