前言
好久没有更新了,最近开学忙的事情比较多。这几天还新搞了一台机子,专门用于搭建之前的code-server,具体请看:
但是code-server占用的硬盘让我原来那只小鸡吃不消了,于是重新开一个,顺便搭建个简单的实时监控来看看运行情况。这里没有用到很多功能强大探针,是因为我的机子不是很多没必要,而且Ward界面好看。
预览图:
演示地址:https://status.code.hoyue.fun/
话不多说直接开始。
准备工作
我们在部署前需要做一些准备工作,本次记录使用的环境:
VPS:Japan BGP(xtom机房),有条件的建议选择大陆的服务器,速度会更快。
系统:Debian 11(Linux x86_64)
环境:安装好Docker,Docker Compose等。
我们先确认一下docker是否安装成功,在ssh输入docker -v
出现版本号类似页面即可。
最好也更新一下先:
#Ubuntu/Debian
sudo apt-get update
#Centos
yum -y update
部署
因为开发者取消了一键部署,我们使用传统的手动部署。
首先我们先建立镜像文件夹以便等会clone:
mkdir -p ~/data/docker_data/Ward
cd ~/data/docker_data/Ward
git clone https://github.com/AntonyLeons/Ward.git ## 在创建的文件夹下克隆项目并构建镜像
cd Ward
docker build . --tag ward
全部执行完以后我们检查一下,输入下面代码看看是否已经成功拉取。
docker images
接下来就是部署了,直接执行下面代码:
docker run -d --name ward -p 4000:4000 --restart=always --privileged=true
# -d 后台运行
# --restart=always 跟随宿主机启动
# --privileged=true 宿主机设备的完全访问权限
# --name 容器名称
# -p 端口映射
记住你这里的端口,之后要用到。
然后我们就可以打开了,地址:http://ip:4000
(或者是你刚才的端口)
第一次运行需要设置,在这个main setting这里填写标题名称,就是显示在浏览器地址栏的标题名称。在additon setting中可以选择亮色模式或者暗色模式,在底下的框输入刚才部署的端口号,默认4000.
最后我们点击launch就可以了,成功如图:
进阶设置
接下来我们还可以进行一下进阶设置,即修改配置信息,反向代理域名,配置ssl。
修改配置信息
我们刚才第一次进入的那个设置写错了,或者是想换个模式、换个标题什么的,我们需要修改配置信息。我们只需要可以进入容器内部,修改setup.ini文件即可。执行下面代码:
docker exec -it ward /bin/sh #进入容器
nano setup.ini #修改配置
当然如果你觉得麻烦,也可以remake:
docker stop ward
docker rm -f ward
docker run -d --name ward -p 4000:4000 --restart=always --privileged=true
配置反向代理
我们一般也是通过域名访问的比较多,于是设置个反向代理即可用域名访问。这里使用的是nginx的反代,其他程序请询问搜索引擎。我们先安装nginx,这里没有安装在docker里了。
sudo apt update
sudo apt install nginx
#Centos
yum -y install nginx
于是我们先修改一下默认配置,在/etc/nginx/nginx.conf
里,为了防止太多太乱,我们自己建立一个新的配置文件,于是在http{}里加上include /etc/nginx/conf.d/*.conf;
,之后就可以在conf.d文件夹里自己建立新的配置文件了。
我们来到conf.d文件夹,建立一个配置文件,例如status.conf
内容填上:
server {
listen 80;
server_name yourdomain; #填写你的域名
location / {
proxy_pass http://localhost:4000/; #修改你的端口
}
}
保存即可,然后重启nginx。
systemctl restart nginx
然后我们就可以通过http://域名
来访问了。
配置ssl
使用http://来访问总会显示不安全,我们继续给它配置上ssl。证书还是通过acme.sh来申请。
首先是安装acme.sh。
#curl安装
curl https://get.acme.sh | sh -s [email protected]
#wget安装
wget -O - https://get.acme.sh | sh -s [email protected]
可以把email改成自己的。安装好以后就是开始申请证书:
acme.sh --issue --nginx -d example.com
这里记得把example.com改为你的域名。注意这里的域名要和上面配置nginx的域名一直,并且域名已解析到服务器上。
接着等待证书申请完毕。成功大致这样(网络上的图):
记录下cert和key的地址,等会需要填写。
接着我们重新来到之前nginx配置status.conf
文件里,改为:
server {
listen 443 ssl;
server_name yourdomain; #你的域名
ssl_certificate /root/.acme.sh/yourdomain/yourdomain.cer; #你的证书地址
ssl_certificate_key /root/.acme.sh/yourdomain/yourdomain.key; #证书私钥
location / {
proxy_pass http://localhost:4000/; #你的端口
}
}
#下面配置http自动跳转https
server {
listen 80;
server_name yourdomain; #你的域名
return 301 https://$host$request_uri;
}
保存即可,然后重启nginx。
systemctl restart nginx
然后我们就可以通过https://域名
来访问了。
后记
这个项目可以监控单台服务器,页面美观,而且占比比较小,非常适合监控小型服务器。下面是参考资料:
Comments NOTHING