Web VMStat:Linux 的实时系统统计(内存、CPU、进程等)监控工具
Web-Vmstat 这是一个用 Java 和 HTML 编写的小应用程序,它显示实时 Linux 系统统计信息,例如 内存、CPU、I /O、Processes等在一个漂亮的网页中接管了vmstat监控命令行,其中包含图表(SmoothieCharts)以及使用websocketd程序通过WebSocket流的图表。
我录制了一个快速视频回顾该应用程序在 Gentoo 系统上的功能。
要求
在 Linux 系统上,必须安装以下实用程序。
- 用于使用 HTTP、HTTPS 和 FTP 协议检索文件的 wget。
- Nano 或 VI CLI 文本编辑器。
- 解压存档提取器。
本教程将指导您在 CentOS 6.5 上安装 Web-Vmstat 应用程序,但该过程对所有 Linux 发行版都有效,唯一不同的是 init 脚本(可选),它可以帮助您更轻松地管理整个过程。
另请阅读:使用 Vmstat 命令监控 Linux 性能
第1步:安装Web-Vmstat
1. 在继续安装 Web-Vmstat 之前,请确保您的系统上安装了所有上述必需的命令。您可以使用包管理器,例如yum、apt-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 环境中运行所需的 HTML 和 Java 文件。在您的系统下创建一个用于托管 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
下面解释每个参数的说明。
- –port=8080:用于连接 HTTP 协议的端口 - 您可以使用任何您想要的端口号。
- –staticdir=/opt/web_vmstats/:托管所有 Web-Vmstat Web 文件的路径。
- /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 网页,您应该会看到有关当前计算机的信息和实时统计信息,如下面的屏幕截图所示。