feat(syslog-serve): 优化微步5秒窗口与5万条日志采集

- 将 API 拉取任务的 lookbackSeconds 通用默认值调整为 0
- 微步任务采用5秒时间窗口、50000条单窗口上限和64MiB响应保护
- 将微步适配器及管理接口的 pageSize 上限放宽至50000
- 将 API 调度扫描默认周期调整为1000毫秒
- 兼容新旧调度扫描环境变量名称
- 更新达梦数据库 PAGE_SIZE 约束及 LOOKBACK_SECONDS 默认值
- 补充 v6 数据库预检、升级和验证脚本
- 更新微步任务模板、现场操作说明和启动版本标识
- 增加配置边界及启动参数自动化测试

验证:
- JDK 8 Maven测试通过:167个,失败0,错误0,跳过2
- git diff --check通过
This commit is contained in:
王绍宏
2026-09-17 23:15:15 +08:00
parent 261f1d38e9
commit d7fcbdde92
17 changed files with 126 additions and 26 deletions
@@ -14,6 +14,7 @@ API 相关升级只看本页。示例设备:`deviceId=40`、`IP=10.56.171.164`
```text
SYSLOG_SERVER_ENABLED=true
DEVICE_API_ENABLED=true
DEVICE_API_SCHEDULER_SCAN_INTERVAL_MS=1000
DEVICE_API_TLS_VERIFY_ENABLED=false
DEVICE_API_HOST_ALLOWLIST_ENABLED=false
```
@@ -25,7 +26,8 @@ API 相关升级只看本页。示例设备:`deviceId=40`、`IP=10.56.171.164`
docker logs syslog-serve-dm 2>&1 | grep '\[SYSLOG_BUILD_READY\]' | tail -n 1
```
必须看到 `codeRevision=WEIBU_DIAGNOSTIC_V20260917_66`、`apiPullEnabled=true`,并确认
必须看到 `codeRevision=WEIBU_5S_50000_SCAN1S_V20260917_70`、`apiPullEnabled=true`、
`apiSchedulerScanIntervalMs=1000`,并确认
`deviceCollectId` 与设备 40 的 `DEVICE_DEVICE.DEVICE_COLLECT_ID` 一致。内网默认
`apiTlsVerifyEnabled=false`。
@@ -59,6 +61,11 @@ cat /tmp/weibu-40-task.json
```
必须确认 `deviceId=40`、`baseUrl=https://10.56.171.164`,且 `initialStartTime` 已经是真实时间,不再包含 `__INITIAL_START_TIME__`。
同时确认本次常规任务使用默认的 `lookbackSeconds=0`。只有现场确有迟到日志补偿需求并完成容量评估后,
才显式配置正数;微步接口没有已确认的分页游标,正数回看可能增加单个时间窗口的数据量。
还必须确认 `windowSizeSeconds=5`、`pageSize=50000`、`maxPagesPerRun=1`、
`pollIntervalSeconds=1` 和 `maxResponseBytes=67108864`。条数上限与响应字节上限同时生效;响应超过
64 MiB 时任务失败且不推进 checkpoint,不会截断后伪装成功。
```bash
docker exec -i syslog-serve-dm curl -fsS -X POST \
@@ -107,16 +114,16 @@ GET 必须返回 `collectionMode=API_ONLY`。此后 `10.56.171.164` 的 TCP/UDP
诊断接口复用任务中的设备地址、凭据、TLS 和超时配置,只把请求 JSON 原样发送给微步。
它不会写入 WAL/Kafka,不会推进 checkpoint,也不会在响应中返回 API Key、Secret 或签名 URL。
查询最近 10 分钟,单次最多请求 1000 条:
查询最近 5 秒,单次最多请求 50000 条:
```bash
TIME_TO=$(date +%s)
TIME_FROM=$((TIME_TO - 600))
TIME_FROM=$((TIME_TO - 5))
docker exec syslog-serve-dm curl -fsS -X POST \
'http://127.0.0.1:8189/syslogserve/api/api-pull-tasks/21/diagnostics/weibu-query' \
-H 'Content-Type: application/json' \
-d "{\"time_from\":${TIME_FROM},\"time_to\":${TIME_TO},\"sql\":\"\",\"assets_group\":[],\"columns\":[],\"size\":1000}"
-d "{\"time_from\":${TIME_FROM},\"time_to\":${TIME_TO},\"sql\":\"\",\"assets_group\":[],\"columns\":[],\"size\":50000}"
```
请求体不会限制微步字段,因此可以试验现场版本的页码和页大小字段。例如:
@@ -5,16 +5,16 @@
"streamKey": "WEIBU_LOG",
"baseUrl": "https://10.56.171.164",
"credentialRef": "weibu-40",
"pollIntervalSeconds": 30,
"pageSize": 1000,
"pollIntervalSeconds": 1,
"pageSize": 50000,
"maxPagesPerRun": 1,
"schedulerPriority": 0,
"connectTimeoutMs": 5000,
"requestTimeoutMs": 30000,
"windowSizeSeconds": 300,
"windowSizeSeconds": 5,
"safetyDelaySeconds": 120,
"lookbackSeconds": 300,
"maxResponseBytes": 16777216,
"lookbackSeconds": 0,
"maxResponseBytes": 67108864,
"initialStartTime": "__INITIAL_START_TIME__",
"extraConfig": {}
}