feat(syslog): 优化WAL配置并在入站阶段丢弃无效设备日志
- 默认在进入WAL前丢弃未注册、重复或未分配到当前探针的Syslog日志 - 使用后台设备内存快照,避免Netty网络线程访问Redis或达梦 - 增加Terminal审计开关,允许恢复原有逐条审计文件模式 - 历史WAL中的无效设备记录直接推进checkpoint - 增加无效设备丢弃、快照状态及刷新失败监控指标 - 生产WAL队列调整为20000条 - WAL待写预算和分段大小调整为2GiB - 同步生产配置、Docker Compose及升级文档 - 增加无效设备前置过滤和Terminal开关测试 chore(syslog): 统一生产环境 WAL 挂载目录 - 将生产环境 WAL 默认目录调整为 /app/logs/syslog-wal - Docker Compose 显式设置 SYSLOG_WAL_DIRECTORY - WAL 与应用日志共用 /app/logs 宿主机挂载 - 移除旧的 /data/syslog-archive 独立挂载 - 宿主机 WAL 路径统一为 /home/syslog/logs/syslog-wal
This commit is contained in:
@@ -23,12 +23,25 @@ services:
|
||||
- SYSLOG_SERVER_ENABLED=true
|
||||
# 设备上送日志为 UTF-8;显式声明,Netty 与 WAL 共用 Spring 配置。
|
||||
- SYSLOG_CHARSET=UTF-8
|
||||
# WAL 与应用日志共用宿主机挂载,但使用独立子目录,便于识别和清理。
|
||||
- SYSLOG_WAL_DIRECTORY=/app/logs/syslog-wal
|
||||
# 128KiB 及以上走大日志 Topic,单条最多接纳 6MiB;WAL/Dispatcher 均按字节背压。
|
||||
- SYSLOG_MAX_FRAME_LENGTH=6291456
|
||||
- SYSLOG_MESSAGE_MAX_BYTES=6291456
|
||||
- SYSLOG_LARGE_MESSAGE_THRESHOLD_BYTES=131072
|
||||
- SYSLOG_WAL_MAX_PENDING_BYTES=268435456
|
||||
- SYSLOG_DISPATCH_MAX_INFLIGHT_BYTES=268435456
|
||||
# 200KiB/条容量基线:2GiB 字节预算在 70% 时约 7,300 条 / 1.4GiB 触发 TCP 背压。
|
||||
- SYSLOG_WAL_QUEUE_CAPACITY=20000
|
||||
- SYSLOG_WAL_MAX_PENDING_BYTES=2147483648
|
||||
- SYSLOG_WAL_HIGH_WATERMARK_PERCENT=70
|
||||
- SYSLOG_WAL_LOW_WATERMARK_PERCENT=40
|
||||
- SYSLOG_WAL_FLUSH_RECORDS=200
|
||||
- SYSLOG_WAL_FLUSH_INTERVAL_MS=100
|
||||
- SYSLOG_WAL_SEGMENT_MAX_BYTES=2147483648
|
||||
- SYSLOG_DISPATCH_WORKER_THREADS=8
|
||||
- SYSLOG_DISPATCH_MAX_INFLIGHT=5000
|
||||
- SYSLOG_DISPATCH_MAX_INFLIGHT_BYTES=1073741824
|
||||
# false:无效设备正文不进 WAL,仅按缓存周期打印 IP;true:写 WAL 和逐条 Terminal 审计。
|
||||
- SYSLOG_DISPATCH_TERMINAL_RECORD_ENABLED=false
|
||||
- TZ=Asia/Shanghai
|
||||
# 探针标识ID
|
||||
- APP_SERVICE_DEVICE_COLLECT_ID=1
|
||||
@@ -52,6 +65,7 @@ services:
|
||||
- SPRING_KAFKA_PRODUCER_TOPIC=agent-01-syslog-topic
|
||||
- KAFKA_PRODUCER_LARGE_TOPIC=agent-01-syslog-topic.large
|
||||
- KAFKA_PRODUCER_MAX_REQUEST_SIZE=33554432
|
||||
- SPRING_KAFKA_PRODUCER_PROPERTIES_BUFFER_MEMORY=536870912
|
||||
# 仅兼容仍使用独立原文归档的旧版 JAR;当前 WAL 版本已删除该 Java 实现。
|
||||
- SYSLOG_RAW_ARCHIVE_ENABLED=false
|
||||
- SYSLOG_RAW_ARCHIVE_DIRECTORY=/data/syslog-archive
|
||||
@@ -78,16 +92,15 @@ services:
|
||||
|
||||
# 定时任务配置
|
||||
- SPRING_TASK_SCHEDULING_POOL_SIZE=5
|
||||
# JVM配置
|
||||
- JAVA_OPTS=-Xms2048m -Xmx4096m -XX:+UseG1GC
|
||||
# JAVA_TOOL_OPTIONS 会被 JVM 自动读取;Dockerfile 的启动命令不会展开 JAVA_OPTS。
|
||||
- JAVA_TOOL_OPTIONS=-Xms8g -Xmx24g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MaxDirectMemorySize=8g -XX:+ExitOnOutOfMemoryError
|
||||
ports:
|
||||
- "8189:8189" # API端口
|
||||
- "514:514/udp" # Syslog UDP
|
||||
- "514:514/tcp" # Syslog TCP
|
||||
volumes:
|
||||
# 宿主机 /home/syslog/logs/syslog-wal 对应容器内 WAL 目录 /app/logs/syslog-wal。
|
||||
- /home/syslog/logs:/app/logs
|
||||
# 原始日志必须放在宿主机持久化盘,不能写入容器临时层。
|
||||
- /home/syslog/raw-archive:/data/syslog-archive
|
||||
networks:
|
||||
- xdr-network
|
||||
cap_add:
|
||||
|
||||
Reference in New Issue
Block a user