使用 Web 页面快速查看服务器状态

本文最后更新于:2022年4月29日 下午

每个云服务提供商都有自己的云监控服务,用户可以在控制台中实时查看云服务器状态。但是每次获取服务器信息都需要登录网站或者打开 APP,这样的操作实在是麻烦。所以,我在想有没有一种办法直接打开网页就能显示服务器的状态。通过网上搜索,我找到以下这些工具。

Netdata

Github stars Netdata Release Netdata License

Netdata 是一款轻量级的服务器性能监控软件,可以轻松部署在服务器上,通过浏览器访问就可以快速查看服务器状态,而且监控数据非常详细,包括 CPU、内存、硬盘、系统文件、网络等信息。

Netdata监控服务器性能和状态
图1 Netdata监控服务器性能和状态

Netdata 的分布式实时监控 Agent 从系统、硬件、容器和应用程序中收集数千个指标,无需用户配置。它可以在您的所有物理/虚拟服务器、容器、云部署和边缘/物联网设备上永久运行。你几乎可以在任何的 Linux 发行版(包括 Ubuntu、Debian、CentOS)中安装它,也可以让其运行在 Docker 容器中[1]

使用 Netdata,您无需自行配置任何内容即可启动和运行。通过自动安装、收集器和后端的集成以及指标可视化,你可以在几分钟内(而不是几小时或几天)获得基础架构的可见性。甚至警报也会预先配置[2]

安装和使用 Netdata 非常方便,Ubuntu 的软件包管理器中就包含 Netdata。通过在终端中输入以下指令便可以安装:

1
2
sudo apt update
sudo apt install netdata

通过 Ubuntu 默认源的软件包管理器下载的 Netdata 的版本很低,如果你想使用最新版本的 Netdata,推荐使用 Netdata 提供的一键安装脚本:

1
wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh

安装完毕后只需通过 nginx 反向代理 http://localhost:19999 就可以查看 Netdata 仪表盘。你可以通过 演示页面 查看 Netdata 强大的监控功能。

虽然 Netdata 非常强大,但是它也存在很多缺点,首先就是没有中文界面,对中文用户不太友好,其次由于监控的指标太多,界面显得非常杂乱,最后就是 Netdata 的仪表盘不能完美适配手机浏览器,所以我没有选择使用 Netdata 这款性能监控软件。

phpSysInfo

Github Stars phpSysInfo Release phpSysInfo License

phpSysInfo 是一款可以自定义的 PHP 脚本,可以使用 5.1.3 以上版本的 PHP 来监控和显示服务器系统的相关信息。由于 phpSysInfo 是基于 PHP 运行的脚本,所以理论上可以运行在任何系统中,目前测试能使用的系统有 Linux、Mac OS、Windows 还有安卓。

1. 安装 PHP 环境

如果要完美体验 phpSysInfo,开发者推荐用户安装以下扩展[3]

  • mbstring: 非 UTF-8 编码的 *nix 系统需要安装这个扩展
  • com_dotnet: Windows 系统下需要安装这个扩展
  • xsl: 使用“静态模式”需要安装这个扩展
  • json: 使用“bootstrap 模式”需要安装这个扩展(自 PHP 5.2.0 起,JSON 扩展默认内置)

输入以下指令安装 PHP 环境:

1
2
sudo apt update
sudo apt install php-fpm php-mbstring

2. 下载 phpSysInfo

安装 PHP 环境后,从 Github Release 下载最新版本的 phpSysInfo。
以 phpSysInfo 3.4.1 为例,复制 Source code (tar.gz) 的下载链接,输入以下指令下载该文件并解压到 /var/www/html 目录:

1
2
3
wget -O /tmp/phpsysinfo.tar.gz https://github.com/phpsysinfo/phpsysinfo/archive/refs/tags/v3.4.1.tar.gz
tar -zxf /tmp/phpsysinfo.tar.gz -C /var/www/html
mv /var/www/html/phpsysinfo-3.4.1 /var/www/html/phpsysinfo

3. 配置 phpSysInfo

初次安装 phpSysInfo 需要通过编辑 phpsysinfo.ini 文件来配置 phpSysInfo。首先,我们需要将 /var/www/html/phpsysinfo 目录中的 phpsysinfo.ini.new 重命名为 phpsysinfo.ini,然后,使用文本编辑器打开 phpsysinfo.ini

默认配置已经可以满足我们的需求,我们只需要更改显示模式和显示语言:

1
2
3
4
5
6
7
8
9
10
11
12
; Define the default display mode
; auto: let user browser choose the mode
; dynamic: use javascript to refresh data
; static: static page (use metatag to reload page)
; bootstrap: use twitter bootstrap template
;
DEFAULT_DISPLAY_MODE="bootstrap"


; Define the default language
;
DEFAULT_LANG="zh"

4. 配置 nginx.conf

如果要通过浏览器访问 phpSysInfo,我们需要配置 nginx.conf 来让 nginx 传递 php 请求给 php-fpm 处理。

用文本编辑器打开 /etc/nginx/nginx.conf,添加 server 块:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# HTTPS server
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;

server_name phpsysinfo.example.com;

