Linux环境下如何查看Docker容器内的syslog日志?
Docker容器日志与Splunk同步异常排查指南
1. command not found报错原因
你直接输入的var/log/syslog是文件路径而非可执行命令,自然会触发报错。如果要读取该路径的日志,需要使用文件查看命令,示例如下:
- 查看全量日志内容:
cat /var/log/syslog(注意路径开头要加根路径斜杠/,否则会默认查找当前工作目录下的var/log/syslog,大概率不存在) - 实时查看最新滚动日志:
tail -f /var/log/syslog
2. Docker Desktop CLI入口有效性说明
你截图中点击的CLI按钮是进入容器内部的正确入口,本质等价于执行docker exec -it <容器ID/名称> <shell程序>命令,进入后操作的就是容器内部的文件系统,入口本身没有问题。
3. 容器日志排查的标准流程
- 优先排查Docker默认采集的日志:大部分容器化应用会默认把日志输出到标准输出(stdout)/标准错误(stderr),这种情况完全不需要进入容器,直接在Docker Desktop容器详情的「日志」标签页即可查看,或者在本地终端执行
docker logs <容器ID/名称>获取日志。 - 确认应用日志输出规则:不是所有容器都预装syslog服务,也不是所有应用都会把日志写入
/var/log/syslog。可以先找开发确认业务应用配置的日志存储路径,如果拿不到配置,可以在容器内执行命令搜索所有日志文件:find / -name "*.log" 2>/dev/null - Splunk转发异常校验:如果确认容器内存在日志文件,需要校验三点:Splunk Forwarder的采集配置是否包含对应日志路径、Forwarder与容器的网络连通性、Forwarder是否有对应日志文件的读取权限。
4. 常见概念误区澄清
- 容器是轻量化运行环境,默认只打包业务运行必需的组件,绝大多数基础镜像都没有预装syslog、vim这类常规系统工具,不要直接套用物理机/虚拟机的日志路径经验排查容器问题。
- 如果你排查后发现应用确实是输出到stdout/stderr,不需要额外改应用写文件,直接配置Splunk Forwarder采集Docker日志即可,适配性更高。
内容的提问来源于stack exchange,提问作者Kyle Vassella
相关产品推荐
相关产品推荐

