mirror of
https://github.com//cppla/ServerStatus
synced 2025-06-01 21:29:50 +08:00
Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
830938eac9 | ||
|
1a764ed104 | ||
|
b0c543b44b | ||
|
f85c0a87f9 | ||
|
67d7c5ea0f | ||
|
8576f81404 | ||
|
fa0ee2bf57 | ||
|
e9776b0e69 | ||
|
e01cc118dc | ||
|
784c40b153 | ||
|
6068a2ba17 | ||
|
ced526824f | ||
|
7d2a73bf2e | ||
|
5ebf076330 |
@ -1,7 +1,7 @@
|
||||
# The Dockerfile for build localhost source, not git repo
|
||||
FROM debian:buster as builder
|
||||
FROM debian:buster AS builder
|
||||
|
||||
MAINTAINER cppla https://cpp.la
|
||||
LABEL maintainer="cppla <https://cpp.la>"
|
||||
|
||||
RUN apt-get update -y && apt-get -y install gcc g++ make libcurl4-openssl-dev
|
||||
|
||||
@ -26,4 +26,4 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
EXPOSE 80 35601
|
||||
HEALTHCHECK --interval=5s --timeout=3s --retries=3 CMD curl --fail http://localhost:80 || bash -c 'kill -s 15 -1 && (sleep 10; kill -s 9 -1)'
|
||||
CMD nohup sh -c '/etc/init.d/nginx start && /ServerStatus/server/sergate --config=/ServerStatus/server/config.json --web-dir=/usr/share/nginx/html'
|
||||
CMD ["sh", "-c", "/etc/init.d/nginx start && /ServerStatus/server/sergate --config=/ServerStatus/server/config.json --web-dir=/usr/share/nginx/html"]
|
35
README.md
35
README.md
@ -1,6 +1,6 @@
|
||||
# ServerStatus中文版:
|
||||
|
||||
* ServerStatus中文版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。
|
||||
* ServerStatus中文版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。。
|
||||
* 在线演示:https://tz.cloudcpp.com
|
||||
|
||||
[](https://github.com/cppla/ServerStatus)
|
||||
@ -69,8 +69,7 @@ cd ServerStatus/server && make
|
||||
```diff
|
||||
! watchdog rule 可以为任何已知字段的表达式。注意Exprtk库默认使用窄字符类型,中文等Unicode字符无法解析计算,等待修复
|
||||
! watchdog interval 最小通知间隔
|
||||
! watchdog callback 可自定义为Post方法的URL,告警内容将拼接其后并发起回调
|
||||
! Server酱注册:https://sct.ftqq.com/r/13682
|
||||
! watchdog callback 可自定义为Post方法的URL,告警内容将拼接其后并发起回调
|
||||
|
||||
! Telegram: https://api.telegram.org/bot你自己的密钥/sendMessage?parse_mode=HTML&disable_web_page_preview=true&chat_id=你自己的标识&text=
|
||||
! Server酱: https://sctapi.ftqq.com/你自己的密钥.send?title=ServerStatus&desp=
|
||||
@ -94,10 +93,16 @@ cd ServerStatus/server && make
|
||||
],
|
||||
"monitors": [
|
||||
{
|
||||
"name": "监测网站以及MySQL、Redis,默认为七天在线率",
|
||||
"name": "监测网站,默认为一天在线率",
|
||||
"host": "https://www.baidu.com",
|
||||
"interval": 60,
|
||||
"interval": 1200,
|
||||
"type": "https"
|
||||
},
|
||||
{
|
||||
"name": "监测tcp服务端口",
|
||||
"host": "1.1.1.1:80",
|
||||
"interval": 1200,
|
||||
"type": "tcp"
|
||||
}
|
||||
],
|
||||
"watchdog":
|
||||
@ -109,8 +114,8 @@ cd ServerStatus/server && make
|
||||
"callback": "https://yourSMSurl"
|
||||
},
|
||||
{
|
||||
"name": "服务器内存使用率过高监控",
|
||||
"rule": "(memory_used/memory_total)*100>90",
|
||||
"name": "服务器内存使用率过高监控,排除小于1G的机器",
|
||||
"rule": "(memory_used/memory_total)*100>90&memory_total>1048576",
|
||||
"interval": 600,
|
||||
"callback": "https://yourSMSurl"
|
||||
},
|
||||
@ -121,8 +126,8 @@ cd ServerStatus/server && make
|
||||
"callback": "https://yourSMSurl"
|
||||
},
|
||||
{
|
||||
"name": "DDOS和CC攻击监控",
|
||||
"rule": "tcp_count>600",
|
||||
"name": "DDOS和CC攻击监控,限制甲骨文机器",
|
||||
"rule": "tcp_count>600&type='Oracle'",
|
||||
"interval": 300,
|
||||
"callback": "https://yourSMSurl"
|
||||
},
|
||||
@ -132,6 +137,18 @@ cd ServerStatus/server && make
|
||||
"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",
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Update by : https://github.com/cppla/ServerStatus, Update date: 20220530
|
||||
# 版本:1.0.3, 支持Python版本:2.7 to 3.10
|
||||
# 支持操作系统: Linux, OSX, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures
|
||||
# ONLINE_PACKET_HISTORY_LEN, 探测间隔120s,记录24小时在线率(720);探测时间300s,记录24小时(288);探测间隔60s,记录7天(10080)
|
||||
# ONLINE_PACKET_HISTORY_LEN, 探测间隔1200s,记录24小时在线率(72);探测时间300s,记录24小时(288);探测间隔60s,记录7天(10080)
|
||||
# 说明: 默认情况下修改server和user就可以了。丢包率监测方向可以自定义,例如:CU = "www.facebook.com"。
|
||||
|
||||
SERVER = "127.0.0.1"
|
||||
@ -18,7 +18,7 @@ CM = "cm.tz.cloudcpp.com"
|
||||
PROBEPORT = 80
|
||||
PROBE_PROTOCOL_PREFER = "ipv4" # ipv4, ipv6
|
||||
PING_PACKET_HISTORY_LEN = 100
|
||||
ONLINE_PACKET_HISTORY_LEN = 288
|
||||
ONLINE_PACKET_HISTORY_LEN = 72
|
||||
INTERVAL = 1
|
||||
|
||||
import socket
|
||||
|
@ -4,7 +4,7 @@
|
||||
# 依赖于psutil跨平台库
|
||||
# 版本:1.0.3, 支持Python版本:2.7 to 3.10
|
||||
# 支持操作系统: Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures
|
||||
# ONLINE_PACKET_HISTORY_LEN, 探测间隔120s,记录24小时在线率(720);探测时间300s,记录24小时(288);探测间隔60s,记录7天(10080)
|
||||
# ONLINE_PACKET_HISTORY_LEN, 探测间隔1200s,记录24小时在线率(72);探测时间300s,记录24小时(288);探测间隔60s,记录7天(10080)
|
||||
# 说明: 默认情况下修改server和user就可以了。丢包率监测方向可以自定义,例如:CU = "www.facebook.com"。
|
||||
|
||||
SERVER = "127.0.0.1"
|
||||
@ -19,7 +19,7 @@ CM = "cm.tz.cloudcpp.com"
|
||||
PROBEPORT = 80
|
||||
PROBE_PROTOCOL_PREFER = "ipv4" # ipv4, ipv6
|
||||
PING_PACKET_HISTORY_LEN = 100
|
||||
ONLINE_PACKET_HISTORY_LEN = 288
|
||||
ONLINE_PACKET_HISTORY_LEN = 72
|
||||
INTERVAL = 1
|
||||
|
||||
import socket
|
||||
|
@ -42,19 +42,13 @@
|
||||
{
|
||||
"name": "baidu",
|
||||
"host": "https://www.baidu.com",
|
||||
"interval": 300,
|
||||
"interval": 1200,
|
||||
"type": "https"
|
||||
},
|
||||
{
|
||||
"name": "aliyun",
|
||||
"host": "https://www.aliyun.com",
|
||||
"interval": 300,
|
||||
"type": "https"
|
||||
},
|
||||
{
|
||||
"name": "114",
|
||||
"host": "114.114.114.114:53",
|
||||
"interval": 300,
|
||||
"name": "1111",
|
||||
"host": "1.1.1.1:80",
|
||||
"interval": 1200,
|
||||
"type": "tcp"
|
||||
}
|
||||
],
|
||||
@ -84,11 +78,23 @@
|
||||
"callback": "https://yourSMSurl"
|
||||
},
|
||||
{
|
||||
"name": "month traffic warning",
|
||||
"name": "month 999GB traffic warning",
|
||||
"rule": "(network_out-last_network_out)/1024/1024/1024>999",
|
||||
"interval": 3600,
|
||||
"callback": "https://yourSMSurl"
|
||||
},
|
||||
{
|
||||
"name": "aliyun china free 18GB traffic warning",
|
||||
"rule": "(network_out-last_network_out)/1024/1024/1024>18&(username='aliyun1'|username='aliyun2')",
|
||||
"interval": 3600,
|
||||
"callback": "https://yourSMSurl"
|
||||
},
|
||||
{
|
||||
"name": "packet loss rate warning",
|
||||
"rule": "(ping_10010>10|ping_189>10|ping_10086>10)&(host='sgp'|host='qqhk'|host='hk-21-x'|host='hk-31-x')",
|
||||
"interval": 3600,
|
||||
"callback": "https://yourSMSurl"
|
||||
},
|
||||
{
|
||||
"name": "you can parse an expression combining any known field",
|
||||
"rule": "load_5>3",
|
||||
|
13419
server/src/exprtk.hpp
13419
server/src/exprtk.hpp
File diff suppressed because it is too large
Load Diff
@ -216,7 +216,8 @@ int CMain::HandleMessage(int ClientNetID, char *pMessage)
|
||||
pClient->m_Stats.m_time_10010, pClient->m_Stats.m_time_189, pClient->m_Stats.m_time_10086,
|
||||
pClient->m_Stats.m_tcpCount, pClient->m_Stats.m_udpCount, pClient->m_Stats.m_processCount,
|
||||
pClient->m_Stats.m_threadCount, pClient->m_Stats.m_NetworkRx, pClient->m_Stats.m_NetworkTx,
|
||||
pClient->m_Stats.m_NetworkIN, pClient->m_Stats.m_NetworkOUT,pClient->m_Stats.m_MemTotal,
|
||||
pClient->m_Stats.m_NetworkIN, pClient->m_Stats.m_NetworkOUT,
|
||||
pClient->m_LastNetworkIN, pClient->m_LastNetworkOUT, pClient->m_Stats.m_MemTotal,
|
||||
pClient->m_Stats.m_MemUsed, pClient->m_Stats.m_SwapTotal, pClient->m_Stats.m_SwapUsed,
|
||||
pClient->m_Stats.m_HDDTotal, pClient->m_Stats.m_HDDUsed, pClient->m_Stats.m_IORead,
|
||||
pClient->m_Stats.m_IOWrite, pClient->m_Stats.m_CPU, pClient->m_Stats.m_Online4,
|
||||
@ -268,7 +269,7 @@ int CMain::HandleMessage(int ClientNetID, char *pMessage)
|
||||
|
||||
void CMain::WatchdogMessage(int ClientNetID, double load_1, double load_5, double load_15, double ping_10010, double ping_189, double ping_10086,
|
||||
double time_10010, double time_189, double time_10086, double tcp_count, double udp_count, double process_count, double thread_count,
|
||||
double network_rx, double network_tx, double network_in, double network_out, double memory_total, double memory_used,
|
||||
double network_rx, double network_tx, double network_in, double network_out, double last_network_in, double last_network_out, double memory_total, double memory_used,
|
||||
double swap_total, double swap_used, double hdd_total, double hdd_used, double io_read, double io_write, double cpu,
|
||||
double online4, double online6)
|
||||
{
|
||||
@ -326,6 +327,8 @@ void CMain::WatchdogMessage(int ClientNetID, double load_1, double load_5, doubl
|
||||
symbol_table.add_variable("network_tx",network_tx);
|
||||
symbol_table.add_variable("network_in",network_in);
|
||||
symbol_table.add_variable("network_out",network_out);
|
||||
symbol_table.add_variable("last_network_in",last_network_in);
|
||||
symbol_table.add_variable("last_network_out",last_network_out);
|
||||
symbol_table.add_variable("memory_total",memory_total);
|
||||
symbol_table.add_variable("memory_used",memory_used);
|
||||
symbol_table.add_variable("swap_total",swap_total);
|
||||
|
@ -122,8 +122,8 @@ public:
|
||||
void WatchdogMessage(int ClientNetID,
|
||||
double load_1, double load_5, double load_15, double ping_10010, double ping_189, double ping_10086,
|
||||
double time_10010, double time_189, double time_10086, double tcp_count, double udp_count, double process_count, double thread_count,
|
||||
double network_rx, double network_tx, double network_in, double network_out,double memory_total,
|
||||
double memory_used,double swap_total, double swap_used, double hdd_total,
|
||||
double network_rx, double network_tx, double network_in, double network_out, double last_network_in, double last_network_out,
|
||||
double memory_total, double memory_used,double swap_total, double swap_used, double hdd_total,
|
||||
double hdd_used, double io_read, double io_write, double cpu,double online4, double online6);
|
||||
|
||||
CClient *Client(int ClientID) { return &m_aClients[ClientID]; }
|
||||
|
@ -108,7 +108,7 @@ tr.odd.expandRow:hover {
|
||||
}
|
||||
|
||||
#traffic, #network {
|
||||
width: 158px;
|
||||
width: 170px;
|
||||
}
|
||||
|
||||
#cpu, #ram, #hdd {
|
||||
@ -129,7 +129,7 @@ tr.odd.expandRow:hover {
|
||||
padding: 0;
|
||||
}
|
||||
#traffic, #network {
|
||||
width: 115px;
|
||||
width: 120px;
|
||||
}
|
||||
#type, #location, #uptime, #ping {
|
||||
display: none;
|
||||
@ -146,7 +146,7 @@ tr.odd.expandRow:hover {
|
||||
padding: 0;
|
||||
}
|
||||
#traffic, #network {
|
||||
width: 115px;
|
||||
width: 120px;
|
||||
}
|
||||
#month_traffic, #type, #location, #uptime, #ping {
|
||||
display: none;
|
||||
@ -163,7 +163,7 @@ tr.odd.expandRow:hover {
|
||||
padding: 0;
|
||||
}
|
||||
#network {
|
||||
width: 115px;
|
||||
width: 120px;
|
||||
}
|
||||
#month_traffic, #type, #location, #uptime, #traffic, #ping {
|
||||
display: none;
|
||||
@ -179,4 +179,4 @@ tr.odd.expandRow:hover {
|
||||
|
||||
.navbar-nav .dropdown-toggle::after {
|
||||
vertical-align: 0.15em;
|
||||
}
|
||||
}
|
||||
|
@ -89,7 +89,7 @@ tr.odd.expandRow:hover {
|
||||
}
|
||||
|
||||
#traffic, #network {
|
||||
width: 158px;
|
||||
width: 170px;
|
||||
}
|
||||
|
||||
#cpu, #ram, #hdd {
|
||||
@ -110,7 +110,7 @@ tr.odd.expandRow:hover {
|
||||
padding: 0;
|
||||
}
|
||||
#traffic, #network {
|
||||
width: 115px;
|
||||
width: 120px;
|
||||
}
|
||||
#type, #location, #uptime, #ping {
|
||||
display: none;
|
||||
@ -127,7 +127,7 @@ tr.odd.expandRow:hover {
|
||||
padding: 0;
|
||||
}
|
||||
#traffic, #network {
|
||||
width: 115px;
|
||||
width: 120px;
|
||||
}
|
||||
#month_traffic, #type, #location, #uptime, #ping {
|
||||
display: none;
|
||||
@ -144,7 +144,7 @@ tr.odd.expandRow:hover {
|
||||
padding: 0;
|
||||
}
|
||||
#network {
|
||||
width: 115px;
|
||||
width: 120px;
|
||||
}
|
||||
#month_traffic, #type, #location, #uptime, #traffic, #ping {
|
||||
display: none;
|
||||
@ -160,4 +160,4 @@ tr.odd.expandRow:hover {
|
||||
|
||||
.navbar-nav .dropdown-toggle::after {
|
||||
vertical-align: 0.15em;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user