首页/系统与基础设施/自动化运维速查/批量执行的日志聚合方式
批量执行与作业50 条

批量执行的日志聚合方式

日志聚合把分散在各执行点的日志集中成可检索、可归档的记录,做法有按批次落盘、系统日志转发、采集代理上报三类。每行必须能定位到主机与执行批次,标准输出与标准错误分开收集,并且必须有轮转与容量告警,否则一次大批量执行就能写满磁盘。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​​‌‌​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​‌​‌​‌‌‌‌​​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​‌‌​​​‌‌​‌‌‌‌​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌‌‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​​‌‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

批量执行日志聚合

日志聚合是把分散在各执行点上的日志集中成可检索、可归档的一套记录。做法分三类:按执行批次落盘到独立目录、通过系统日志转发到中心、由采集代理持续上报。关键设计要求有三点:每行都能定位到主机与执行批次(时间戳、主机名、执行标识);标准输出与标准错误分开收集,否则错误信息会被正常输出淹没;必须有轮转与保留策略和容量告警,因为一次大批量执行产生的日志量足以把磁盘写满。

基本信息

组织方式每主机独立文件、按执行批次建目录、集中式日志平台
必备字段时间戳、主机名、执行标识、阶段、退出码
分离要求标准输出与标准错误分开保存
运维要求轮转、压缩、保留期与容量告警

典型使用场景

  • 批量执行后需要回溯某台主机的具体报错
  • 需要按批次归档日志,供事后审计与复盘
  • 需要跨主机检索同类错误,判断是否系统性问题
  • 需要把执行日志接入监控告警做自动判定
  • 需要在有限磁盘上保留足够长的历史

按批次聚合与轮转

按批次聚合与轮转
run_id=$(date +%Y%m%d-%H%M%S)                 # 每次执行一个批次目录
logdir="/var/log/batch/$run_id"; mkdir -p "$logdir"
while read -r h; do
  ssh -n "$h" '/opt/bin/deploy.sh' >"$logdir/$h.out" 2>"$logdir/$h.err" &   # 分离输出
  wait_n 8                                     # 控制并发,避免日志同时涌入
done < hosts; wait
printf '%s %s\n' "$run_id" "$logdir" >> /var/log/batch/index.txt   # 索引便于定位
find /var/log/batch -maxdepth 1 -type d -mtime +30 -exec rm -rf {} +   # 保留 30 天

聚合方式对比

组织方式优点风险
每主机独立文件定位快,互不干扰文件数量多,必须配套清理策略
按批次建目录便于整体归档与回放单批次目录体积可能很大
系统日志转发与其他系统日志统一检索日志量过大时可能被丢弃
采集代理上报近实时且结构化需在目标端部署与维护代理
是否会丢日志取决于配置:系统日志在远端不可达时会缓冲,缓冲写满后按策略丢弃。关键执行日志最好在本地同时保留一份,避免中心故障时证据一并丢失。
没有轮转与容量告警的日志目录会在一次大批量执行中把磁盘写满,进而让服务写不了日志甚至写不了数据文件,把一次变更问题放大成系统故障。

易错点

  • 并行任务共同追加同一个日志文件,内容交错损坏且无法按主机拆分
  • 只收集标准输出不收集标准错误,失败原因全部丢失
  • 日志没有轮转与保留策略,一次大批量执行就把磁盘写满
  • 日志缺少主机名与执行标识,事后无法把某行错误对应到具体目标

数据来源与参考

  • rsyslog 官方文档:转发、缓冲与队列配置
  • logrotate 手册页:轮转与保留策略
  • systemd 官方文档:journald 的持久化与容量限制

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/batch-execution-log-aggregation.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​​‌‌​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​‌​‌​‌‌‌‌​​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​‌‌​​​‌‌​‌‌‌‌​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌‌‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​​‌‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​