背景
性能测试的时候需要监控业务服务器的各指标,比如cpu、内存、带宽、网络等,所以搭建基于一套可视化的数据展示平台,方便直观的观察的系统的运行状态。
整体的架构如下:
一、Ubuntu安装docker,若已经安装跳过此步骤
通过官方的安装指令安装,地址:(https://docs.docker.com/engine/install/ubuntu/) 截图如下:
如果网速较慢,我给指令摘抄下来了
卸载旧版本,卸载的非官方包如下
- docker.io
- docker-compose
- docker-compose-v2
- docker-doc
- podman-docker
1.运行以下命令卸载所有冲突的包:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
2.设置 Docker 的apt存储库。
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
3.安装 Docker 软件包(最新和指定版本选一)
3.1安装最新
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3.2安装具体版本
列出版本
# List the available versions:
apt-cache madison docker-ce | awk '{ print $3 }'
5:24.0.0-1~ubuntu.22.04~jammy
5:23.0.6-1~ubuntu.22.04~jammy
...
选择所需的版本并安装:
VERSION_STRING=5:24.0.0-1~ubuntu.22.04~jammy
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
4.验证docker是否安装成功
sudo docker run hello-world
或者查看docker版本
docker -v
二、安装node_exporter
1.离线包安装
下载地址:https://github.com/prometheus/node_exporter/releases
如果网络不好,我上传了资源,可以下载,地址:(https://download.csdn.net/download/deer_cui/88470117?spm=1001.2014.3001.5503)
选择对应的版本下载,然后上传到linux目录下,解压运行
解压
tar zxvf node_exporter.tar.gz
后台运行
nohup ./node_exporter &
运行成功后,端口监听在9100端口,可以lsof -i :9100 或者ps 查看进程
2.docker安装
确保机器已经安装docker,然后按照以下步骤安装node_exporter
2.1拉取node_exporter镜像:
docker pull prom/node-exporter
2.2 运行node_exporter容器:
docker run --rm --name=node-exporter -p 9100:9100 -d prom/node-exporter
其中,–rm参数表示容器退出时自动删除容器,–name参数指定容器的名称,-p参数将容器内的9100端口映射到主机的9100端口,-d参数表示在后台运行容器。
三、安装prometheus
官方安装文档(https://prometheus.io/docs/prometheus/latest/installation/)
3.1 拉取prometheus镜像
docker pull prom/prometheus
3.2 创建prometheus.yml配置文件
比如在home目录下创建一个prometheus文件夹,文件夹下创建prometheus.yml。
创建后编辑prometheus.yml,新增如下内容并保存:
# 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"
scrape_configs: #指定prometheus要监控的目标
- job_name: "server"
#我本机刚装了node_exporter,这里监控的是本机,如果有其他机器可以填写其他的ip+端口,然后重启prometheus服务
static_configs:
- targets: ["192.192.100.72:9100"]
3.3 启动prometheus(不保存prometheus数据和保存prometheus数据)
3.3.1不保存数据启动
/path/to/prometheus.yml 是刚刚prometheus的路径,比如/home/prometheus
prom/prometheus 是拉取的镜像
docker run \
-p 9090:9090 \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
3.3.2 保存Prometheus 数据启动
创建一个持久存储容器
docker volume create prometheus-data
然后指定持久容器启动
docker run \
-p 9090:9090 \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
-v prometheus-data:/prometheus \
prom/prometheus
四、安装grafana
官方安装文档:(https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/)
4.1拉取grafana镜像
docker pull grafana/grafana-enterprise
4.2启动grafana
docker run -d -p 3000:3000 --name=grafana grafana/grafana-enterprise
此时你部署基本完成了,可以打开浏览器通过ip+3000端口访问,比如我不熟的linux虚拟机ip为192.168.1.145,那么我就访问192.168.1.145:3000 ,会跳转到grafana的登录界面,然后账号密码默认是admin,会让你修改自己的登录密码。
五、grafana配置数据源和模板
5.1配置数据源
grafana是可视化的项目,主要起到展示的作用,所展示的数据需要有数据源,这里我们刚刚安装了prometheus,那么选择数据源为Prometheus。
配置数据源步骤
5.1.1侧边栏选择datasources
5.1.2add new data sources
5.1.3选择prometheus
5.1.4配置prometheus地址
5.1.5保存配置
5.2配置模板
配置好数据源以后,你的grafana就可以有数据来源了,但是为了更好看的展示,就需要一个美观的模板来展示,这个可以自定义,但是也可以用现成的。具体的模板都可以在grafana官网找到。地址(https://grafana.com/grafana/dashboards/)
这里我用一款用的比较多的监控node_exporter的资源的模板,id是 1860 效果如下:
配置模板的步骤
5.2.1选择仪表盘
5.2.2选择导入
5.2.3 输入id导入
5.2.4仪表盘查看效果
至此,已成艺术!你已经成功安装了,具体更多用法可以参考官方的文档,官方的文档一般都很详细。