当前位置:首页 > RockyLinux > 正文

RockyLinux服务监控与告警设置(手把手教你搭建稳定可靠的Linux服务器监控体系)

在现代 IT 运维中,对服务器状态的实时监控和及时告警是保障业务连续性的关键。本文将面向初学者,详细讲解如何在 RockyLinux 系统上搭建基础的服务监控与告警系统。无论你是刚接触 Linux 的小白,还是有一定经验的运维人员,都能通过本教程快速上手。

RockyLinux服务监控与告警设置(手把手教你搭建稳定可靠的Linux服务器监控体系) RockyLinux服务监控 系统告警设置 Linux服务器监控 Prometheus告警配置 第1张

一、为什么需要服务监控与告警?

当你运行一个 Web 服务、数据库或任何后台程序时,如果服务意外崩溃、CPU 使用率飙升或磁盘空间不足,而你却毫不知情,这可能导致严重的业务中断。通过部署 RockyLinux服务监控系统告警设置,你可以第一时间收到通知,快速响应问题。

二、所需工具介绍

本教程使用以下开源工具:

  • Prometheus:强大的时间序列数据库,用于采集和存储监控指标。
  • Node Exporter:用于收集主机(如 CPU、内存、磁盘、网络)的系统级指标。
  • Alertmanager:处理 Prometheus 发出的告警,并通过邮件、Webhook 等方式通知管理员。

这些工具组合构成了一个轻量但功能完整的 Linux服务器监控 方案。

三、安装 Node Exporter(采集系统指标)

首先,我们需要在 RockyLinux 上安装 Node Exporter 来暴露系统指标。

# 下载并解压 Node Exporter(以最新稳定版为例)cd /tmpwget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gztar xvfz node_exporter-1.7.0.linux-amd64.tar.gz# 移动到系统目录sudo mv node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/# 创建专用用户(安全最佳实践)sudo useradd -rs /bin/false node_exporter# 创建 systemd 服务文件sudo tee /etc/systemd/system/node_exporter.service << EOF[Unit]Description=Node ExporterAfter=network.target[Service]User=node_exporterGroup=node_exporterType=simpleExecStart=/usr/local/bin/node_exporter[Install]WantedBy=multi-user.targetEOF# 启动并设置开机自启sudo systemctl daemon-reloadsudo systemctl start node_exportersudo systemctl enable node_exporter  

完成后,访问 http://你的服务器IP:9100/metrics,应能看到大量系统指标数据。

四、安装 Prometheus

接下来安装 Prometheus 服务器:

# 创建 prometheus 用户和目录sudo useradd -rs /bin/false prometheussudo mkdir /etc/prometheus /var/lib/prometheus# 下载 Prometheuscd /tmpwget https://github.com/prometheus/prometheus/releases/download/v2.47.1/prometheus-2.47.1.linux-amd64.tar.gztar xvfz prometheus-2.47.1.linux-amd64.tar.gz# 复制二进制文件sudo cp prometheus-2.47.1.linux-amd64/prometheus /usr/local/bin/sudo cp prometheus-2.47.1.linux-amd64/promtool /usr/local/bin/# 设置权限sudo chown prometheus:prometheus /var/lib/prometheus  

然后创建 Prometheus 配置文件 /etc/prometheus/prometheus.yml

global:  scrape_interval: 15sscrape_configs:  - job_name: 'node'    static_configs:      - targets: ['localhost:9100']  

再创建 systemd 服务:

sudo tee /etc/systemd/system/prometheus.service << EOF[Unit]Description=PrometheusWants=network-online.targetAfter=network-online.target[Service]User=prometheusGroup=prometheusType=simpleExecStart=/usr/local/bin/prometheus \    --config.file /etc/prometheus/prometheus.yml \    --storage.tsdb.path /var/lib/prometheus/ \    --web.console.templates=/etc/prometheus/consoles \    --web.console.libraries=/etc/prometheus/console_libraries[Install]WantedBy=multi-user.targetEOF# 启动服务sudo systemctl daemon-reloadsudo systemctl start prometheussudo systemctl enable prometheus  

现在访问 http://你的服务器IP:9090,即可进入 Prometheus Web 界面。

五、配置告警规则

/etc/prometheus/ 目录下创建告警规则文件 alert.rules.yml

groups:- name: instance-down  rules:  - alert: InstanceDown    expr: up == 0    for: 1m    labels:      severity: critical    annotations:      summary: "Instance {{ $labels.instance }} down"      description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 1 minute."- name: high-cpu-load  rules:  - alert: HighCpuLoad    expr: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80    for: 2m    labels:      severity: warning    annotations:      summary: "High CPU load on {{ $labels.instance }}"      description: "CPU usage is above 80% for more than 2 minutes."  

然后修改 prometheus.yml,加入 rule_files:

rule_files:  - "alert.rules.yml"# 在 scrape_configs 下方添加 Alertmanager 地址(稍后配置)alerting:  alertmanagers:    - static_configs:        - targets: ['localhost:9093']  

六、安装并配置 Alertmanager

Alertmanager 负责接收 Prometheus 的告警并发送通知。我们以邮件通知为例:

# 下载 Alertmanagercd /tmpwget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gztar xvfz alertmanager-0.26.0.linux-amd64.tar.gz# 安装sudo cp alertmanager-0.26.0.linux-amd64/alertmanager /usr/local/bin/sudo cp alertmanager-0.26.0.linux-amd64/amtool /usr/local/bin/# 创建配置目录sudo mkdir /etc/alertmanager  

创建配置文件 /etc/alertmanager/alertmanager.yml(以 Gmail 为例,请替换为你的 SMTP 信息):

global:  smtp_smarthost: 'smtp.gmail.com:587'  smtp_from: 'your_email@gmail.com'  smtp_auth_username: 'your_email@gmail.com'  smtp_auth_password: 'your_app_password'route:  receiver: 'email-notifications'receivers:- name: 'email-notifications'  email_configs:  - to: 'admin@example.com'  

创建 systemd 服务:

sudo tee /etc/systemd/system/alertmanager.service << EOF[Unit]Description=AlertmanagerAfter=network.target[Service]User=prometheusGroup=prometheusType=simpleExecStart=/usr/local/bin/alertmanager \    --config.file /etc/alertmanager/alertmanager.yml \    --storage.path /var/lib/alertmanager[Install]WantedBy=multi-user.targetEOF# 启动sudo systemctl daemon-reloadsudo systemctl start alertmanagersudo systemctl enable alertmanager  

七、验证告警是否生效

重启 Prometheus 和 Alertmanager 服务后,故意停止 node_exporter(sudo systemctl stop node_exporter),等待 1 分钟,你应该会收到一封邮件告警。这说明你的 Prometheus告警配置 已成功运行!

八、总结

通过本教程,你已经掌握了在 RockyLinux 上搭建完整监控告警系统的核心步骤。这套方案不仅适用于个人项目,也能扩展到企业级环境。建议后续学习 Grafana 可视化、多节点监控等高级功能,进一步提升你的 Linux服务器监控 能力。

祝你在 RockyLinux 运维之路上越走越稳!