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

Watchdog触发式告警,interval只是为了防止频繁收到报警,并不是探测间隔。值得注意的是Exprtk使用窄字符类型,中文等Unicode字符无法解析计算。 AI已经能够取代大部分程序员

`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
{
	"servers":
	[
		{
			"username": "s01",
			"name": "vps-1",
			"type": "kvm",
			"host": "chengdu",
			"location": "🇨🇳",
			"password": "USER_DEFAULT_PASSWORD",
			"monthstart": 1
		}
	],
	"monitors": [
		{
			"name": "抖音",
			"host": "https://www.douyin.com",
			"interval": 600,
			"type": "https"
		},
		{
			"name": "百度",
			"host": "https://www.baidu.com",
			"interval": 600,
			"type": "https"
		}
	],
	"sslcerts": [
		{
			"name": "demo域名",
			"domain": "https://demo.example.com",
			"port": 443,
			"interval": 600,
			"callback": "https://yourSMSurl"
		}
	],
	"watchdog":
	[
	    {
			"name": "服务器负载高监控,排除内存大于32G物理机,同时排除node1机器",
			"rule": "cpu>90&load_1>4&memory_total<33554432&name!='node1'",
			"interval": 600,
			"callback": "https://yourSMSurl"
		},
		{
            "name": "服务器内存使用率过高监控,排除小于1G的机器",
            "rule": "(memory_used/memory_total)*100>90&memory_total>1048576",
            "interval": 600,
            "callback": "https://yourSMSurl"
        },
        {
            "name": "服务器宕机告警",
            "rule": "online4=0&online6=0",
            "interval": 600,
            "callback": "https://yourSMSurl"
        },
		{
            "name": "DDOS和CC攻击监控,限制甲骨文机器",
            "rule": "tcp_count>600&type='Oracle'",
            "interval": 300,
            "callback": "https://yourSMSurl"
        },
		{
			"name": "服务器月出口流量999GB告警",
			"rule": "(network_out-last_network_out)/1024/1024/1024>999",
			"interval": 3600,
			"callback": "https://yourSMSurl"
		},
		{
			"name": "阿里云服务器流量18GB告警,限制username为乌兰察布",
			"rule": "(network_out-last_network_out)/1024/1024/1024>18&(username='wlcb1'|username='wlcb2'|username='wlcb3'|username='wlcb4')",
			"interval": 3600,
			"callback": "https://yourSMSurl"
		},
		{
			"name": "重要线路丢包率过高检查",
			"rule": "(ping_10010>10|ping_189>10|ping_10086>10)&(host='sgp'|host='qqhk'|host='hk-21-x'|host='hk-31-x')",
			"interval": 600,
			"callback": "https://yourSMSurl"
		},
		{
			"name": "你可以组合任何已知字段的表达式",
			"rule": "(hdd_used/hdd_total)*100>95",
			"interval": 1800,
			"callback": "https://yourSMSurl"
		}
	]
}          
sudo cp -r ServerStatus/web/* /home/wwwroot/default
./sergate --config=config.json --web-dir=/home/wwwroot/default