前期准备:
安装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.配置完成,效果展示