Prometheus2.53.3 | 监控系统安装与配置指南(已成功安装)

本文旨在为读者提供一个完整的 Prometheus 监控系统的安装与配置教程,涵盖 Prometheus 主程序、常用 Exporters(如 Node Exporter 和 Mysqld Exporter)、Pushgateway 以及 Alertmanager 的部署步骤。通过本指南,您将能够:

  • 搭建一个功能完备的监控系统:实时监控主机性能、数据库状态以及自定义指标。
  • 实现告警功能:通过邮件等方式接收系统异常通知。
  • 适用于生产环境:配置了 systemd 服务、SELinux 兼容性和防火墙规则,确保系统健壮性与安全性。
  • 支持离线安装:提供明确的下载链接和步骤,方便在无网络环境中部署。

本文适用于运行 CentOS 9 或类似 Linux 发行版的用户,假设您具有基本的 Linux 操作知识和 root 权限。

通过本文,您可以:

  • 部署完整的 Prometheus 监控生态:包括 Prometheus 主程序、主机监控(Node Exporter)、数据库监控(Mysqld Exporter)、数据推送(Pushgateway)和告警管理(Alertmanager)。
  • 实现生产级配置:支持 systemd 服务管理、SELinux 兼容性和防火墙设置,适用于企业环境。
  • 掌握调试与验证方法:通过日志检查、端口测试和 curl 请求,确保系统正常运行。
  • 灵活调整:根据实际需求修改配置文件(如端口、密码、SMTP 设置)。

1. 安装 Prometheus 主程序

Prometheus 是一个开源的监控和告警工具,以下是其在 Linux 环境下的安装步骤。

 离线安装包下载链接Prometheus相关安装包.7z资源-优快云文库

Tips:如果下载了该离线安装包,可跳过使用wget下载的步骤,直接进行解压

1.1 创建 Prometheus 用户和组

为 Prometheus 创建一个系统用户和组,用于运行服务并设置文件权限。

sudo useradd --no-create-home --system -s /bin/false prometheus
  • 注释
    • useradd 创建一个无主目录的系统用户,禁用 shell 登录(/bin/false),以提升安全性。
    • 该步骤必须放在最前,确保后续的 chown prometheus:prometheus 命令能够正确执行。

1.2 下载并解压 Prometheus

下载 Prometheus 二进制文件并部署到指定目录。

cd /home
wget https://github.com/prometheus/prometheus/releases/download/v2.53.3/prometheus-2.53.3.linux-amd64.tar.gz

