本次实操需要一台低配置阿里云ECS作为监控服务器(建议配置:1核2G内存,操作系统选Ubuntu 22.04 LTS),另一台任意配置的阿里云ECS作为被监控服务器,两台服务器需在同一VPC安全组内。
登录监控服务器,按顺序执行以下命令:
```bash 创建专用目录 sudo mkdir -p /opt/prometheus 进入目录 cd /opt/prometheus 下载Prometheus 2.52.0版本(最新稳定版可在https://prometheus.io/download/查询) sudo wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz 解压 sudo tar -zxvf prometheus-2.52.0.linux-amd64.tar.gz 重命名解压后的文件夹 sudo mv prometheus-2.52.0.linux-amd64 prometheus-core ```修改默认配置文件,添加被监控节点:
```bash 打开配置文件 sudo nano /opt/prometheus/prometheus-core/prometheus.yml ```将原有内容全部替换为以下可直接复制的配置(注意将`<被监控服务器私有IP>`替换为真实IP):
```yaml global: scrape_interval: 15s 全局采集间隔15秒 scrape_configs: - job_name: 'prometheus' 监控自身 static_configs: - targets: ['localhost:9090'] - job_name: 'ecs-monitor' 监控被选ECS static_configs: - targets: ['<被监控服务器私有IP>:9100'] ```按`Ctrl+O`保存,按`Enter`确认文件名,按`Ctrl+X`退出。
实现开机自启和后台稳定运行:
```bash 创建systemd服务文件 sudo nano /etc/systemd/system/prometheus.service ```
粘贴以下可直接复制的内容:
```ini [Unit] Description=Prometheus After=network.target [Service] Type=simple User=root ExecStart=/opt/prometheus/prometheus-core/prometheus \ --config.file=/opt/prometheus/prometheus-core/prometheus.yml \ --storage.tsdb.path=/opt/prometheus/prometheus-core/data \ --web.listen-address=0.0.0.0:9090 Restart=on-failure [Install] WantedBy=multi-user.target ```按`Ctrl+O`保存,按`Enter`确认,按`Ctrl+X`退出。
访问浏览器:`http://<监控服务器公网IP>:9090`,在顶部搜索框输入`up`,点击Execute,若显示两个`1`说明监控服务器和被监控服务器的采集配置已生效。
node_exporter用于采集被监控服务器的CPU、内存、磁盘、网络等基础数据,需在被监控服务器上执行:
```bash 创建专用目录 sudo mkdir -p /opt/node_exporter 进入目录 cd /opt/node_exporter 下载node_exporter 1.8.2版本(最新稳定版可在https://prometheus.io/download/查询) sudo wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz 解压 sudo tar -zxvf node_exporter-1.8.2.linux-amd64.tar.gz 重命名 sudo mv node_exporter-1.8.2.linux-amd64 node_exporter-core ```粘贴以下可直接复制的内容:
```ini [Unit] Description=Node Exporter After=network.target [Service] Type=simple User=root ExecStart=/opt/node_exporter/node_exporter-core/node_exporter \ --web.listen-address=0.0.0.0:9100 Restart=on-failure [Install] WantedBy=multi-user.target ```保存退出后执行启动和自启命令:
```bash sudo systemctl daemon-reload sudo systemctl start node_exporter sudo systemctl enable node_exporter sudo systemctl status node_exporter 显示active(running)即为成功 ```Grafana用于将Prometheus采集的数据展示为直观的图表,需在监控服务器上执行:
```bash 添加Grafana官方GPG密钥 sudo apt-get install -y apt-transport-https software-properties-common sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key 添加Grafana官方源 echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list 更新软件包列表 sudo apt-get update 安装Grafana OSS版本 sudo apt-get install -y grafana ```访问浏览器:`http://<监控服务器公网IP>:3000`,默认用户名和密码均为`admin`,首次登录需修改密码。
导入后即可看到被监控服务器的CPU使用率、内存使用率、磁盘IO、网络流量等实时图表。
以CPU使用率超过80%持续5分钟为例:
在监控服务器上执行:
```bash 创建规则目录 sudo mkdir -p /opt/prometheus/prometheus-core/rules 创建规则文件 sudo nano /opt/prometheus/prometheus-core/rules/ecs-alerts.yml ```粘贴以下可直接复制的内容:
```yaml groups: - name: ecs-basic-alerts rules: - alert: ECS_CPU_High expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) 100) > 80 for: 5m labels: severity: warning annotations: summary: "ECS实例 {{ $labels.instance }} CPU使用率过高" description: "ECS实例 {{ $labels.instance }} CPU使用率已达 {{ $value | round 2 }}%,持续超过5分钟" ```保存退出。
在`global:`下方添加:
```yaml rule_files: - "rules/ecs-alerts.yml" ```保存退出后重启Prometheus:
```bash sudo systemctl restart prometheus ```访问Prometheus界面,点击顶部菜单的Alerts,若看到`ECS_CPU_High`状态为`inactive`(正常状态)或`pending/firing`(触发状态)即为配置成功。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图