近期在hostloc看到有大佬分享他的探针,界面我比较喜欢,加上自己的小鸡也很多,就试着搭建一下。
(发现该探针有个BUG,就是查看探针页面的时候会导致浏览器狂吃CPU,跟作者反映也没有结果)
目前已搭建好的探针:
添加服务器需要手动编辑配置文件,比较麻烦,就不全部添加了。
解读:MH361为正常,MH370为失联。
具体功能,请看下面的演示。
项目地址:https://github.com/cppla/serverstatus
项目地址有自动安装的命令,可以说很傻瓜化了。
我选择的是手动搭建,分享下过程与经验。
服务端要求:
Linux, OSX, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures
Python 2.7及更高版本
Nginx or Apache等等web服务器
客户端仅需要安装Python 2.7以上即可(支持Windows)。
安装过程(ubuntu16.04)
服务端:
默认需要开启35601端口。注意Linux自身的防火墙及控制台的防火墙都要打开。
安装git
apt install git -y
下载ServerStatus到指定目录
cd /home/ git clone https://github.com/cppla/ServerStatus.git
安装nginx,指定ServerStatus目录
apt install nginx -y nano /etc/nginx/sites-enabled/default
nginx修改网站目录(ServerStatus下的web文件夹):
root /home/ServerStatus/web;
启动nginx使配置生效
service nginx start service nginx restart
生成服务端程序
cd /home/ServerStatus/server/ make ./sergate
没有错误提示就用ctrl+c关闭;如果报错就是35601端口没开。
编辑配置文件,添加你要监控的服务器
nano /home/ServerStatus/server/config.json
配置文件内容:
{"servers": [ { "username": "s01", "name": "Mainserver 1", "type": "Dedicated Server", "host": "GenericServerHost123", "location": "Austria", "password": "some-hard-to-guess-copy-paste-password" } ] }
配置内容没有特别多的要求,就是各项参数的内容需要跟客户端的一样的就行。”host”似乎是用来排序的。
启动ServerStatus
需要在server文件夹中运行
./sergate --config=config.json --web-dir=/home/ServerStatus/web
放入后台运行:
nohup ./sergate --config=config.json --web-dir=/home/ServerStatus/web > /dev/null 2>&1 &
这样退出ssh后也不会中断
现在,访问你的IP,就能看到监控面板了。只是现在还没有客户端连上来,没有数据。
客户端安装
依旧是先安装git、下载ServerStatus,参考服务端的配置即可。
(客户端有两个版本,client-linux为普通linux,client-psutil为跨平台版,普通版不成功,换成跨平台版即可)
client-linux版:
编辑配置文件(位于ServerStatus下的clients文件夹)
nano /home/ServerStatus/clients/client-linux.py
配置文件需要修改的内容:
SERVER = "127.0.0.1" PORT = 35601 USER = "your user" PASSWORD = "your password"
SERVER就是服务端的IP。其他内容需要同服务端保持一致。
启动客户端:
clients下执行:
python client-linux.py
放入后台运行:
nohup python client-linux.py > /dev/null 2>&1 &
这样退出ssh后也不会中断
客户端这里,如果启动报错,就是Python的版本过低。centos 6.X的版本默认低于2.7,需要升级。
client-psutil版:
需要安装psutil跨平台依赖库
### 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程序包 安装即可
其他的步骤参考普通linux版的即可。
Windows客户端搭建过程:
1、安装Python
https://www.python.org/downloads/windows/
安装后设置变量:系统属性—高级—环境变量—系统变量,Path的值添加Python的目录,默认为C:\Python27
在命令行输入python,确定Python安装成功。
C:\Users\Administrator>python Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26) [MSC v.1500 64 bit (AM D64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
2、安装psutil
命令行下执行
C:\Python27\python.exe -m pip install psutil
3、下载客户端、编辑配置文件
https://github.com/cppla/ServerStatus/archive/master.zip
解压后编辑clients目录下的client-psutil.py,参考linux版的配置即可。
最后命令行运行:
python client-psutil.py
如需不间断后台运行,则将上面的命令添加到批处理文件(新建空白记事本,添加上面的命令,另存为.bat文件),用计划任务运行即可。使用计划任务可以做到不登录用户执行命令,非常实用。
psutil的更多信息可查看GitHub页面:
https://github.com/giampaolo/psutil
配置好客户端,就能在监控界面看到对应的数据了。还是非常直观的。
最后一点感慨,从我ServerStatus的数据可以看出,hostmybytes超售非常严重,CPU经常无故100%,SSH都经常卡顿。大家如果不是那么缺钱,建议就不要买了。
全部MH370失联,流量统计不到,其它正常。是什么问题?
配置信息出错。不然就是真的失联了