ssl_certificate phpsysinfo.example.com.crt;
ssl_certificate_key phpsysinfo.example.com.key;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;

root /var/www/html/phpsysinfo/;

location / {
index index.html index.php;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
# Remain this for compatibility of PHP sub pages
location ~ [^/]\.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

重启 nginx 服务,通过访问 https://phpsysinfo.example.com 便可以查看到服务器系统的实时信息。演示页面

相较于 Netdata,phpSysInfo 更加轻量,它可以运行在多个平台上,非常容易部署,而且页面内容简洁明了,即使监控指标不多,也能满足大部分人的需求。

Linfo

Github Stars Linfo Release Linfo License

Linfo 是一款轻量级、可自定义主题、具有 Web UI 的系统监控 PHP 脚本,需要至少 5.4 以上版本的 PHP 运行环境,且要求包含有 pcre 扩展(PCRE 库已经默认编译到 PHP)。对于低于 7.1.9 版本的 PHP,还必须禁用 opcache 扩展[4]

Linfo
图2 Linfo Web UI

和 phpSysInfo 一样,由于运行在 PHP 环境,所以支持很多系统平台,包括 Linux、Windows、MacOS等。它可以监控并显示 CPU 架构、CPU 频率、挂载的文件系统、硬件设备、启动时间和运行时间、主机名、内存占用、温度等信息。

1. 下载 Linfo

首先,可以参考上文 安装 PHP 环境。然后,在 Github Release 页面下载 Linfo 压缩包 Source code (tar.gz),最后,将压缩包解压到 /var/www/html 目录。方法与下载 phpSysInfo 相似(以 Linfo 4.0.6 为例):

1
2
3
wget -O /tmp/linfo.tar.gz https://github.com/jrgp/linfo/archive/refs/tags/v4.0.6.tar.gz
tar -zxf /tmp/linfo.tar.gz -C /var/www/html
mv /var/www/html/linfo-4.0.6 /var/www/html/linfo

2. 配置 Linfo

打开 linfo 目录(例如 /var/www/html/linfo),将 sample.config.inc.php 重命名为 config.inc.php,用文本编辑器打开就可以修改配置。默认配置可以满足基本需求,我们只需将显示语言修改为“中文”。

1
$settings['language'] = 'zh'; // Refer to the lang/ folder for supported languages

3. 配置 nginx.conf

参考上文 配置 nginx.conf,只需要把 server_name 修改为你想访问的主机名,如 linfo.example.com,root 修改为 Linfo 目录的位置,如 /var/www/html/linfo。重新启动 nginx 服务,通过对应的主机名(网址)就可以访问到 Linfo 监控信息显示页面。演示页面

X-Prober

Github Stars X-Prober Release X-Prober License

这是一款 PHP 环境探针程序,它不仅可以十分直观地为您显示服务器的信息,而且最重要的是:它跟 📱 iPhone X/XS/XS Max/XR 一样有丑陋的刘海![5]

X-Prober
图3 X-Prober(真的有刘海)

X-Prober 只有一个文件 x.php,只需将该文件放置在 /var/www/html 目录下,通过浏览器访问就能查看服务器的详细信息,监控服务器性能。

与 phpSysInfo 和 Linfo 一样,X-Prober 是一款运行在 PHP 环境下的脚本,支持 5.3 以上版本的 PHP 运行环境,同样参考上文 安装 PHP 环境

通过点击 INN STUDIO mirrorGitHub mirror 就可以下载 x.php 文件,也可以在 Github Release 下载 prober.php,或者使用下面的指令:

1
2
mkdir /var/www/html/xprobe
wget -O /var/www/html/xprobe/index.php https://github.com/kmvan/x-prober/raw/master/dist/prober.php

相较于 phpSysInfo 和 Linfo,X-Prober 只有一个文件,所以无需任何配置,你只需要在 nginx.conf 中配置好访问路径即可,请参考上文 配置 nginx.conf

通过 Chrome、Firefox、Edge、Safari 等现代浏览器访问对应网址,就可以看到 X-Prober 性能监控页面。演示页面

X-Prober 是一款非常不错的服务器性能监控工具,轻松部署,界面简洁,自适应移动设备,自动匹配中文语言。虽然优点很多,但也存在缺点。最明显的缺点就是监控的部分信息过于敏感,不适合公开显示,例如网页服务器和 PHP 的版本及软件相关信息。

参考资料

  1. Github - netdata/netdata:Real-time performance monitoring, done right!. https://github.com/netdata/netdata
  2. Overview | Netdata - Netdata. https://www.netdata.cloud/overview
  3. phpsysinfo/README.md at master phpsysinfo/phpsysinfo - Github. https://github.com/phpsysinfo/phpsysinfo/blob/main/README.md
  4. linfo/README.md at master jrgp/linfo - Github. https://github.com/jrgp/linfo/blob/master/README.md
  5. x-prober/README-zh_CN.md at master kmvan/x-prober - Github. https://github.com/kmvan/x-prober/blob/master/README-zh_CN.md

使用 Web 页面快速查看服务器状态
https://vickey.fun/2022/04/29/web-based-monitoring-system/
作者
饶玮琪
发布于
2022年4月29日
许可协议