使用 Web 页面快速查看服务器状态
本文最后更新于:2022年4月29日 下午
每个云服务提供商都有自己的云监控服务,用户可以在控制台中实时查看云服务器状态。但是每次获取服务器信息都需要登录网站或者打开 APP,这样的操作实在是麻烦。所以,我在想有没有一种办法直接打开网页就能显示服务器的状态。通过网上搜索,我找到以下这些工具。
Netdata
Netdata 是一款轻量级的服务器性能监控软件,可以轻松部署在服务器上,通过浏览器访问就可以快速查看服务器状态,而且监控数据非常详细,包括 CPU、内存、硬盘、系统文件、网络等信息。
图1 Netdata监控服务器性能和状态
Netdata 的分布式实时监控 Agent 从系统、硬件、容器和应用程序中收集数千个指标,无需用户配置。它可以在您的所有物理/虚拟服务器、容器、云部署和边缘/物联网设备上永久运行。你几乎可以在任何的 Linux 发行版(包括 Ubuntu、Debian、CentOS)中安装它,也可以让其运行在 Docker 容器中[1]。
使用 Netdata,您无需自行配置任何内容即可启动和运行。通过自动安装、收集器和后端的集成以及指标可视化,你可以在几分钟内(而不是几小时或几天)获得基础架构的可见性。甚至警报也会预先配置[2]。
安装和使用 Netdata 非常方便,Ubuntu 的软件包管理器中就包含 Netdata。通过在终端中输入以下指令便可以安装:
1 |
|
通过 Ubuntu 默认源的软件包管理器下载的 Netdata 的版本很低,如果你想使用最新版本的 Netdata,推荐使用 Netdata 提供的一键安装脚本:
1 |
|
安装完毕后只需通过 nginx 反向代理 http://localhost:19999
就可以查看 Netdata 仪表盘。你可以通过 演示页面 查看 Netdata 强大的监控功能。
虽然 Netdata 非常强大,但是它也存在很多缺点,首先就是没有中文界面,对中文用户不太友好,其次由于监控的指标太多,界面显得非常杂乱,最后就是 Netdata 的仪表盘不能完美适配手机浏览器,所以我没有选择使用 Netdata 这款性能监控软件。
phpSysInfo
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. 下载 phpSysInfo
安装 PHP 环境后,从 Github Release 下载最新版本的 phpSysInfo。
以 phpSysInfo 3.4.1 为例,复制 Source code (tar.gz)
的下载链接,输入以下指令下载该文件并解压到 /var/www/html 目录:
1 |
|
3. 配置 phpSysInfo
初次安装 phpSysInfo 需要通过编辑 phpsysinfo.ini
文件来配置 phpSysInfo。首先,我们需要将 /var/www/html/phpsysinfo 目录中的 phpsysinfo.ini.new
重命名为 phpsysinfo.ini
,然后,使用文本编辑器打开 phpsysinfo.ini
。
默认配置已经可以满足我们的需求,我们只需要更改显示模式和显示语言:
1 |
|
4. 配置 nginx.conf
如果要通过浏览器访问 phpSysInfo,我们需要配置 nginx.conf
来让 nginx 传递 php 请求给 php-fpm 处理。
用文本编辑器打开 /etc/nginx/nginx.conf
,添加 server 块:
1 |
|
重启 nginx 服务,通过访问 https://phpsysinfo.example.com 便可以查看到服务器系统的实时信息。演示页面
相较于 Netdata,phpSysInfo 更加轻量,它可以运行在多个平台上,非常容易部署,而且页面内容简洁明了,即使监控指标不多,也能满足大部分人的需求。
Linfo
Linfo 是一款轻量级、可自定义主题、具有 Web UI 的系统监控 PHP 脚本,需要至少 5.4 以上版本的 PHP 运行环境,且要求包含有 pcre 扩展(PCRE 库已经默认编译到 PHP)。对于低于 7.1.9 版本的 PHP,还必须禁用 opcache 扩展[4]。
图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. 配置 Linfo
打开 linfo 目录(例如 /var/www/html/linfo),将 sample.config.inc.php
重命名为 config.inc.php
,用文本编辑器打开就可以修改配置。默认配置可以满足基本需求,我们只需将显示语言修改为“中文”。
1 |
|
3. 配置 nginx.conf
参考上文 配置 nginx.conf,只需要把 server_name
修改为你想访问的主机名,如 linfo.example.com,root
修改为 Linfo 目录的位置,如 /var/www/html/linfo。重新启动 nginx 服务,通过对应的主机名(网址)就可以访问到 Linfo 监控信息显示页面。演示页面
X-Prober
这是一款 PHP 环境探针程序,它不仅可以十分直观地为您显示服务器的信息,而且最重要的是:它跟 📱 iPhone X/XS/XS Max/XR 一样有丑陋的刘海![5]
图3 X-Prober(真的有刘海)
X-Prober 只有一个文件 x.php
,只需将该文件放置在 /var/www/html 目录下,通过浏览器访问就能查看服务器的详细信息,监控服务器性能。
与 phpSysInfo 和 Linfo 一样,X-Prober 是一款运行在 PHP 环境下的脚本,支持 5.3 以上版本的 PHP 运行环境,同样参考上文 安装 PHP 环境。
通过点击 INN STUDIO mirror 或 GitHub mirror 就可以下载 x.php
文件,也可以在 Github Release 下载 prober.php
,或者使用下面的指令:
1 |
|
相较于 phpSysInfo 和 Linfo,X-Prober 只有一个文件,所以无需任何配置,你只需要在 nginx.conf 中配置好访问路径即可,请参考上文 配置 nginx.conf。
通过 Chrome、Firefox、Edge、Safari 等现代浏览器访问对应网址,就可以看到 X-Prober 性能监控页面。演示页面
X-Prober 是一款非常不错的服务器性能监控工具,轻松部署,界面简洁,自适应移动设备,自动匹配中文语言。虽然优点很多,但也存在缺点。最明显的缺点就是监控的部分信息过于敏感,不适合公开显示,例如网页服务器和 PHP 的版本及软件相关信息。
参考资料
- Github - netdata/netdata:Real-time performance monitoring, done right!. https://github.com/netdata/netdata ↩
- Overview | Netdata - Netdata. https://www.netdata.cloud/overview ↩
- phpsysinfo/README.md at master phpsysinfo/phpsysinfo - Github. https://github.com/phpsysinfo/phpsysinfo/blob/main/README.md ↩
- linfo/README.md at master jrgp/linfo - Github. https://github.com/jrgp/linfo/blob/master/README.md ↩
- x-prober/README-zh_CN.md at master kmvan/x-prober - Github. https://github.com/kmvan/x-prober/blob/master/README-zh_CN.md ↩