rsyslog omfile写入失败
问题描述
我配置了local0级别的消息全部都往/root/workspace/local1中写入,同时使用imfile的input读取/root/workspace/local1的内容并写入到/root/workspace/local2文件中
问题现象:
local1中每次运行php脚本都可以看到结果,但是local2中只有每次启动的一瞬间才会有数据写入,之后没有任何改变。
相关代码
rsyslog配置信息
$ModLoad imuxsock
module(load = "mmjsonparse")
module(load="imfile" )
module(load="omuxsock")
module(load="omfile")
$DebugFile /var/log/rsyslog.debug
$DebugLevel 1
global(WorkDirectory = "/data1/rsyslog/workdir")
template (
name = "msg_with_control_flags_tpl"
type = "string"
string = "<%pri%>%timereported% %$.control_flags% %syslogtag% %$!%\n"
)
if $syslogfacility-text == 'local0' then {
call rule1
}
ruleset(name="rule1") {
action(type="omfile" file="/root/workspace/local1")
}
input(type="imfile" file="/root/workspace/local1" Ruleset="rule2" tag="file" Facility="local1")
ruleset(name="rule2") {
action(type="omfile" file="/root/workspace/local2" ioBufferSize = "64K" template="msg_with_control_flags_tpl" dirCreateMode="0700" FileCreateMode="0644")
}
php的测试脚本
<?php
openlog('USER-LOG', LOG_PID, LOG_LOCAL0);
syslog(LOG_INFO, 'ERROR!!!');
问题出现的平台版本及自己尝试过哪些方法
rsyslog版本信息
rsyslogd 8.2004.0 (aka 2020.04) compiled with:
PLATFORM: x86_64-redhat-linux-gnu
PLATFORM (lsb_release -d):
FEATURE_REGEXP: Yes
GSSAPI Kerberos 5 support: No
FEATURE_DEBUG (debug build, slow code): No
32bit Atomic operations supported: Yes
64bit Atomic operations supported: Yes
memory allocator: system default
Runtime Instrumentation (slow code): No
uuid support: Yes
systemd support: No
Config file: /etc/rsyslog.conf
PID file: /var/run/syslogd.pid
Number of Bits in RainerScript integers: 64
See https://www.rsyslog.com for more information.
系统发型版本
CentOS release 6.7 (Final)
Kernel \r on an \m
你期待的结果是什么?实际看到的错误信息又是什么?
local2文件有更新
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
补充未提到的信息,centos运行在docker中
问题原因
该问题大概率是由于imfile默认使用ifnotiy方式来获取文件更新信息,而docker对于非挂载目录无法获取到更新,导致问题。
解决方案