温馨提示×

centos中php如何监控与报警

小樊
47
2025-11-19 19:58:47
栏目: 编程语言

在CentOS系统中,使用PHP进行监控和报警可以通过以下几种方法实现:

  1. 使用PHP脚本定期检查系统资源或应用程序状态,并通过邮件、短信或其他方式发送报警通知。

  2. 使用现有的监控工具,如Nagios、Zabbix或Prometheus等,这些工具可以与PHP集成,提供更强大的监控和报警功能。

以下是使用PHP脚本进行监控和报警的一个简单示例:

  1. 首先,确保已安装并配置好PHP环境。

  2. 创建一个名为monitor.php的PHP文件,并添加以下代码:

<?php

// 设置监控参数
$threshold = 80; // 设置阈值,例如CPU使用率超过80%时触发报警
$check_interval = 60; // 设置检查间隔,单位:秒

// 获取系统资源信息
function getSystemResourceUsage() {
    $cpu_usage = shell_exec('top -bn1 | grep load | awk \'{printf("%.2f"), $(NF-2)}\'');
    $memory_usage = shell_exec('free | grep Mem | awk \'{printf("%.2f"), $3/$2 * 100}\'');
    $disk_usage = shell_exec('df -h / | grep / | awk \'{print $5}\'');

    return [
        'cpu_usage' => $cpu_usage,
        'memory_usage' => $memory_usage,
        'disk_usage' => $disk_usage,
    ];
}

// 发送报警通知
function sendAlertNotification($message) {
    // 这里可以使用您喜欢的邮件发送库,例如PHPMailer
    // 邮件接收者
    $to = 'your_email@example.com';
    // 邮件主题
    $subject = '监控报警通知';
    // 邮件内容
    $body = "警告:$message";

    // 发送邮件
    mail($to, $subject, $body);
}

// 检查系统资源使用情况
function checkSystemResourceUsage() {
    $resource_usage = getSystemResourceUsage();

    // 检查CPU使用率
    if ($resource_usage['cpu_usage'] > $threshold) {
        sendAlertNotification("CPU使用率过高:{$resource_usage['cpu_usage']}%");
    }

    // 检查内存使用率
    if ($resource_usage['memory_usage'] > $threshold) {
        sendAlertNotification("内存使用率过高:{$resource_usage['memory_usage']}%");
    }

    // 检查磁盘使用率
    if (strpos($resource_usage['disk_usage'], 'G') !== false) {
        $disk_usage = (int)substr($resource_usage['disk_usage'], 0, -1);
        if ($disk_usage > $threshold) {
            sendAlertNotification("磁盘使用率过高:{$disk_usage}G");
        }
    }
}

// 主循环
while (true) {
    checkSystemResourceUsage();
    sleep($check_interval);
}
  1. 修改sendAlertNotification函数中的邮件接收者地址为您自己的邮箱地址。

  2. 运行monitor.php脚本:

php monitor.php

这个示例脚本会定期检查系统的CPU、内存和磁盘使用情况,并在超过设定的阈值时发送报警通知。您可以根据自己的需求修改监控参数和报警方式。

请注意,这个示例仅用于演示目的,实际生产环境中可能需要更复杂的监控和报警策略。在这种情况下,建议使用专业的监控工具,如Nagios、Zabbix或Prometheus等。

0