tar -xvzf prometheus-2.53.3.linux-amd64.tar.gz
sudo mkdir -p /usr/local/prometheus
sudo mv prometheus-2.53.3.linux-amd64/* /usr/local/prometheus/
sudo chown -R prometheus:prometheus /usr/local/prometheus
sudo chmod -R 755 /usr/local/prometheus
  • 注释
    • wget 下载指定版本的 Prometheus(v2.53.3,适用于 Linux AMD64 架构)。
    • tar -xvzf 解压下载的压缩包。
    • 创建 /usr/local/prometheus 目录并移动文件。
    • 使用 chown 设置目录所有者为 prometheus 用户,确保 Prometheus 进程可访问。
    • chmod -R 755 设置目录权限,允许所有用户读取和执行,但只有所有者可写入。

1.3 创建数据目录

为 Prometheus 创建用于存储时间序列数据的目录。

sudo mkdir -p /usr/local/prometheus/data
sudo chown -R prometheus:prometheus /usr/local/prometheus/data
sudo chmod -R 755 /usr/local/prometheus/data
  • 注释
    • 数据目录用于存储监控数据(如时间序列数据库 TSDB)。
    • 使用 chown 和 chmod 设置权限,确保 Prometheus 进程可以读写。

1.4 配置 Prometheus

创建并编辑 Prometheus 的配置文件 prometheus.yml。

sudo tee /usr/local/prometheus/prometheus.yml > /dev/null <<EOF
global:
  scrape_interval: 15s
  evaluation_interval: 15s
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
  - job_name: "node_exporter"
    static_configs:
      - targets: ["localhost:9100"]
  - job_name: "mysqld_exporter"
    static_configs:
      - targets: ["localhost:9104"]
  - job_name: "pushgateway"
    static_configs:
      - targets: ["localhost:9091"]
alerting:
  alertmanagers:
    - static_configs:
        - targets: ["localhost:9093"]
EOF
sudo chown prometheus:prometheus /usr/local/prometheus/prometheus.yml
sudo chmod 644 /usr/local/prometheus/prometheus.yml
  • 注释
    • global 配置全局抓取和评估间隔为 15 秒。
    • scrape_configs 定义监控目标,包括 Prometheus 自身(9090 端口)、Node Exporter(9100 端口)、Mysqld Exporter(9104 端口)和 Pushgateway(9091 端口)。
    • alerting 指定告警管理器地址(Alertmanager,9093 端口)。
    • 使用 tee 创建文件,避免手动编辑出错。

1.5 配置 SELinux 上下文

若系统启用了 SELinux,需配置上下文以确保兼容性。

# 安装 SELinux 工具(若未安装,需联网执行)
sudo dnf install -y setools-console policycoreutils-python-utils
# 配置二进制文件 SELinux 上下文
sudo chcon -t bin_t /usr/local/prometheus/prometheus
sudo semanage fcontext -a -t bin_t "/usr/local/prometheus/prometheus"
sudo restorecon -v /usr/local/prometheus/prometheus
# 配置数据目录 SELinux 上下文
sudo chcon -R -t var_lib_t /usr/local/prometheus/data
sudo semanage fcontext -a -t var_lib_t "/usr/local/prometheus/data(/.*)?"
sudo restorecon -R -v /usr/local/prometheus/data
  • 注释
    • dnf install 安装 SELinux 管理工具(若已安装可跳过)。
    • chcon 和 semanage fcontext 设置二进制文件和数据目录的 SELinux 类型。
    • restorecon 应用上下文更改。

1.6 创建 systemd 服务文件

配置 Prometheus 为 systemd 服务,以便系统启动时自动运行。

sudo tee /etc/systemd/system/prometheus.service > /dev/null <<EOF
[Unit]
Description=Prometheus Monitoring Server
After=network.target
[Service]
User=prometheus
Group=prometheus
WorkingDirectory=/usr/local/prometheus
ExecStartPre=/bin/test -x /usr/local/prometheus/prometheus
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data --web.listen-address=0.0.0.0:9090
Restart=always
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
  • 注释
    • ExecStartPre 检查二进制文件是否存在,提升健壮性。
    • ExecStart 指定启动命令,绑定 9090 端口并使用指定配置文件和数据路径。
    • 输出重定向到 journal 日志,便于排查问题。

1.7 启动并启用 Prometheus 服务

启动服务并设置开机自启。

sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
  • 注释
    • daemon-reload 重新加载服务文件。
    • start 和 enable 分别启动服务并设置开机自启。

1.8 配置防火墙

开放 Prometheus 的 9090 端口。

sudo firewall-cmd --add-port=9090/tcp --permanent
sudo firewall-cmd --reload
  • 注释
    • firewall-cmd 配置防火墙规则,--permanent 确保重启后生效。

1.9 验证 Prometheus 运行状态

检查服务是否正常运行。

​sudo systemctl status prometheus
sudo ss -tuln | grep 9090

curl http://localhost:9090
  • 注释
    • systemctl status 查看服务状态。
    • ss -tuln 检查 9090 端口是否监听。
    • curl 测试 Web 界面是否可访问。

1.10 (可选)检查日志

查看 Prometheus 的运行日志。

journalctl -u prometheus -f
  • 注释
    • -f 实时跟踪日志,便于调试。

1.11 (可选)处理 SELinux 问题

若遇到 SELinux 相关问题,可临时关闭 SELinux 测试。

sudo ausearch -m avc -ts recent
sudo setenforce 0

sudo systemctl restart prometheus
# 若成功运行后再恢复 SELinux
sudo setenforce 1
  • 注释
    • ausearch 查看 SELinux 拒绝日志。
    • setenforce 0 临时关闭 SELinux,测试后恢复。

2. 配置 Exporters(数据采集)

Exporters 用于采集各种系统或应用的指标数据并暴露给 Prometheus。

2.1 Node Exporter(主机监控)

安装 Node Exporter 以监控主机性能(如 CPU、内存、磁盘等)。

​cd /home
wget https://github.com/prometheus/node_exporter/releases/download/v1.9.0/node_exporter-1.9.0.linux-amd64.tar.gz
tar -xvzf node_exporter-1.9.0.linux-amd64.tar.gz
sudo mkdir -p /usr/local/bin
sudo mv node_exporter-1.9.0.linux-amd64/node_exporter /usr/local/bin/
sudo chmod +x /usr/local/bin/node_exporter
sudo chown prometheus:prometheus /usr/local/bin/node_exporter
# 配置 SELinux 上下文(若启用 SELinux)
sudo chcon -t bin_t /usr/local/bin/node_exporter
sudo semanage fcontext -a -t bin_t "/usr/local/bin/node_exporter"
sudo restorecon -v /usr/local/bin/node_exporter
# 创建 systemd 服务文件
sudo tee /etc/systemd/system/node-exporter.service > /dev/null <<EOF
[Unit]
Description=Node Exporter for Prometheus
After=network.target
[Service]
User=prometheus
Group=prometheus
ExecStartPre=/bin/test -x /usr/local/bin/node_exporter
ExecStart=/usr/local/bin/node_exporter --web.listen-address=:9100
Restart=always
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
# 启动并启用服务
sudo systemctl daemon-reload

sudo systemctl start node-exporter
sudo systemctl enable node-exporter
# 检查服务状态
sudo systemctl status node-exporter
# 配置防火墙
sudo firewall-cmd --add-port=9100/tcp --permanent

sudo firewall-cmd --reload
  • 注释
    • 下载并安装 Node Exporter v1.9.0。
    • 配置 SELinux 和 systemd 服务,确保兼容性和开机自启。
    • 开放 9100 端口以供 Prometheus 抓取指标。

2.2 Mysqld Exporter(MariaDB 监控)

安装 MariaDB 和 Mysqld Exporter 以监控数据库性能。

​
# 手动安装 MariaDB 10.5.27
cd /home
wget https://archive.mariadb.org/mariadb-10.5.27/bintar-linux-systemd-x86_64/mariadb-10.5.27-linux-systemd-x86_64.tar.gz
tar -xvzf mariadb-10.5.27-linux-systemd-x86_64.tar.gz
sudo mkdir -p /usr/local/mariadb
sudo mv mariadb-10.5.27-linux-systemd-x86_64/* /usr/local/mariadb/
sudo chown -R root:root /usr/local/mariadb
sudo mkdir -p /usr/local/mariadb/data
sudo chown -R mysql:mysql /usr/local/mariadb/data
# 创建 MariaDB 用户(若不存在)
sudo useradd --no-create-home --system -s /bin/false mysql
# 配置 SELinux 上下文(若启用 SELinux)
sudo chcon -t bin_t /usr/local/mariadb/bin/mysqld
sudo semanage fcontext -a -t bin_t "/usr/local/mariadb/bin/mysqld"
sudo restorecon -v /usr/local/mariadb/bin/mysqld
sudo chcon -R -t mysqld_db_t /usr/local/mariadb/data
sudo semanage fcontext -a -t mysqld_db_t "/usr/local/mariadb/data(/.*)?"
sudo restorecon -R -v /usr/local/mariadb/data
# 创建 systemd 服务文件
sudo tee /etc/systemd/system/mariadb.service > /dev/null <<EOF
[Unit]
Description=MariaDB Database Server
After=network.target
[Service]
ExecStartPre=/bin/mkdir -p /usr/local/mariadb/data
ExecStartPre=/bin/chown -R mysql:mysql /usr/local/mariadb/data
ExecStart=/usr/local/mariadb/bin/mysqld --datadir=/usr/local/mariadb/data --pid-file=/usr/local/mariadb/data/mariadb.pid
User=mysql
Group=mysql
Restart=always
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
# 启动并启用 MariaDB 服务
sudo systemctl daemon-reload

sudo systemctl start mariadb
sudo systemctl enable mariadb
# 运行安全配置脚本
sudo /usr/local/mariadb/scripts/mysql_secure_installation
# 下载并安装 Mysqld Exporter
cd /home
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.17.1/mysqld_exporter-0.17.1.linux-amd64.tar.gz
tar -xvzf mysqld_exporter-0.17.1.linux-amd64.tar.gz
sudo mkdir -p /usr/local/bin
sudo mv mysqld_exporter-0.17.1.linux-amd64/mysqld_exporter /usr/local/bin/
sudo chmod +x /usr/local/bin/mysqld_exporter
sudo chown prometheus:prometheus /usr/local/bin/mysqld_exporter
# 配置 SELinux 上下文(若启用 SELinux)
sudo chcon -t bin_t /usr/local/bin/mysqld_exporter
sudo semanage fcontext -a -t bin_t "/usr/local/bin/mysqld_exporter"
sudo restorecon -v /usr/local/bin/mysqld_exporter
# 配置 MariaDB 用户(将 'your_secure_password' 替换为实际密码)
sudo /usr/local/mariadb/bin/mysql -u root -p <<EOF
CREATE USER 'prometheus'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'prometheus'@'localhost';
FLUSH PRIVILEGES;
EXIT;
EOF
# 创建 Mysqld Exporter 配置文件
sudo mkdir -p /etc/mysqld_exporter

sudo tee /etc/mysqld_exporter/mysqld_exporter.cnf > /dev/null <<EOF
[client]
user=prometheus
password=your_secure_password
EOF
sudo chmod 600 /etc/mysqld_exporter/mysqld_exporter.cnf
sudo chown prometheus:prometheus /etc/mysqld_exporter/mysqld_exporter.cnf
# 创建 systemd 服务文件
sudo tee /etc/systemd/system/mysqld-exporter.service > /dev/null <<EOF
[Unit]
Description=Mysqld Exporter for MariaDB
After=network.target mariadb.service
[Service]
User=prometheus
Group=prometheus
ExecStartPre=/bin/test -x /usr/local/bin/mysqld_exporter
ExecStart=/usr/local/bin/mysqld_exporter --config.my-cnf=/etc/mysqld_exporter/mysqld_exporter.cnf --web.listen-address=:9104
Restart=always
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
# 启动并启用服务
sudo systemctl daemon-reload
sudo systemctl start mysqld-exporter
sudo systemctl enable mysqld-exporter
# 检查服务状态
sudo systemctl status mysqld-exporter
# 配置防火墙
sudo firewall-cmd --add-port=9104/tcp --permanent
sudo firewall-cmd --reload
  • 注释
    • 安装 MariaDB 10.5.27 并配置为 systemd 服务。
    • 创建数据库用户并授权给 Mysqld Exporter。
    • 配置 SELinux 和防火墙,确保 9104 端口可用。

验证

# 检查 MariaDB 版本
/usr/local/mariadb/bin/mysql -V
# 检查服务状态
sudo systemctl status mariadb

sudo systemctl status mysqld-exporter
# 检查端口
sudo ss -tuln | grep 9104
# 测试指标
curl http://localhost:9104/metrics


注释

  • 验证 MariaDB 和 Mysqld Exporter 是否正常运行。

    3. 配置 Pushgateway(数据推送)

    Pushgateway 用于接收客户端推送的指标数据。
     

    ​cd /home
    wget https://github.com/prometheus/pushgateway/releases/download/v1.11.0/pushgateway-1.11.0.linux-amd64.tar.gz
    tar -xvzf pushgateway-1.11.0.linux-amd64.tar.gz
    sudo mkdir -p /usr/local/bin
    sudo mv pushgateway-1.11.0.linux-amd64/pushgateway /usr/local/bin/
    sudo chmod +x /usr/local/bin/pushgateway
    sudo chown prometheus:prometheus /usr/local/bin/pushgateway
    # 配置 SELinux 上下文(若启用 SELinux)
    sudo chcon -t bin_t /usr/local/bin/pushgateway
    sudo semanage fcontext -a -t bin_t "/usr/local/bin/pushgateway"
    sudo restorecon -v /usr/local/bin/pushgateway
    # 创建 systemd 服务文件
    sudo tee /etc/systemd/system/pushgateway.service > /dev/null <<EOF
    [Unit]
    Description=Prometheus Pushgateway
    After=network.target
    [Service]
    User=prometheus
    Group=prometheus
    ExecStartPre=/bin/test -x /usr/local/bin/pushgateway
    ExecStart=/usr/local/bin/pushgateway --web.listen-address=:9091
    Restart=always
    StandardOutput=journal
    StandardError=journal
    [Install]
    WantedBy=multi-user.target
    EOF
    # 启动并启用服务
    sudo systemctl daemon-reload
    sudo systemctl start pushgateway
    sudo systemctl enable pushgateway
    # 检查服务状态
    sudo systemctl status pushgateway
    # 配置防火墙
    sudo firewall-cmd --add-port=9091/tcp --permanent
    sudo firewall-cmd --reload
    • 注释
      • 安装 Pushgateway v1.11.0。
      • 配置为 systemd 服务,监听 9091 端口。

    4. 配置 Alertmanager(告警管理)

    Alertmanager 用于处理 Prometheus 的告警并发送通知。

    4.1 下载并安装 Alertmanager

    ​cd /home
    wget https://github.com/prometheus/alertmanager/releases/download/v0.28.0/alertmanager-0.28.0.linux-amd64.tar.gz
    tar -xvzf alertmanager-0.28.0.linux-amd64.tar.gz
    sudo mkdir -p /usr/local/bin
    sudo mv alertmanager-0.28.0.linux-amd64/alertmanager /usr/local/bin/
    sudo chmod +x /usr/local/bin/alertmanager
    sudo chown prometheus:prometheus /usr/local/bin/alertmanager

    4.2 配置 SELinux(若启用 SELinux)

    sudo chcon -t bin_t /usr/local/bin/alertmanager
    sudo semanage fcontext -a -t bin_t "/usr/local/bin/alertmanager"
    sudo restorecon -v /usr/local/bin/alertmanager

    4.3 创建配置文件和数据目录

    sudo mkdir -p /etc/alertmanager /var/lib/alertmanager
    
    sudo tee /etc/alertmanager/alertmanager.yml > /dev/null <<EOF
    global:
      resolve_timeout: 5m
      smtp_smarthost: "smtp.qq.com:587"
      smtp_from: "此处填入qq号@qq.com"
      smtp_auth_username: "此处填入qq号@qq.com"
      smtp_auth_password: "此处填入授权码"
    route:
      receiver: "email"
      group_by: ["instance"]
    receivers:
      - name: "email"
        email_configs:
          - to: "需要发送到哪个邮箱"
            send_resolved: true
    EOF
    
    
    sudo chown prometheus:prometheus /etc/alertmanager/alertmanager.yml
    sudo chown -R prometheus:prometheus /var/lib/alertmanager
    sudo chmod 644 /etc/alertmanager/alertmanager.yml
    sudo chmod 755 /var/lib/alertmanager
    • 注释
      • 配置 SMTP 使用 QQ 邮箱发送告警邮件(需替换为实际账户和授权码)。

    4.4 创建 systemd 服务文件

    sudo tee /etc/systemd/system/alertmanager.service > /dev/null <<EOF
    [Unit]
    Description=Alertmanager for Prometheus
    After=network.target
    [Service]
    User=prometheus
    Group=prometheus
    ExecStartPre=/bin/test -x /usr/local/bin/alertmanager
    ExecStart=/usr/local/bin/alertmanager --config.file=/etc/alertmanager/alertmanager.yml --web.listen-address=:9093 --storage.path=/var/lib/alertmanager
    Restart=always
    StandardOutput=journal
    StandardError=journal
    [Install]
    WantedBy=multi-user.target
    EOF

    4.5 启动并启用服务

    sudo systemctl daemon-reload
    sudo systemctl start alertmanager
    sudo systemctl enable alertmanager
    sudo systemctl status alertmanager

    4.6 配置防火墙

    sudo firewall-cmd --add-port=9093/tcp --permanent
    sudo firewall-cmd --reload

    4.7 测试邮箱通知

    • 手动触发测试
    /usr/local/bin/alertmanager --config.file=/etc/alertmanager/alertmanager.yml --web.listen-address=:9093 --storage.path=/var/lib/alertmanager
    • 使用 curl 模拟告警
    curl -X POST -H "Content-Type: application/json" -d '[{"labels":{"alertname":"TestAlert"},"annotations":{"summary":"Test email notification"}}]' http://localhost:9093/api/v2/alerts
    • 排查问题
    telnet smtp.qq.com 587
    sudo firewall-cmd --add-port=587/tcp --permanent
    sudo firewall-cmd --reload
    journalctl -u alertmanager -f
    • 注释
      • 测试邮件通知功能,确保 SMTP 配置正确。

    5. 全局验证

    验证所有组件是否正常运行。

    ​# 检查所有服务状态
    sudo systemctl status prometheus node-exporter mysqld-exporter pushgateway alertmanager
    # 检查端口
    sudo ss -tuln | grep -E "9090|9100|9104|9091|9093"
    # 测试访问
    curl http://localhost:9090          # Prometheus
    curl http://localhost:9100/metrics  # Node Exporter
    curl http://localhost:9104/metrics  # Mysqld Exporter
    curl http://localhost:9091/metrics  # Pushgateway
    curl http://localhost:9093          # Alertmanager

    • 注释
      • 确保所有服务启动成功,端口监听正常,指标数据可访问。

    注意事项

    1. 密码替换
      • 在 mysqld_exporter.cnf 和 MariaDB 用户配置中,将 your_secure_password 替换为实际密码。
      • 在 alertmanager.yml 中,确认 SMTP 配置(如邮箱和授权码)正确。
    2. SELinux 工具
      • 若 semanage 不可用,需联网安装 policycoreutils-python-utils。
    3. 防火墙
      • 根据网络需求调整开放的端口。
    4. 离线安装
      • 保存所有 .tar.gz 文件,以便在无网络环境中重复安装。
    <think>嗯,用户想在Ubuntu上配置Prometheus和Grafana,并设置钉钉告警。首先,我需要回忆一下Prometheus和Grafana的安装步骤。Prometheus通常是通过下载二进制包,解压然后配置服务文件来安装的。Grafana的话,可能得添加APT仓库然后用apt安装,或者下载deb包。 然后,钉钉告警的话,Prometheus的Alertmanager需要配置webhook指向钉钉机器人。记得钉钉机器人需要生成一个webhook地址,这个地址要放在Alertmanager的配置里。同时,Grafana本身也支持钉钉告警,可能需要配置通知渠道,不过用户可能更倾向于用Prometheus的Alertmanager来做,所以得确认一下步骤。 接下来,用户提到的引用中有关于Prometheus配置的内容,比如引用[2]里的scrape_configs,可能需要配置目标。还有引用[4]提到Pushgateway,但用户的问题里暂时没提到这个,可能暂时不需要考虑,但可以留作扩展。 安装Prometheus的步骤应该是:下载、解压、创建用户和目录、配置systemd服务。然后验证是否运行在9090端口。Grafana的话,安装后要启动服务,默认端口3000,然后添加Prometheus数据源。 然后是Alertmanager的配置,下载安装配置钉钉的webhook。需要创建一个alertmanager.yml文件,里面设置接收器和路由。同时,Prometheus配置文件需要指向Alertmanager,并配置告警规则。 钉钉机器人方面,用户需要在钉钉群里添加自定义机器人,获取webhook URL,可能还需要设置关键词或IP安全设置。然后把这个URL放到Alertmanager的配置里,用Prometheus的模板生成告警信息。 测试部分,可能需要手动触发一个告警,比如让某个节点的exporter停止,看是否能够收到通知。或者使用一个测试的告警规则,比如up状态为0时触发。 注意事项方面,防火墙要开放相关端口,Prometheus、Alertmanager、Grafana的端口分别是9090、90933000。权限问题,可能涉及文件权限和SELinux,但Ubuntu默认可能没开SELinux,所以主要检查文件权限和目录所有权。 还有,用户可能需要配置Prometheus的scrape_configs来监控目标,比如节点导出器,或者应用指标。这部分在引用[2]里有提到静态配置,可以指导用户如何添加监控目标。 最后,生成相关问题的时候,可以考虑扩展监控目标的添加、高可用部署、其他通知集成的可能性,或者性能优化等问题。</think>### 分步指南:Ubuntu 系统搭建 Prometheus + Grafana 并集成钉钉告警 --- #### 一、安装 Prometheus 1. **下载并解压** ```bash wget https://github.com/prometheus/prometheus/releases/download/v2.53.2/prometheus-2.53.2.linux-amd64.tar.gz tar xvfz prometheus-*.tar.gz mv prometheus-* /opt/prometheus ``` 2. **创建系统用户配置文件** ```bash sudo useradd --no-create-home --shell /bin/false prometheus sudo mkdir /etc/prometheus sudo cp /opt/prometheus/prometheus.yml /etc/prometheus/ ``` 3. **配置 systemd 服务** 创建文件 `/etc/systemd/system/prometheus.service`: ```ini [Unit] Description=Prometheus After=network.target [Service] User=prometheus ExecStart=/opt/prometheus/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/data Restart=always [Install] WantedBy=multi-user.target ``` 启动服务: ```bash sudo systemctl daemon-reload sudo systemctl start prometheus sudo systemctl enable prometheus ``` --- #### 二、安装 Grafana 1. **添加仓库并安装** ```bash sudo apt-get install -y apt-transport-https wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list sudo apt-get update sudo apt-get install grafana ``` 2. **启动服务** ```bash sudo systemctl start grafana-server sudo systemctl enable grafana-server ``` 3. **访问 Grafana** 浏览器打开 `http://<服务器IP>:3000`,默认账号/密码:`admin/admin`。 --- #### 三、配置钉钉告警 1. **创建钉钉机器人** - 在钉钉群设置中选择「机器人」→「自定义」→ 设置关键词(如 `Alert`)并记录 Webhook URL[^4]。 2. **安装 Alertmanager** ```bash wget https://github.com/prometheus/alertmanager/releases/download/v0.27.0/alertmanager-0.27.0.linux-amd64.tar.gz tar xvfz alertmanager-*.tar.gz mv alertmanager-*/alertmanager /usr/local/bin/ ``` 3. **配置 Alertmanager** 创建 `/etc/alertmanager/alertmanager.yml`: ```yaml route: group_by: [&#39;alertname&#39;] receiver: &#39;dingtalk&#39; receivers: - name: &#39;dingtalk&#39; webhook_configs: - url: &#39;https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN&#39; send_resolved: true ``` 4. **修改 Prometheus 告警规则** 在 `prometheus.yml` 中添加: ```yaml alerting: alertmanagers: - static_configs: - targets: [&#39;localhost:9093&#39;] rule_files: - /etc/prometheus/alert_rules.yml ``` 示例告警规则文件 `/etc/prometheus/alert_rules.yml`: ```yaml groups: - name: example rules: - alert: InstanceDown expr: up == 0 for: 1m labels: severity: critical annotations: summary: "Instance {{ $labels.instance }} down" ``` 5. **重启服务** ```bash sudo systemctl restart prometheus alertmanager ``` --- #### 四、验证告警 1. **触发测试告警** 停止某个被监控的 Exporter(如 Node Exporter),观察钉钉是否收到消息。 2. **Grafana 告警集成(可选)** 在 Grafana 中添加钉钉通知渠道: - 进入「Alerting」→「Notification channels」→ 选择「DingDing」类型并填写 Webhook URL。 --- #### 注意事项 1. **防火墙开放端口**:确保 `9090`(Prometheus)、`3000`(Grafana)、`9093`(Alertmanager)端口开放。 2. **权限问题**:若使用非默认路径,需确保目录权限归属正确[^2]。 3. **高可用扩展**:可通过 Pushgateway 处理短生命周期任务的指标采集[^4]。 --- §§ 1. 如何添加自定义监控目标到 Prometheus2. Prometheus 如何实现高可用部署? 3. Grafana 支持哪些其他告警通知渠道? 4. 如何优化 Prometheus 的存储性能? [^1]: [Grafana 作为可视化工具的优势](#) [^2]: [Prometheus 配置文件重载方法](#) : [Pushgateway 的作用配置](#)
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    李李网工日记

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值