在Linux上配置监控报警,通常需要以下几个组件:
# 下载Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.30.0/prometheus-2.30.0.linux-amd64.tar.gz
tar xvfz prometheus-*.tar.gz
cd prometheus-*
# 启动Prometheus
./prometheus --config.file=prometheus.yml
编辑prometheus.yml
文件:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100'] # Node Exporter地址
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
cd node_exporter-*
./node_exporter
wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
tar xvfz alertmanager-*.tar.gz
cd alertmanager-*
创建alert.rules
文件:
groups:
- name: example
rules:
- alert: HighMemoryUsage
expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes > 0.8
for: 5m
labels:
severity: warning
annotations:
summary: "High memory usage on {{ $labels.instance }}"
description: "Memory usage is {{ $value }}%"
编辑alertmanager.yml
:
route:
receiver: 'email-notifications'
receivers:
- name: 'email-notifications'
email_configs:
- to: 'admin@example.com'
from: 'alertmanager@example.com'
smarthost: 'smtp.example.com:587'
auth_username: 'alertmanager'
auth_password: 'password'
# Ubuntu/Debian
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
# CentOS/RHEL
sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
在Zabbix Web界面中: 1. 导航到"Administration" → "Media Types" 2. 配置Email、Slack、Webhook等报警方式
{host:system.cpu.load[all,avg1].last()}>5
对于简单需求,可以使用Shell脚本+cron+mailx:
#!/bin/bash
# CPU监控报警脚本
CPU_LOAD=$(uptime | awk '{print $10}' | cut -d. -f1)
MAX_LOAD=80
if [ $CPU_LOAD -gt $MAX_LOAD ]; then
echo "High CPU load: $CPU_LOAD%" | mail -s "CPU Alert" admin@example.com
fi
添加到cron:
crontab -e
# 每5分钟运行一次
*/5 * * * * /path/to/monitor_script.sh
以上配置可根据实际需求进行调整和组合,形成适合您环境的监控报警方案。