目录


一、环境说明

适用环境:

  • Ubuntu 20.04 / 22.04
  • 离线部署(离线安装包在我上传的文件里)
  • tar.gz 二进制安装
  • systemd 管理服务

组件:

角色 组件
监控端 Prometheus + Grafana + Blackbox Exporter
被监控端 Node Exporter

组件说明:
Prometheus 是整个监控体系的核心服务器和时序数据库。它的主要作用有三个,分别是主动拉取数据、存储与计算、触发告警,可以当做是后端服务器。而Grafana负责数据可视化,也就是前端页面。Node Exporter 是一个专门安装在 Linux 或 Windows 服务器(物理机、虚拟机)上的轻量级代理程序,负责采集硬件信息,转发给Prometheus,类似与一个系统里的采集前置。 Blackbox Exporter用于做黑盒监控,只用于监控网站能不能打开、接口响应快不快、端口通不通。

二、监控端部署

1. 开放防火墙端口

Prometheus

sudo ufw allow 9090/tcp

Grafana

sudo ufw allow 3000/tcp

Blackbox Exporter

sudo ufw allow 9115/tcp

查看状态

sudo ufw status

2. 安装 Prometheus

解压

tar xvf prometheus-*.linux-amd64.tar.gz

进入目录

cd prometheus-*.linux-amd64

创建用户

sudo useradd --no-create-home --shell /usr/sbin/nologin prometheus

创建目录

sudo mkdir -p /etc/prometheus
sudo mkdir -p /var/lib/prometheus

复制程序

sudo cp prometheus promtool /usr/local/bin/

复制配置文件

sudo cp prometheus.yml /etc/prometheus/

复制 Web 文件

sudo cp -r consoles console_libraries /etc/prometheus/

修改权限

sudo chown -R prometheus:prometheus /etc/prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus

3. 安装 Blackbox Exporter

解压

tar xvf blackbox_exporter-*.linux-amd64.tar.gz

进入目录

cd blackbox_exporter-*.linux-amd64

创建用户

sudo useradd --no-create-home --shell /usr/sbin/nologin blackbox

复制程序

sudo cp blackbox_exporter /usr/local/bin/

创建目录

sudo mkdir -p /etc/prometheus

复制配置

sudo cp blackbox.yml /etc/prometheus/

4. 安装 Grafana

解压

tar -zxvf grafana-*.linux-amd64.tar.gz

移动目录

sudo mv grafana-v11.1.0 /usr/local/grafana

创建用户

sudo useradd -r -s /usr/sbin/nologin grafana

修改权限

sudo chown -R grafana:grafana /usr/local/grafana

5. 创建 Prometheus 服务

创建文件:

sudo nano /etc/systemd/system/prometheus.service

内容:

[Unit]
Description=Prometheus Server
After=network.target

[Service]
User=prometheus
Group=prometheus
Type=simple

ExecStart=/usr/local/bin/prometheus \
  --config.file=/etc/prometheus/prometheus.yml \
  --storage.tsdb.path=/var/lib/prometheus \
  --web.listen-address=:9090

Restart=on-failure

[Install]
WantedBy=multi-user.target

6. 配置 Prometheus

编辑:

sudo nano /etc/prometheus/prometheus.yml

内容(这边的百度和谷歌都可以直接替换成自己服务的API):

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:

  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'linux_servers'
    file_sd_configs:
      - files:
          - '/etc/prometheus/targets/*.json'
        refresh_interval: 1m

  - job_name: 'blackbox'
    metrics_path: /probe

    params:
      module: [http_2xx]

    static_configs:
      - targets:
          - https://www.baidu.com
          - https://www.google.com

    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target

      - source_labels: [__param_target]
        target_label: instance

      - target_label: __address__
        replacement: localhost:9115

7. 配置 Targets

创建目录

sudo mkdir -p /etc/prometheus/targets

创建配置

sudo nano /etc/prometheus/targets/linux_servers.json

内容(这个的ip修改成被监控端的ip):

[
  {
    "targets": [
      "192.168.1.1:9100"
    ],
    "labels": {
      "os": "linux"
    }
  }
]

8. 创建 Blackbox 服务

创建:

sudo nano /etc/systemd/system/blackbox_exporter.service

内容:

[Unit]
Description=Blackbox Exporter
After=network.target

[Service]
User=blackbox
Group=blackbox
Type=simple

ExecStart=/usr/local/bin/blackbox_exporter \
  --config.file=/etc/prometheus/blackbox.yml \
  --web.listen-address=:9115

Restart=on-failure

[Install]
WantedBy=multi-user.target

9. 创建 Grafana 服务

创建:

sudo nano /etc/systemd/system/grafana.service

内容:

[Unit]
Description=Grafana
After=network.target

[Service]
Type=simple
User=grafana
Group=grafana

WorkingDirectory=/usr/local/grafana

ExecStart=/usr/local/grafana/bin/grafana server \
  --homepath=/usr/local/grafana

Restart=on-failure

[Install]
WantedBy=multi-user.target

10. 启动服务

重新加载 systemd

sudo systemctl daemon-reload

设置开机自启

sudo systemctl enable prometheus
sudo systemctl enable blackbox_exporter
sudo systemctl enable grafana

启动服务

sudo systemctl start prometheus
sudo systemctl start blackbox_exporter
sudo systemctl start grafana

查看状态

sudo systemctl status prometheus
sudo systemctl status blackbox_exporter
sudo systemctl status grafana

三、被监控端部署

1. 开放防火墙

sudo ufw allow 9100/tcp

2. 安装 Node Exporter

解压

tar xvf node_exporter-*.linux-amd64.tar.gz

进入目录

cd node_exporter-*.linux-amd64

创建用户

sudo useradd --no-create-home --shell /usr/sbin/nologin node_exporter

复制程序

sudo cp node_exporter /usr/local/bin/

3. 创建 Node Exporter 服务

创建:

sudo nano /etc/systemd/system/node_exporter.service

内容:

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple

ExecStart=/usr/local/bin/node_exporter

Restart=on-failure

[Install]
WantedBy=multi-user.target

4. 启动 Node Exporter

重新加载

sudo systemctl daemon-reload

设置开机自启

sudo systemctl enable node_exporter

启动

sudo systemctl start node_exporter

查看状态

sudo systemctl status node_exporter

四、验证

Prometheus

http://监控端IP:9090

页面如下会显示监控的服务器和端口:
在这里插入图片描述

Grafana

http://监控端IP:3000

默认账号密码:

admin
admin

在这里插入图片描述

Node Exporter

http://被监控端IP:9100/metrics

五、Grafana 配置

添加数据源

路径:

Connections
-> Data Sources
-> Prometheus

URL:

http://localhost:9090

在这里插入图片描述

点击:

Save & Test

导入 Dashboard

由于内网无法访问:

grafana.com

所以需要:

离线导入 JSON

推荐 Dashboard:

Node Exporter Full

ID:

1860

下载地址:

https://grafana.com/grafana/dashboards/1860-node-exporter-full/

Grafana 导入:

Dashboards
-> Import
-> Upload JSON file

六、常用排查命令

查看端口

ss -lntp

查看 Prometheus 日志

journalctl -u prometheus -f

查看 Grafana 日志

journalctl -u grafana -f

查看 Node Exporter 日志

journalctl -u node_exporter -f

检查 Prometheus 配置

promtool check config /etc/prometheus/prometheus.yml
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