云探针 - ServerStatus的生产与护理
笔记 ·
首先在文章的开头,我要向你介绍一遍ServerStatus是什么。对没错我就是不管你知不知道ServerStatus是什么也要假装你不知道ServerStatus是什么的样子介绍一遍。
难得水个文,凑字数容易嘛我
ServerStatus是个云探针。顾名思义它可以把你的多显示在一个公共的HTML页面上,这些基本信息包括但不限于:系统在线时间、当前负载情况、实时网络速率、服务器至开机使用的总流量、CPU实时使用率、内存实时使用率、硬盘实时使用率等。
虽然我的小鸡不多,但是我也有挂探针的习惯,因为可以显得好高大上啊咳咳。之前一直都都是用逗比大佬的ServerStatus一键脚本,整合了服务端客户端的配置,前端展示界面也更美观。但是最近我在配置一台小鸡的时候发现,貌似一键脚本的服务端配置在Debian8环境下和宝塔面板有iptables冲突,会导致机器连接不上,emmm或许只是个例吧。
后来就把手里的机器换回了手动配置的ServerStatus中文版,所以本文为个人配置记录,以防健忘~
环境配置
安装screen:
#CentOS
yum install -y screen
#Debian
apt-get install -y screen
安装Git:
#CentOS
yum install -y git-core
#Debian
apt-get install -y git
克隆ServerStatus项目到本地:
git clone https://github.com/tenyue/ServerStatus.git
服务端配置
首先宝塔、oneinstack等程序走一波,配置一个HTTP服务:lnmp、lamp什么鬼的都行。
安装ServerStatus:
cd ServerStatus/server
make
程序运行测试:
./sergate
没有错误提示如下图就OJBK,CTRL+C结束测试;如果有错误提示,自行放行35601端口,或者关闭防火墙。
编辑服务端的配置文件:
vi config.json
参考以下注释修改:
{
"username": "s01", #客户端连接名,相当于登陆账号
"name": "node1", #hmtl显示的主机名
"type": "xen", #机器的虚拟方式,如:Xen、KVM、OpenVZ
"host": "host1", #机器的名字,随意写
"location": "cn", #机器的物理位置
"password": "USER_DEFAULT_PASSWORD" #客户端连接密码,相当于登录密码
},
复制ServerStatus的WEB目录到网站目录:
cd /root
#/www/wwwroot/status HTTP站点的绝对路径,自行修改
cp -r ServerStatus/web/* /www/wwwroot/status
将ServerStatus放在后台运行:
cd ServerStatus/server
#同上修改/www/wwwroot/status为HTTP站点的绝对路径
screen -dmS web ./sergate --config=config.json --web-dir=/www/wwwroot/status
添加新的监控机器
编辑服务端配置:
vi config.json
添加新的机器信息,然后重启sergate
查看sergate运行的进程ID:
ps -ef | grep web
如图,我的进程ID是9116、9117
将进程kill掉:
kill -9 9116
kill -9 9117
然后重新运行sergate:
screen -dmS web ./sergate --config=config.json --web-dir=/www/wwwroot/status
客户端配置
在已经安装了ServerStatus的前提下,也就是:
git clone https://github.com/tenyue/ServerStatus.git
cd ServerStatus/server
make
再进行操作:
cd ServerStatus/clients
vi client-linux.py
修改配置文件:
SERVER = "127.0.0.1" #服务端的ip或域名
PORT = 35601 #连接端口,一般默认
USER = "s01" #连接用户名,相当于登陆账号
PASSWORD = "USER_DEFAULT_PASSWORD" #连接密码,相当于登陆密码
INTERVAL = 1 #更新间隔
修改完后,运行ServerStatus客户端(后台运行需要先安装screen):
#前台运行
python client-linux.py
#后台运行
screen -dmS jp python client-linux.py
开机自启
服务端
Debian:
1.进入init.d:
cd /etc/init.d
2.创建Shell脚本:
vi /etc/init.d/status-s
3.编写启动脚本:
#! /bin/sh
### BEGIN INIT INFO
# Provides: ServerStatus
# Required-Start: $network $syslog
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start ServerStatus
# Description: ServerStatus
### END INIT INFO
ServerStatus_DATA="/root/ServerStatus/server"
WEB_DATA="/www/wwwroot/status"
start()
{
echo "Start ServerStatus"
cd "$ServerStatus_DATA"
screen -dmS web ./sergate --config=config.json --web-dir="$WEB_DATA"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
#start
;;
*)
echo "Usage: /etc/init.d/status-s {start|stop|restart}"
;;
esac
注意修改WEB_DATA后的路径为HTTP站点的绝对路径
4.设置status-s为可执行脚本:
chmod 755 /etc/init.d/status-s
5.设置status-s开机自启:
update-rc.d status-s defaults
测试下脚本可用性:
/etc/init.d/status-s start
若不报错echo Start ServerStatus,则脚本可用:
重启测试:
reboot
若想取消开机自启:
update-rc.d -f status-s remove
CentOS:
前4步都和Debian一样,完成前4步后,编辑rc.local
vi /etc/rc.d/rc.local
在此文件末尾新开一行加上如下命令:
/etc/init.d/status-s start
给权限,重启测试:
chmod +x /etc/rc.d/rc.local
reboot
客户端
Debian
1.进入init.d:
cd /etc/init.d
2.创建Shell脚本:
vi /etc/init.d/status-c
3.编写启动脚本:
#! /bin/sh
### BEGIN INIT INFO
# Provides: Status Clients
# Required-Start: $network $syslog
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start ServerStatus Clients
# Description: Status Clients
### END INIT INFO
ServerStatusC_DATA="/root/ServerStatus/clients"
NAME_BIN="client-linux.py"
start()
{
echo "Start ServerStatus Clients"
cd "${ServerStatusC_DATA}"
screen -dmS jp python "${NAME_BIN}"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
#start
;;
*)
echo "Usage: /etc/init.d/status-c {start|stop|restart}"
;;
esac
4.设置status-c为可执行脚本:
chmod 755 /etc/init.d/status-c
5.设置status-c开机自启:
update-rc.d status-c defaults
测试下脚本可用性:
/etc/init.d/status-c start
若不报错echo Start ServerStatus Clients,则脚本可用:
重启测试:
reboot
若想取消开机自启:
update-rc.d -f status-c remove
CentOS:
前4步都和Debian一样,完成前4步后,编辑rc.local
vi /etc/rc.d/rc.local
在此文件末尾新开一行加上如下命令:
/etc/init.d/status-c start
给权限,重启测试:
chmod +x /etc/rc.d/rc.local
reboot
DEMO:node.bilibiu.cn
蜜汁标题,拟标题的时候我突然想到了老母猪的产后护理(雾
# note, serverstatus