【问题标题】:How to get CPU/RAM usage from differenet servers?如何从不同的服务器获取 CPU/RAM 使用率?
【发布时间】:2017-01-13 07:31:29
【问题描述】:

我想知道如何在一个主页“Monitoring.php”上显示几个不同的服务器来获取它们的 cpu/ram 使用情况。

这是我正在使用的当前代码。但问题是我只获得了当前服务器的 CPU/Ram 使用率,其中存储了 .php 文件。

function get_server_cpu_usage(){

    $load = sys_getloadavg();
    return $load[0];

}


function get_server_memory_usage(){

    $free = shell_exec('free');
    $free = (string)trim($free);
    $free_arr = explode("\n", $free);
    $mem = explode(" ", $free_arr[1]);
    $mem = array_filter($mem);
    $mem = array_merge($mem);
    $memory_usage = $mem[2]/$mem[1]*100;

    return $memory_usage;
}


echo '<h4>Server Memory usage: ' . number_format(get_server_memory_usage(), 2) . '%</h4><div class="meter"><span style="width:' . get_server_memory_usage() . '%"></span></div><br>
<h4>Server CPU usage: '     . get_server_cpu_usage() . '% </h4><div class="meter"><span style="width:' . get_server_cpu_usage() . '%"></span></div>';

【问题讨论】:

    标签: php server cpu-usage ram


    【解决方案1】:
    1. 创建一个将数据存储到公共数据存储中的 php 脚本 比如mysqlredis等等。
    2. 将 php 脚本添加到 cron 作业中,以便在每个服务器上运行 crontab -e,它会为您带来一个编辑器 窗口在哪里;把脚本间隔逻辑。
    3. 修改monitor.php文件,从通用数据库中获取内容。

    示例:

    cron 脚本

      // do.php it runs in every server you have  
      $cpu_usage = get_server_cpu_usage();  
      $memory_usage = get_server_memory_usage();  
      // you can use hostname, ip name logic  
      $server_id = get_server_uniqid();   
      //logic to insert data  
      insert_monitor_data($server_id, $cpu_usage, $server_id);  
    

    crontab 文件

    */10 * * * * /path/to/do.php
    

    cron 将在各个服务器中每 10 分钟运行一次,并将数据存储到公共数据存储中。

    【讨论】:

      【解决方案2】:

      如果您不想使用您的脚本将访问的任何 3rd 方工具,我会看到这个简单的选项

      在每台服务器上运行您的脚本,并将每台服务器的信息存储在共享的 MYSQL 或 Memcache 实例中。

      或者你在每台服务器上创建一个类似 showstatus.php 的脚本,它以 JSON 格式返回所有必需的信息。然后您的实际监控服务器可以从每个服务器收集 JSON 并对其进行处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-09
        • 1970-01-01
        • 2013-04-19
        相关资源
        最近更新 更多