介绍
serverstatus 是非常优秀的服务器监控开源系统。非常直观。具体 demo 可以看: https://tz.cloudcpp.com/
如果你有多台服务器,特别是想监控带宽之类的常用指标,这个云监控非常好用。
中文版开源代码: https://github.com/tenyue/ServerStatus
我自用的代码: https://github.com/91yun/ServerStatus-1
我自用的代码修改了流量方面的统计,使用 vnstat 来统计月流量。有兴趣的朋友也可以自行看看。以下的教程是以 tenyue 的代码为准的,
安装服务器端
第一步:从 git 复制代码
git clone https://github.com/tenyue/ServerStatus.git
第二步:编译服务器端
cd ServerStatus/server
make
如果编译出错,请安装编译依赖文件:
centos :
yum -y update gcc
yum -y install gcc+ gcc-c++
ubuntu :
apt-get update gcc
apt-get install g++
第三步:编辑 config 文件
vim config.json
{"servers":
[
{
"username": "s01",
"name": "Mainserver 1",
"type": "Dedicated Server",
"host": "GenericServerHost123",
"location": "Austria",
"password": "some-hard-to-guess-copy-paste-password"
},
{
"username": "s02",
"name": "Mainserver 2",
"type": "Dedicated Server",
"host": "GenericServerHost123",
"location": "USA",
"password": "some-hard-to-guess-copy-paste-password"
},
]
}
请注意确保每个子服务器的 username
是唯一
username :子服务器, serverstatus 通过这来辨识子服务器的身份
name :随意取个名字
type :文本,随意,一般是指“ VPS ”“独服”这种
host :文本,随意
location :文本,随意,一般填服务器所在区域
password :请确保 password 和 username 是对应的,为了方便起见,可以所有子服务器的 password 是一样的,但是 username 必须唯一。
对应关系如下图:
第四步:把 web 文件拷到你自己的 web 访问的目录
cp -r ServerStatus/web/* /home/wwwroot/default
第五步:启动服务器端
./sergate --config=config.json --web-dir=/home/wwwroot/default --port=91
–config :配置文件地址
–web-dir:web 地址, serverstatus 会在这里生成 json 文件供网页调用
–port :监听的端口,默认是 35601 (注意服务器和被监控的客户端防火墙都要开相应的端口)
如果启动服务器端没问题,可以使用 nohup 后台启动
nohup ./sergate --config=config.json --web-dir=/home/wwwroot/default --port=91 &> /dev/null &
客户端的安装
安装依赖包
for Centos :
sudo yum -y install epel-release
sudo yum -y install python-pip
sudo yum clean all
sudo yum -y install gcc
sudo yum -y install python-devel
sudo pip install psutil
for Ubuntu/Debian:
sudo root
apt-get -y install python-setuptools python-dev build-essential
apt-get -y install python-pip
pip install psutil
for Windows:
打开网址: https://pypi.python.org/pypi?:action=display&name=psutil#downloads
下载 psutil for windows 程序包
安装即可
下载客户端代码并修改配置
github 提供了 2 种客户端的 python 文件,建议使用 client-psutil :
wget https://raw.githubusercontent.com/tenyue/ServerStatus/master/clients/client-psutil.py
vim client-psutil.py
修改 SERVER 地址, username 帐号, password 密码
SERVER = " 服务器端地址 "
PORT = 服务器端端口
USER = " 这台服务器的 username ,对应服务器 config.conf 文件的 username"
PASSWORD = " 密码,也是对应服务器 config.conf 文件的 password"
INTERVAL = 1
后台运行客户端代码
python client-psutil.py
如果客户端没有出错的话,那么可以使用 nohup 后台运行的方式启动
nohup python client-psutil.py &> /dev/null &
ServerStatus Server 启动失败 ! 安装多次都是这个问题,大牛,这是咋回事呢?
要么参数没对,要么实际没安装成功
博主,怎么开机自启。。。
博主你好,请问可以转载这篇文章吗?会注明出处的。
可以
好的谢谢。
没问题。
停止后台的Python:
killall -HUP python
HUP 大写
请问使用nohup python client-psutil.py &> /dev/null &后台运行后怎么重启或者停止呢?
kill $(ps aux|grep psutil) 杀进程,然后重新运行
不同IP的VPS怎么监控?
username设置不一样,请认真看教程
请问和宝塔面板,代码有冲突么??
没用过宝塔不清楚
自带发邮件提醒
推荐个 监视,可以选ss端口存活,也就是ss进程。https://stats.uptimerobot.com/r2YX9f4JY
其实用status的大多主要看带宽。
客户端自启动怎么搞?
把启动代码写到/etc/rc.local
这个不错!谢谢站长分享~
终于可以同时看多台服务器的状态了= =
这个确定是不错的 不过服务器挂了不会电邮通知 所以这个监控看看就好
可以再挂一个网页监控····如果出错误,就自动发邮件了!~~~