网站搜索

Web VMStat:Linux 的实时系统统计(内存、CPU、进程等)监控工具


Web-Vmstat 这是一个用 Java 和 HTML 编写的小应用程序,它显示实时 Linux 系统统计信息,例如 内存CPUI /OProcesses等在一个漂亮的网页中接管了vmstat监控命令行,其中包含图表(SmoothieCharts)以及使用websocketd程序通过WebSocket流的图表。

我录制了一个快速视频回顾该应用程序在 Gentoo 系统上的功能。

要求

在 Linux 系统上,必须安装以下实用程序。

  1. 用于使用 HTTP、HTTPS 和 FTP 协议检索文件的 wget。
  2. Nano 或 VI CLI 文本编辑器。
  3. 解压存档提取器。

本教程将指导您在 CentOS 6.5 上安装 Web-Vmstat 应用程序,但该过程对所有 Linux 发行版都有效,唯一不同的是 init 脚本(可选),它可以帮助您更轻松地管理整个过程。

另请阅读:使用 Vmstat 命令监控 Linux 性能

第1步:安装Web-Vmstat

1. 在继续安装 Web-Vmstat 之前,请确保您的系统上安装了所有上述必需的命令。您可以使用包管理器,例如yumapt-get等命令来安装它。例如,在CentOS系统下,我们使用yum命令来安装。

yum install wget nano unzip

2. 现在转到 Veb-Vmstat 官方网页并使用“下载 ZIP”按钮下载最新版本或使用 wget 从命令行下载。

wget https://github.com/joewalnes/web-vmstats/archive/master.zip

3.使用unzip实用程序解压下载的master.zip存档并进入解压文件夹。

unzip master.zip
cd web-vmstats-master

4. Web 目录包含应用程序在 Web 环境中运行所需的 HTMLJava 文件。在您的系统下创建一个用于托管 Web 文件的目录,并将所有 Web 内容移至该目录。

本教程使用 /opt/web_vmstats/ 托管所有应用程序 Web 文件,但您可以在系统上创建您喜欢的任意路径,只需确保保留绝对 Web 路径即可。

mkdir /opt/web_vmstats
cp -r web/* /opt/web_vmstats/

5.下一步是下载并安装websocketd流媒体程序。转到官方 WebSocket 页面并下载与您的系统架构(Linux 64 位、32 位或 ARM)相匹配的软件包。

在 32 位系统上
wget https://github.com/joewalnes/websocketd/releases/download/v0.2.9/websocketd-0.2.9-linux_386.zip
在 64 位系统上
wget https://github.com/joewalnes/websocketd/releases/download/v0.2.9/websocketd-0.2.9-linux_amd64.zip

6. 使用 unzip 命令提取 WebSocket 存档,并将 websocketd 二进制文件复制到系统可执行路径以使其可用全系统范围内。

unzip websocketd-0.2.9-linux_amd64.zip
cp websocketd /usr/local/bin/

7. 现在您可以使用以下命令语法运行 websocketd 命令来测试它。

websocketd --port=8080 --staticdir=/opt/web_vmstats/ /usr/bin/vmstat -n 1

下面解释每个参数的说明。

  1. –port=8080:用于连接 HTTP 协议的端口 - 您可以使用任何您想要的端口号。
  2. –staticdir=/opt/web_vmstats/:托管所有 Web-Vmstat Web 文件的路径。
  3. /usr/bin/vmstat -n 1:Linux Vmstat 命令,每秒更新其状态。

第2步:创建初始化文件

8. 此步骤是可选的,仅适用于 init 脚本支持的系统。要将 WebSocket 进程作为系统守护进程进行管理,请在 /etc/init.d/ 路径上创建一个 init 服务文件,其中包含以下内容。

nano /etc/init.d/web-vmstats

添加以下内容。

#!/bin/sh
source function library
. /etc/rc.d/init.d/functions
start() {
                echo "Starting webvmstats process..."

/usr/local/bin/websocketd --port=8080 --staticdir=/opt/web_vmstats/ /usr/bin/vmstat -n 1 &
}

stop() {
                echo "Stopping webvmstats process..."
                killall websocketd
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
    *)
        echo "Usage: stop start"
        ;;
esac

9. 创建文件后,附加执行权限并使用开始停止开关管理进程。

chmod +x /etc/init.d/web-vmstats
/etc/init.d/web-vmstats start

10. 如果您的防火墙处于活动状态,请编辑 /etc/sysconfig/iptables 防火墙文件并打开 websocketd 进程使用的端口,以使其可用于外部连接。

nano /etc/sysconfig/iptables

如果您像本教程一样使用端口 8080,请将以下行添加到 iptables 文件中打开端口 22 的规则之后。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

11.要完成整个过程,请重新启动 iptables 服务以应用新规则。

service iptables restart
service web-vmstats start

打开浏览器并使用以下 URL 显示 Vmstats 系统统计信息。

http://system_IP:8080

12. 显示有关当前计算机及其上运行的操作系统的名称、版本和其他详细信息。转到 Web-Vmstat 文件路径并运行以下命令。

cd /opt/web_vmstats
cat /etc/issue.net | head -1 > version.txt
cat /proc/version >> version.txt

13. 然后打开 index.html 文件并在

行之前添加以下 JavaScript 代码。

nano index.html

使用以下 JavaScript 代码。

<div align='center'><h3><pre id="contents"></pre></h3></div>
<script>
function populatePre(url) {
    var xhr = new XMLHttpRequest();
    xhr.onload = function () {
        document.getElementById('contents').textContent = this.responseText;
    };
    xhr.open('GET', url);
    xhr.send();
}
populatePre('version.txt');
                </script>

14. 要查看最终结果,请刷新 http://system_IP:8080 网页,您应该会看到有关当前计算机的信息和实时统计信息,如下面的屏幕截图所示。