最近用 django 写了个 sspanel,
项目在这: https://github.com/Ehco1996/django-sspanel
Demo: http://www.ehcozone.club
现在希望能够判断一下 节点的运行状态,并返回检测值,
现在网上好多资料都没有了,查了好久,貌似需要检测心跳包?
不太明白相关的知识
谁能给个思路么?
1
pqee 2017-08-12 15:42:24 +08:00 via Android
都写 sspanel 了这个搞不定不科学呀……怎么和 ssserver 通信的…
|
2
blankme 2017-08-12 15:46:58 +08:00
如果是检测进程是否在运行:pgrep ssserver
如果是检测 ss 能不能用,在监控机上用 sslocal 连你的 ss,然后:proxychains4 curl ifconfig.co 两者都是不需要深度知识的方法 |
3
Ehco1996 OP @pqee 前端和 server 是通过数据库通讯的,关于 ss 是如何运行的我还真不太明白...
|
4
Ehco1996 OP |
5
zhengxiaowai 2017-08-12 16:30:43 +08:00
歪个楼,怎么检测流量?
|
6
vh2h 2017-08-12 16:33:03 +08:00
不会,先给顶一个!
|
7
blankme 2017-08-12 16:35:37 +08:00
|
8
Ehco1996 OP @zhengxiaowai user 表里的 u+d 就是流量了
@blankme 知道怎么做了, 脚本运行的话 进程是 server.py 用这条命令就行了就能检测到了 ps -ef | grep server.py| grep -v grep | wc -l 再次感谢 |
9
zhengxiaowai 2017-08-12 16:49:16 +08:00
|
10
timothyye 2017-08-12 16:55:42 +08:00 via Android
或者用 lsof 判断 ss 有没有监听端口,有的话表明程序还在运行
|
11
pqee 2017-08-12 17:58:55 +08:00 via Android
通过数据库通信……莫非你后端用的不是官方 server ……
|
12
pqee 2017-08-12 18:01:19 +08:00
不需要用多用户版,直接用官方的 Python 实现就可以,可以参考: https://github.com/ZhuFaner/shadowsocks-manage-system
|
13
Ehco1996 OP |
14
pqee 2017-08-12 20:42:09 +08:00 via Android
@Ehco1996 是直接跟 ssserver 进程进行 udp 数据交换,每次发数据都会收到返回,判断返回就知道是否存活了。
|
15
fzinfz 2017-08-12 21:09:40 +08:00 1
|
16
smileawei 2017-08-12 21:40:08 +08:00
可以开个固定端口。然后监控那个端口在不在 netstat -ntpl |grep 443 |wc -l
|
17
coderfox 2017-08-12 22:00:58 +08:00 via Android 1
你读一下 fsgmhoward 的 mu 的代码,这个版本会向服务器主动推送心跳包表达节点所在服务器状态的。
|
18
fzinfz 2017-08-12 22:13:29 +08:00 1
|
19
NoAnyLove 2017-08-13 12:41:29 +08:00
我有点懵逼啊,ss 不是预留了一个 manager 接口吗? Python 版和 libev 版都支持的,一般默认采用 unix socket 进行通讯,发送 ping 命令就能得到统计数据。这难道不就是个现成的非常好用的心跳检查吗?直接判断进程名,不怕同名(虽然不太可能)或者服务端卡死了吗?虽然检查进程名不是不可以,不过总感觉有点不专业啊。
|
20
Ehco1996 OP |