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

syslog-ng配置咨询:如何按进程拆分日志文件

syslog-ng配置咨询:如何按进程拆分日志文件

当然可以实现这个需求啦!syslog-ng自带的宏就能帮你轻松按进程拆分日志,具体操作很简单,看下面的说明:

首先,你需要了解syslog-ng里的PROGRAM宏——它会自动提取日志行里的进程名称,还能智能去掉后面跟着的PID(比如日志里的CRON[2342925],PROGRAM宏会只保留CRON),完全匹配你想要的按进程拆分的需求。

接下来只需要修改你的destination配置部分,把原来按FACILITY命名日志文件的逻辑,换成用PROGRAM即可,同时保留按IP分目录的结构。

修改后的完整配置如下:

source s_network_udp {
    syslog(transport(udp) port(514));
};

destination d_local {
    file("/var/log/${HOST}/${PROGRAM}.log" create_dirs(yes));
};

log {
    source(s_network_udp);
    destination(d_local);
};

配置生效后,你会得到这样的文件结构:

  • ./0.0.0.1/systemd-resolved.log
  • ./0.0.0.1/CRON.log
  • ./0.0.0.2/systemd-resolved.log
  • ./0.0.0.2/CRON.log
    ...
    原来混在daemon.log里的不同进程日志,现在都会各自存到对应的进程名日志文件中,完美解决你的问题~

最后给你几个小提醒:

  • 修改完配置后,先运行syslog-ng -s检查语法是否正确,没问题再重启syslog-ng服务;
  • 如果遇到进程名包含特殊字符(比如空格、斜杠)的情况,可以用syslog-ng的模板功能来格式化进程名,替换掉特殊字符;
  • 按进程拆分后日志文件数量可能会增多,记得配置logrotate这类工具进行日志轮转,避免磁盘空间被占满。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 13:09:35