update readme

master
cppla 2025-08-12 13:54:17 +08:00
parent 360d8d008d
commit a10e39b6f2
1 changed files with 76 additions and 20 deletions

View File

@ -1,7 +1,8 @@
# ServerStatus中文版
## ServerStatus 中文版
* ServerStatus中文版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。。
* 在线演示https://tz.cloudcpp.com
一个轻量、可扩展的多服务器状态/探针面板,支持:系统资源统计、站点/端口监控、Watchdog 表达式告警、SSL 证书有效期与域名匹配监控(新增)。
在线演示https://tz.cloudcpp.com
[![Python Support](https://img.shields.io/badge/python-3.6%2B%20-blue.svg)](https://github.com/cppla/ServerStatus)
[![C++ Compiler](http://img.shields.io/badge/C++-GNU-blue.svg?style=flat&logo=cplusplus)](https://github.com/cppla/ServerStatus)
@ -10,18 +11,64 @@
![Latest Host Version](https://dl.cpp.la/Archive/serverstatus_1.1.5.png)
`Watchdog触发式告警interval只是为了防止频繁收到报警信息造成的骚扰并不是探测间隔。值得注意的是Exprtk库默认使用窄字符类型中文等Unicode字符无法解析计算等待修复。 `
> Watchdog 采用“触发式”告警interval 用于抑制频率并非采样周期。Exprtk 库当前使用窄字符,含中文的表达式暂不支持(待改进)。
# 目录:
### 目录结构
* clients 客户端文件
* server 服务端文件
* web 网站文件
- `clients/` 客户端脚本
- `server/` 服务端核心 (C/C++)
- `web/` 前端展示与静态资源
- `server/config.json` 主配置文件
- `web/json/` 持久化月流量快照
* server/config.json 探针配置文件      
* web/json 探针月流量
### 新特性SSL 证书监控 (sslcerts)
支持:
1. 自动解析证书到期时间 (notAfter)
2. 阈值到期提醒7 / 3 / 1 天(分别独立冷却 20h
3. 证书域名匹配校验(解析 SAN DNS 列表与 Subject CN支持通配符 *.example.com域名与证书不匹配发送独立告警默认 24h 冷却)
4. 前端单独 “SSL” 面板,区分:正常 / 将到期 / 紧急 / 已过期 / 域名不匹配
# 部署:
配置段示例:
```jsonc
"sslcerts": [
{
"name": "my.cloudcpp.com", // 自定义显示名称
"domain": "https://my.cloudcpp.com", // 可含 http(s) 前缀/路径,会自动规范化
"port": 443, // TLS 端口
"interval": 600, // 拉取间隔(秒),每条证书独立
"callback": "https://yourSMSurl" // 告警回调(URL + 文本拼接)POST body: signature=ServerStatusSSL
}
]
```
JSON 输出(sslcerts) 字段:
```json
{
"name": "my.cloudcpp.com",
"domain": "https://my.cloudcpp.com",
"port": 443,
"expire_ts": 1723507200,
"expire_days": 14,
"mismatch": false
}
```
告警触发逻辑:
| 类型 | 条件 | 冷却 | 文本示例 |
|------|------|------|----------|
| 7 天提醒 | 0 < days 7 >3 | 20h | 【SSL证书提醒】name(domain) 将在 7 天后(...) 到期 |
| 3 天提醒 | 0 < days 3 >1 | 20h | 同上 target=3 |
| 1 天提醒 | 0 < days 1 | 20h | target=1 |
| 已过期 | days ≤ 0 | 不发送额外(前端显示已过期,可自行扩展) |
| 域名不匹配 | mismatch=true | 24h | 【SSL证书域名不匹配】name(domain) 证书域名与配置不一致 |
注意事项:
- `domain` 可带协议/路径/端口,程序会提取主机名并使用 `-servername``-connect host:port` 方式获取证书。
- 若站点使用 SNI请确保 `port` 与 SNI 主机匹配;未解析到 SAN/CN 时不立即判定不匹配(避免误报)。
- 回调是 `POST`,内容直接拼接在 callback URL 后,必要时自行 URLDecode。
- mismatch 与到期提醒互不影响,可同时存在(前端优先显示“已过期” 其次“不匹配”)。
---
## 部署
【服务端】:
```bash
@ -42,7 +89,7 @@ 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 &
```
# 主题
## 主题
* layuihttps://github.com/zeyudada/StatusServerLayui 预览https://sslt.8zyw.cn
<img src=https://dl.cpp.la/Archive/serverstatus_layui.png width=200 height=100 />
@ -51,7 +98,7 @@ wget --no-check-certificate -qO client-linux.py 'https://raw.githubusercontent.c
<img src=https://dl.cpp.la/Archive/serverstatus_light.png width=200 height=100 />
# 手动安装教程:
## 手动安装
**【服务端配置】**
@ -65,7 +112,7 @@ cd ServerStatus/server && make
```
如果没错误提示OKctrl+c关闭如果有错误提示检查35601端口是否被占用
#### 二、修改配置文件
#### 二、修改配置文件 (含 sslcerts 示例)
```diff
! watchdog rule 可以为任何已知字段的表达式。注意Exprtk库默认使用窄字符类型中文等Unicode字符无法解析计算等待修复
! watchdog interval 最小通知间隔
@ -79,7 +126,7 @@ cd ServerStatus/server && make
```
{
"servers":
"servers":
[
{
"username": "s01",
@ -105,6 +152,15 @@ cd ServerStatus/server && make
"type": "tcp"
}
],
"sslcerts": [
{
"name": "demo域名",
"domain": "https://demo.example.com/path",
"port": 443,
"interval": 600,
"callback": "https://yourSMSurl"
}
],
"watchdog":
[
{
@ -159,19 +215,19 @@ cd ServerStatus/server && make
}
```
#### 三、拷贝ServerStatus/status到你的网站目录
#### 三、拷贝前端到 Web 根目录
例如:
```
sudo cp -r ServerStatus/web/* /home/wwwroot/default
```
#### 四、运行服务端
#### 四、运行服务端
web-dir参数为上一步设置的网站根目录务必修改成自己网站的路径
```
./sergate --config=config.json --web-dir=/home/wwwroot/default
```
**客户端配置**
**客户端配置**
客户端有两个版本client-linux为普通linuxclient-psutil为跨平台版普通版不成功换成跨平台版即可。
@ -195,13 +251,13 @@ web-dir参数为上一步设置的网站根目录务必修改成自己网站
![Shell View](https://dl.cpp.la/Archive/serverstatus-shell.png?version=2023)
# Make Better
## Make Better
* BotoXhttps://github.com/BotoX/ServerStatus
* mojeda: https://github.com/mojeda
* mojeda's ServerStatus: https://github.com/mojeda/ServerStatus
* BlueVM's project: http://www.lowendtalk.com/discussion/comment/169690#Comment_169690
# Jetbrains
## Jetbrains
<a href="https://www.jetbrains.com/?from=ServerStatus"><img src="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_square.png" width="100px"></a>