Skip to content

云探针、多服务器探针、云监控、多服务器云监控,演示: https://tz.cloudcpp.com/

License

Notifications You must be signed in to change notification settings

XavierAlpha/ServerStatus

This branch is 1 commit ahead of, 59 commits behind cppla/ServerStatus:master.

Folders and files

NameName
Last commit message
Last commit date
May 31, 2023
Nov 1, 2022
Oct 16, 2023
Feb 22, 2022
Oct 17, 2023
Jun 26, 2018
Apr 12, 2023
Jun 26, 2018
Jan 13, 2024
Jan 13, 2024
Feb 23, 2022

Repository files navigation

ServerStatus中文版:

  • ServerStatus中文版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。
  • 在线演示:https://tz.cloudcpp.com

Python Support C++ Compiler License Version

Latest Version

Watchdog触发式告警,interval只是为了防止频繁收到报警信息造成的骚扰,并不是探测间隔。 同时为了防止海外机器闪断报警,也加入username、name、type等静态字符串参数的计算支持。

目录:

  • clients 客户端文件

  • server 服务端文件

  • web 网站文件

  • server/config.json 探针配置文件      

  • web/json 探针月流量

部署:

【服务端】:

docker 自定义网络额外添加 ipv6

参考: Enable IPv6 support

  1. 编辑 /etc/docker/daemon.json 并添加.
{
  "experimental": true,
  "ip6tables": true
}
  1. 重启 docker sudo systemctl restart docker
  2. 自定义 ipv6 docker network create --ipv6 --subnet fd00::/112 ip6net 或者 docker compose file:
 networks:
   ip6net:
     enable_ipv6: true
     ipam:
       config:
         - subnet: fd00::/112

或者仅为使用默认桥接的网络添加 ipv6

编辑 /etc/docker/daemon.json 并添加.

{
  "ipv6": true,
  "fixed-cidr-v6": "fd00::/64",
  "experimental": true,
  "ip6tables": true
}

重启 docker sudo systemctl restart docker

或者为自定义网络自动分配 ipv6 地址像 ipv4 一样

编辑 /etc/docker/daemon.json 并添加.

{
  "experimental": true,
  "ip6tables": true,
  "default-address-pools": [
    { "base": "172.17.0.0/16", "size": 16 },
    { "base": "172.18.0.0/16", "size": 16 },
    { "base": "172.19.0.0/16", "size": 16 },
    { "base": "172.20.0.0/14", "size": 16 },
    { "base": "172.24.0.0/14", "size": 16 },
    { "base": "172.28.0.0/14", "size": 16 },
    { "base": "192.168.0.0/16", "size": 20 },
    { "base": "fd00::/104", "size": 112 }
  ]
}

重启 docker sudo systemctl restart docker

注意 docker-compose file 需要 enable_ipv6: true

`Docker`:     

wget --no-check-certificate -qO ~/serverstatus-config.json https://raw.githubusercontent.com/cppla/ServerStatus/master/server/config.json && mkdir ~/serverstatus-monthtraffic    
docker network create --ipv6 --subnet fd00::/112 serverstatus_net
docker run -d --restart=always --name=serverstatus -v ~/serverstatus-config.json:/ServerStatus/server/config.json -v ~/serverstatus-monthtraffic:/usr/share/nginx/html/json --network serverstatus_net -p 80:80 -p 35601:35601 cppla/serverstatus:latest     

`Docker-compose(推荐)`: docker-compose up -d

【客户端】:

wget --no-check-certificate -qO client-linux.py 'https://raw.githubusercontent.com/cppla/ServerStatus/master/clients/client-linux.py' && nohup python3 client-linux.py SERVER={$SERVER} USER={$USER} PASSWORD={$PASSWORD} >/dev/null 2>&1 &

eg:
wget --no-check-certificate -qO client-linux.py 'https://raw.githubusercontent.com/cppla/ServerStatus/master/clients/client-linux.py' && nohup python3 client-linux.py SERVER=45.79.67.132 USER=s04  >/dev/null 2>&1 &

主题:

手动安装教程:

【服务端配置】

一、生成服务端程序

