Compare commits

...

14 Commits

Author SHA1 Message Date
cppla
830938eac9
Update README.md 2025-04-01 10:35:26 +08:00
cppla
1a764ed104 1111 2024-12-02 14:13:00 +08:00
cppla
b0c543b44b update Dockerfile 2024-11-25 17:39:07 +08:00
cppla
f85c0a87f9 update tcp example 2024-11-25 16:50:32 +08:00
cppla
67d7c5ea0f
Merge pull request from ArashPartow/arashpartow/update_exprtk_0.0.3
Update ExprTk to 0.0.3
2024-11-25 16:42:00 +08:00
cppla
8576f81404 some update for probe tcp slow 2024-11-18 13:56:01 +08:00
cppla
fa0ee2bf57 重要线路丢包率告警例子 2024-09-18 13:24:06 +08:00
cppla
e9776b0e69 增加重要节点丢包率监控 2024-09-18 10:07:43 +08:00
cppla
e01cc118dc update css 2024-09-13 09:26:07 +08:00
cppla
784c40b153
Update README.md 2024-09-11 18:01:05 +08:00
cppla
6068a2ba17 yes 2024-09-11 17:54:24 +08:00
cppla
ced526824f 增加阿里云免费20G告警示例,限制username是aliyun1和aliyun2 2024-09-09 19:18:42 +08:00
cppla
7d2a73bf2e 修复月流量监控的bug,月流量加入表达式计算 2024-09-09 18:55:11 +08:00
Arash Partow
5ebf076330 Update ExprTk to 0.0.3 2024-01-01 00:00:00 +00:00
10 changed files with 9318 additions and 4209 deletions

@ -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"]

@ -1,6 +1,6 @@
# ServerStatus中文版
* ServerStatus中文版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。
* ServerStatus中文版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。
* 在线演示https://tz.cloudcpp.com
[![Python Support](https://img.shields.io/badge/python-3.6%2B%20-blue.svg)](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",

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;
}
}