服务器性能监控网站源码2.0

使用AI写的一个服务器性能监控网站,接口采用宝塔面板API,部署站点和被监控服务器均需要安装宝塔面板才可以正常运行。

更新内容:

  • 首页新增负载信息
  • 新增告警邮箱通知(负载、CPU、内存、硬盘、流量上行/下行,只需要开启部分告警在”alert_manager.php“里设置)

环境要求:

  • PHP 7.2+ (推荐 7.4/8.0)
  • 已安装 PHP 扩展:fileinfo
  • redis(用于缓存使用,可选择不使用)

安装教程:

1.上传压缩包到站点目录解压

2.打开终端执行 ./setup_baota.sh 执行成功后会自动安装依赖

图片[1]-服务器性能监控网站源码2.0
图片[2]-服务器性能监控网站源码2.0

3.安装成功后会新增cache、cookies、logs、vendor文件夹以及.env、servers.php文件

4.修改.env文件(配置邮箱信息和redis信息)

图片[3]-服务器性能监控网站源码2.0

5.修改servers.php(宝塔面板连接信息)

6.修改config.php(告警阈值)

        // 告警配置
        'alert' => [
            'enabled' => true,
            'cooldown' => 1800, // 防抖间隔(秒)
            'recipients' => array_filter(explode(',', $this->env('ALERT_EMAIL'))),
            'thresholds' => [
                'load' => 100,              // 负载阈值:80%
                'cpu' => 85,               // CPU阈值:85%
                'memory' => 80,            // 内存阈值:90%
                'disk' => 85,              // 磁盘阈值:85%
                'network_up' => 20000,    // 上行流量:100MB/s (100000 KB/s)
                'network_down' => 20000   // 下行流量:100MB/s

7.修改alert_manager.php(选择需要告警的类型)

 * 告警检查主方法 - 在这里选择开启哪些指标
 * ============================================
 */
public function checkAlerts($server, $metrics)
{
    if (!$this->config['enabled']) {
        return;
    }

    $serverKey = $server['key'];
    $thresholds = $this->config['thresholds'];

    // ========================================
    // ✅ 负载告警 - 推荐开启
    // ========================================
    $this->checkMetric(
        $serverKey . '_load', 
        self::ALERT_LOAD, 
        $metrics['load'], 
        $thresholds['load'], 
        $server
    );

    // ========================================
    // ✅ CPU 告警 - 推荐开启
    // ========================================
    // 如果不需要 CPU 告警,在下面这段代码前后加 /* */ 注释掉
    /*
    $this->checkMetric(
        $serverKey . '_cpu', 
        self::ALERT_CPU, 
        $metrics['cpu'], 
        $thresholds['cpu'], 
        $server
    );
    */

    // ========================================
    // ✅ 内存告警 - 推荐开启
    // ========================================
    // 如果不需要内存告警,在下面这段代码前后加 /* */ 注释掉
    /*
    $this->checkMetric(
        $serverKey . '_memory', 
        self::ALERT_MEMORY, 
        $metrics['mem'], 
        $thresholds['memory'], 
        $server
    );
    */

    // ========================================
    // ✅ 磁盘告警 - 强烈推荐开启
    // ========================================
    // 只检查使用率最高的分区
    // 如果不需要磁盘告警,删除或注释掉下面整个 if 块
    if (!empty($metrics['disk'])) {
        $maxDiskUsage = 0;
        $maxDiskPath = '';

        foreach ($metrics['disk'] as $disk) {
            if ($disk['used'] > $maxDiskUsage) {
                $maxDiskUsage = $disk['used'];
                $maxDiskPath = $disk['path'];
            }
        }

        if ($maxDiskUsage > 0) {
            $this->checkMetric(
                $serverKey . '_disk', 
                self::ALERT_DISK, 
                $maxDiskUsage, 
                $thresholds['disk'], 
                $server,
                ['path' => $maxDiskPath]
            );
        }
    }

    // ========================================
    // ⚠️ 网络流量告警(上行)- 可选
    // ========================================
    // 如果不需要上行流量告警,删除或注释掉下面这段
    $this->checkMetric(
        $serverKey . '_network_up', 
        self::ALERT_NETWORK, 
        $metrics['net_up'], 
        $thresholds['network_up'], 
        $server,
        ['direction' => 'up']
    );

    // ========================================
    // ⚠️ 网络流量告警(下行)- 可选
    // ========================================
    // 如果不需要下行流量告警,删除或注释掉下面这段
    $this->checkMetric(
        $serverKey . '_network_down', 
        self::ALERT_NETWORK, 
        $metrics['net_down'], 
        $thresholds['network_down'], 
        $server,
        ['direction' => 'down']
    );

    // ========================================
    // 📝 如需添加更多自定义告警,在这里添加
    // ========================================
}
服务器性能监控网站源码2.0

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容