You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将轮转日志发送至rsyslog服务器?

如何将轮转日志发送至rsyslog服务器?

嗨,我完全懂你的困扰——用modfile只能同步正在运行的实时日志,那些已经轮转后被压缩成.gz的旧日志根本发不出去对吧?别慌,咱们分两步来搞定:处理已有的轮转日志,以及配置自动发送未来的轮转日志。

一、先把已有的压缩轮转日志发出去

你可以写个简单的shell脚本,批量解压并发送这些旧日志,再用定时任务自动跑。

  1. 创建脚本文件(比如send-rotated-logs.sh),内容如下:
#!/bin/bash
# 替换成你的日志目录
LOG_DIR="/var/log/your-app-logs"
# 替换成rsyslog服务器的IP或主机名
RSYSLOG_SERVER="192.168.1.100"
# rsyslog默认用UDP 514端口,用TCP的话换成-T参数和对应端口
LOG_PORT="514"

# 遍历目录下所有.gz压缩日志
for log_file in "$LOG_DIR"/*.gz; do
    if [ -f "$log_file" ]; then
        # 解压并通过logger发送到服务器,用rotated-log标签方便识别
        zcat "$log_file" | logger -t rotated-log -n "$RSYSLOG_SERVER" -P "$LOG_PORT"
        # 可选:发送完成后把文件移到存档目录,避免重复发送
        # mkdir -p "$LOG_DIR/archived"
        # mv "$log_file" "$LOG_DIR/archived/"
    fi
done
  1. 给脚本加执行权限:
chmod +x /path/to/send-rotated-logs.sh
  1. 用crontab设置定时任务,比如每天凌晨自动运行:
crontab -e

然后添加一行:

0 0 * * * /path/to/send-rotated-logs.sh >> /var/log/send-rotated-logs-cron.log 2>&1

二、让未来的轮转日志自动发送

调整logrotate的配置,让日志轮转完成后自动触发发送动作,不用每次手动处理。

找到你的应用对应的logrotate配置文件(通常在/etc/logrotate.d/目录下,比如/etc/logrotate.d/your-app),修改配置块,加上postrotate指令:

/var/log/your-app.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    postrotate
        # 发送刚轮转压缩后的日志文件
        zcat /var/log/your-app.log.1.gz | logger -t rotated-log -n 192.168.1.100 -P 514
    endscript
}
  • 如果你想在轮转前发送未压缩的原日志副本,就把postrotate换成prerotate,并把zcat改成cat。

三、确保rsyslog服务器能接收

服务器端的rsyslog配置要开启对应的接收模块,比如:

  • 要是用UDP,在/etc/rsyslog.conf里加:
module(load="imudp")
input(type="imudp" port="514")
  • 要是用TCP,就加:
module(load="imtcp")
input(type="imtcp" port="514")

然后配置规则把接收的轮转日志存到指定文件:

:msg, contains, "rotated-log" /var/log/received-rotated-logs.log

最后重启rsyslog服务:

systemctl restart rsyslog

小提醒

  • 确保运行脚本的用户(比如crontab用的root)有读取日志文件的权限
  • 检查服务器防火墙是否开放了514端口(UDP/TCP根据你用的协议)
  • 可以手动运行脚本测试,看看服务器端的日志文件是否有内容写入

备注:内容来源于stack exchange,提问作者Jessica Martinez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 11:09:51