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

最新syslog-ng Docker镜像启动失败:源文件未找到求助

解决syslog-ng Docker容器报错:Follow-mode file source not found

问题原因

报错提示/var/log/test_log不存在,因为你的syslog-ng配置中指定该文件作为日志源,但容器启动时该文件并未在容器内创建,也未从宿主机挂载对应文件。syslog-ng的file源默认以跟随模式运行,当目标文件不存在时会延迟尝试打开,从而抛出该警告。

解决方案

方案1:挂载宿主机文件到容器

  1. 在宿主机当前工作目录创建所需的日志文件:
touch test_log destination_log
  1. 修改Docker启动命令,添加文件挂载参数,将宿主机文件映射到容器内对应路径:
docker run --privileged -d -it \
  -v "$PWD/syslog-ng.conf":/etc/syslog-ng/syslog-ng.conf \
  -v "$PWD/test_log":/var/log/test_log \
  -v "$PWD/destination_log":/var/log/destination_log \
  --name syslog-ng balabit/syslog-ng:latest -edv

这种方式既解决了文件不存在的问题,还能在容器删除后保留日志数据。

方案2:修改syslog-ng配置自动创建文件

编辑syslog-ng.conf,给file源添加create(yes)参数,让syslog-ng自动创建不存在的源文件:

@version: 4.8
@include "scl.conf"

source s_local {
        file("/var/log/test_log" create(yes));
};

destination d_local {
        file("/var/log/destination_log");
};

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

保存配置后重启容器:

docker restart syslog-ng

注意:这种方式创建的文件仅存在于容器内部,容器删除后文件会丢失,适合临时测试场景。

内容的提问来源于stack exchange,提问作者Pavel Nikolaev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:37:37