`Debian/Ubuntu`: apt-get -y install gcc g++ make libcurl4-openssl-dev
`Centos/Redhat`: yum -y install gcc gcc-c++ make libcurl-devel

cd ServerStatus/server && make
./sergate

如果没错误提示,OK,ctrl+c关闭;如果有错误提示,检查35601端口是否被占用

二、修改配置文件

! watchdog rule 可以为任何已知字段的表达式       
! watchdog interval 最小通知间隔
! watchdog callback 可自定义为Post方法的URL,告警内容将拼接其后并发起回调 

! watchdog callback Telegram: https://api.telegram.org/bot你自己的密钥/sendMessage?parse_mode=HTML&disable_web_page_preview=true&chat_id=你自己的标识&text=
! watchdog callback Server酱: https://sctapi.ftqq.com/你自己的密钥.send?title=ServerStatus&desp=
! watchdog callback PushDeer: https://api2.pushdeer.com/message/push?pushkey=你自己的密钥&text=
! watchdog callback BasicAuth: https://用户名:密码@你自己的域名/api/push?message=
{
        "servers":
	[
		{
			"username": "s01",
			"name": "vps-1",
			"type": "kvm",
			"host": "chengdu",
			"location": "🇨🇳",
			"password": "USER_DEFAULT_PASSWORD",
			"monthstart": 1
		},
	],
	"watchdog":
	[
	        {
			"name": "服务器负载高监控,排除内存大于32G物理机,同时排除俄勒冈机器",
			"rule": "cpu>90&load_1>4&memory_total<33554432&name!='俄勒冈'",
			"interval": 600,
			"callback": "https://yourSMSurl"
		},
		{
                        "name": "服务器内存使用率过高监控",
                        "rule": "(memory_used/memory_total)*100>90",
                        "interval": 600,
                        "callback": "https://yourSMSurl"
                },
                {
                        "name": "服务器宕机告警,排出俄勒冈,排除s02",
                        "rule": "online4=0&online6=0&name!='俄勒冈'&username!='s02'",
                        "interval": 600,
                        "callback": "https://yourSMSurl"
                },
		{
                        "name": "DDOS和CC攻击监控",
                        "rule": "tcp_count>600",
                        "interval": 300,
                        "callback": "https://yourSMSurl"
                },
		{
			"name": "服务器月出口流量999GB告警",
			"rule": "(network_out-last_network_out)/1024/1024/1024>999",
			"interval": 3600,
			"callback": "https://yourSMSurl"
		},
		{
			"name": "你可以组合任何已知字段的表达式",
			"rule": "(hdd_used/hdd_total)*100>95",
			"interval": 1800,
			"callback": "https://yourSMSurl"
		}
	]
}       

三、拷贝ServerStatus/status到你的网站目录

例如:

sudo cp -r ServerStatus/web/* /home/wwwroot/default

四、运行服务端:

web-dir参数为上一步设置的网站根目录,务必修改成自己网站的路径

./sergate --config=config.json --web-dir=/home/wwwroot/default   

【客户端配置】

客户端有两个版本,client-linux为普通linux,client-psutil为跨平台版,普通版不成功,换成跨平台版即可。

一、client-linux版配置:

1、vim client-linux.py, 修改SERVER地址,username帐号, password密码
2、python3 client-linux.py 运行即可。

二、client-psutil版配置:

1、安装psutil跨平台依赖库

`Debian/Ubuntu`: apt -y install python3-pip && pip3 install psutil    
`Centos/Redhat`: yum -y install python3-pip gcc python3-devel && pip3 install psutil      
`Windows`: https://pypi.org/project/psutil/    

2、vim client-psutil.py, 修改SERVER地址,username帐号, password密码
3、python3 client-psutil.py 运行即可。

服务器和客户端自行加入开机启动,或进程守护,或后台方式运行。 例如: nohup python3 client-linux.py &

extra scene (run web/ssview.py) Shell View

Make Better

Jetbrains

About

云探针、多服务器探针、云监控、多服务器云监控,演示: https://tz.cloudcpp.com/

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 87.1%
  • C 6.6%
  • Shell 2.4%
  • Python 1.9%
  • JavaScript 1.1%
  • CSS 0.6%
  • Other 0.3%