1. Ward 监控面板简介
Ward 是一个使用 Java 开发的简单而简约的服务器监控工具。Ward 支持自适应设计系统,它还支持深色主题,它只显示服务器的主要信息。Ward 在所有流行的操作系统上运行良好,因为它使用 OSHI。
项目地址:https://github.com/B-Software/Ward
效果演示:本站的监控即为 Ward 项目搭建的,见 https://ward.eula.club
2. 搭建前的环境准备
以下我将采用宝塔面板与Docker混合部署的方式(宝塔面板安装PHP和Nginx环境并开启HTTPS,Docker安装Ward),VPS系统用的是Debian 10 x86_64。
VPS的购买及配置、域名解析、宝塔面板的搭建及使用、Docker的概念及使用…这些基本的就不再赘述了,如果不会的话见我的另一篇博客:VPS基本部署环境的搭建与配置。
2.1 Docker环境搭建
1 | $ apt-get update -y && apt-get install curl -y # 安装curl |
2.2 申请泛域名SSL证书
SSL证书是一种数字证书,用于加密从用户的浏览器发送到Web服务器的数据。 通过这种方式,发送的数据对于使用Wireshark等数据包嗅探器来拦截和窃听您的通信的黑客来说是安全的。
Chrome一直在推动https,所有的http协议网站被标记为不安全,如果再不对网站进行https改造的话,那么可能会对信任度造成一定的影响,所以说对一个面向用户的网站来说,开启https是非常有必要的。
下面将使用acme.sh开源项目申请免费的 Let’s Encrypt 泛域名SSL证书。
注:如果懒得折腾泛域名证书,后面也可在宝塔面板直接傻瓜式申请Let’s Encrypt的单域名SSL证书(宝塔面板——网站——设置——SSL——Let’s Encrypt——勾选域名,点文件验证——申请出来后设置强制HTTPS)。
2.2.1 安装 acme.sh
1 | $ curl https://get.acme.sh | sh |
普通用户和 root 用户都可以安装使用,安装过程进行了以下几步:
[1] 把 acme.sh 安装到你的 root 目录下,并创建 一个 bash 的 alias, 方便你的使用。
[2] 自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书。
注:安装过程不会污染已有的系统任何功能和文件,所有的修改都限制在安装目录中。那个socat未安装的问题不用管,那是http验证无Web Server时才需要的。
2.2.2 生成SSL泛域名证书
acme.sh 实现了 acme 协议支持的所有验证协议,一般有两种方式验证:http 和 dns 验证。
- http 验证:http 方式需要在你的网站根目录下放置一个文件,来验证你的域名所有权。
- dns 验证:dns 方式,在域名上添加一条 txt 解析记录,验证域名所有权。
dns 方式的可以使用域名解析商提供的 API 自动添加 txt 记录完成验证,下面我们将采用这种方法申请Namesilo的泛域名证书。
Step1:打开 https://www.namesilo.com/account/api-manager 去申请 NameSilo API,勾选第2个复选框,点击Generate,即可生成。
注:务必不要勾选上Generate key for read-only access的哪个复选框,否则会导致Unable to add the DNS record. Error add txt for domain
的问题。另外,生成的API只出现一次,如果没记下来只能重置。
Step2:在服务器输入以下命令,实现自动dns验证生成泛域名证书。
1 | $ cd /root/.acme.sh |
等待1800s即可看到申请下来的SSL证书(NameSilo的验证比较慢,官方文档上写的900s有时不足以验证完)
生成文件都放在/root/.acme.sh/example.com/
目录下,其中:example.com.key
是密钥文件,fullchain.cer
是证书文件。
注:如果你的域名不是NameSilo的,上述操作有所不同,具体请参考: https://github.com/acmesh-official/acme.sh/wiki/dnsapi
3. 搭建 Ward 监控面板
官方提供了两种方式部署Ward监控面板,一种是打包成jar运行,另一种是构建Docker运行,我选择了后者。
3.1 使用 Docker 部署 Ward 监控面板
3.1.1 克隆项目并构建镜像
官方提供了构建Docker镜像的Dockerfile文件,我们直接用它来构建即可。
1 | $ git clone https://github.com/B-Software/Ward.git |
3.1.2 创建容器并完成基本设置。
构建完镜像之后,我们便可以创建容器了,注意第二个-p 自定义端口号:自定义端口号
处一定要填,下面会用到。
1 | docker run -d --name ward -p 4000:4000 \ |
然后我们用Chrome打开http://IP:4000/
地址,我们会看到如下图的界面,在此完成基本设置。
Server Name随便填,这个就是搭建完后的浏览器地址栏信息;然后可以选择命令主题或者黑暗主题;Application Port要填写成刚刚创建Docker容器时的自定义端口号。然后点击LAUNCH按钮即可完成基本设置。
注:如果这里填错了的话,可以进入容器内部,修改setup.ini
文件即可。
1 | $ docker exec -it ward /bin/sh |
这时候我们用Chrome打开http://IP:自定义端口号/
即可访问我们的监控面板了。
3.2 添加反向代理并开启 HTTPS
3.2.1 新建网站
宝塔面板——网站——添加站点——填写域名即可(其他的都不需要,我们只是用它来做反向代理和配置HTTPS)
3.2.2 给网站开启HTTPS
宝塔面板——网站——设置——SSL——其他证书,把example.com.key
密钥文件、fullchain.cer
证书文件复制上去,强制https。

3.2.3 设置反向代理
宝塔面板——网站——设置——反向代理——添加反向代理——填写代理名称和目标URL(http://127.0.0.1:自定义端口
)
3.3 Ward 监控面板说明
3.3.1 处理器监控
处理器名称 |
![]() |
处理器利用率百分比 | |
处理器内核数 (逻辑和物理内核) | |
当前处理器频率 | |
处理器是否支持64位指令 |
3.3.2 内存监控
操作系统类型及其版本 |
![]() |
RAM利用率百分比 | |
已安装的 RAM 总量 | |
生成已安装的 RAM(如果您有 dmidecode) | |
当前进程数 |
3.3.3 存储监控
Host0 存储名称 |
![]() |
存储利用率百分比 | |
当前安装的总存储空间(包括外部驱动器) | |
安装的磁盘数 | |
虚拟内存总量(Linux中的交换空间) |
3.3.4 运行情况监控
![]() |
此块包含正常运行时间和图表部分。正常运行时间表示自上次在 Linux 上启动以来的时间,以及在 Windows 上硬重置之间的时间。它还有分页器,可用于获取作者联系人。图表部分显示最近十五秒的服务器利用率。(处理器、内存、存储)您可以通过单击图表部分右上角的矩形来隐藏分离的数据集。 |
4. 参考资料
[1] 一个简单而简约的服务器监控工具 Ward from Github