我正在运行一个使用rotatelogs创build日志文件的Apache服务器。 它每天创build一个新的文件,附加date(例如filename.yyyy.mm.dd格式)。 我想使用rsyslog将这些日志传输到一个公共服务器,但问题是模块imFile的variables$ InputFileName需要实际的path,不接受任何variables或模板名称。 如何为$ InputFileName提供一个variables名,以便每天自动发送rotatelogs生成的新文件的日志?
我们有一个herokustream失到1个日志服务器。 有很多实例(〜100)使用TCP将其日志发送到此服务器。 服务器根据主机名过滤日志,并将其放入以主机名命名的目录中。 一切工作正常,但我注意到,当我检查打开描述符与lsof它达到1047后暂停。除了写入到单独的目录中的日志,每个日志命令都logging到syslog.log文件。 在第1047个FD打开后,该文件将继续更新。 这就是为什么我认为它不能打开更多的文件描述符。 我该如何解决这个问题?
我build立了一个可以从客户端接收消息的Rsyslog服务器。 问题是,一切都连接到/ var / log / syslog,所以我试图build立一个过滤服务器端。 我在/etc/rsyslog.conf的末尾添加了这一行: if $fromhost-ip == '123.123.123.123' then /var/log/clientA.log 但它根本不起作用(即使我用!=replace== !=这真的很奇怪)。 当然我不会忘记重新启动服务。 任何想法的欢迎。
我有一个应用程序的rsyslogconfiguration文件过滤日志,如下所示: if $msg contains 'sid:31147' then ~ if $programname == 'myprog' then /var/log/myprog.log &~ 这个想法是,如果消息中包含sid:31147则消息将被丢弃,否则将该消息转发到指定的日志目录并丢弃。 我的问题是,31147是每次重新启动时都会更改的进程的sid。 有没有办法dynamic设置sid的值? 我正在寻找的东西沿线: getsid=$(ps xao sid,comm | grep ossec-logcollec | cut -d' ' -f 1) if $msg contains 'sid:$getsid' then ~
我是rsyslog的新手,一直试图弄清楚为什么我没有收到我的Apache和mysql日志,这些日志在客户端configuration为通过rsyslog发送。 目前,我正在接收除Apache和MySQL以外的所有主机的所有其他types的日志。 我假设我的filter指令在服务器端的东西是错误的。 下面是我为mysql和apacheconfiguration的指令副本。 $template PerHostApacheError,"/syslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/error.log" $template PerHostApacheAccess,"/syslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/%msg:R,ERE,1,ZERO:imp:([a-zA-Z0-9\-]+)\.–end%-access.log" $template PerHostMySqld,"/syslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mysql.log" 我的问题是在服务器端的上述指令看起来是否正确? 如果不是,他们应该怎么样。 这些文档并没有真正显示应该如何使用它的例子,而是更多的是每个人的function。 另外,是否有一个选项可以捕获所有没有定义指令的消息 – 例如,将所有未通过指令定义的消息logging到每个主机的catchall.log文件中。 就像是: $template PerHostCatchAll,"/syslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/catchall.log 我在这里先向您的帮助表示感谢。
我正在为自动创build的虚拟机configuration安装脚本,这些虚拟机需要根据环境variables过滤rsyslogd中的系统日志消息。 我需要能够根据环境variables,命令输出或文件内容来更改日志发送的位置。 这可能与rsyslog?
我在一个centos 6.5(现在6.6)的机器上有一个非常好奇的问题。 在6月11日和10月21日之间的更新之后,麻烦开始了(包: http : //pastebin.com/gXvaycLL )。 十月份重新启动后,无法使用ssh在服务器上login。 客户端总是停止以下消息: ssh_exchange_identification:读取:通过对等方重置连接 我试图直接在服务器上login。 首先,我尝试使用控制台login。 input密码后,服务器通过说“密码不正确”拒绝。 在graphics模式下也是一样的。 但密码是正确的。 现在我find了一个解决办法:通过在bootmanager中追加selinux = 0来closuresselinux。 现在我能够login到服务器上的控制台。 此外,我无法login使用SSH(也使用本地主机)。 在此之后,我编辑/ etc / selinux / config并将SELINUX值从强制设置为允许以后禁用。 重新启动后,我无法login,即使我设置禁用。 login的唯一方法是设置selinux = 0。 现在我find了这个男的:rsyslog。 如果我禁用启动日志,一切都很好接受日志logging。 好奇的是:如果rsyslogd启动,所有其他服务,如Apache和MySQL工作正常。 这里是使用debug3的sshd日志的下半部分: […] debug1: Bind to port 22 on 0.0.0.0. Server listening on 0.0.0.0 port 22. debug2: fd 4 setting O_NONBLOCK debug1: Bind […]
我疯了 我试图让rsyslog发送日志文件到logentries.com。 这完美的工作,直到我尝试loginmysql-slow.log。 configuration非常简单 module(load="imfile" PollingInterval="1") #needs to be done just once # File 1 input(type="imfile" File="/var/lib/mysql/mysql-slow.log" Tag="mysql-slow" Severity="notice" StateFile="mysql-slow" Facility="local7" ) 如果我删除文件,并手动写入,我看到日志通过TCP并到达logentries.com 但是,如果MySQL写入到mysql-slow.log …什么也不是。 我试过更改权限/用户/组,但这没有什么区别。 如果我用Vim写这个文件的话,这是完美的,如果mysql没有任何东西的话。 我想不出什么可能会出错! 帮帮我! 干杯 艾伦
我将作为序言,我是一个Linux新手。 我build立了一个Debian Linux rsyslog服务器,但是我必须切换到Ubuntu。 我希望我能够复制configuration的部分,它会工作。 情况并非如此。 我的系统日志正在接收信息,但是它只是在默认文件/var/log/syslog 。 这是我目前的configuration,我已经编辑了注释的项目: $ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support $ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $RepeatedMsgReduction on $FileOwner syslog $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 $PrivDropToUser syslog $PrivDropToGroup syslog #this was a template […]
我使用rsyslog和imfile设置了日志转发。 我怎么能看到嵌套的日志文件? 现在我正在使用通配符来查看所有匹配log/*.log ,但是我有一个嵌套深度为1的日志,我需要转发: log/EventXXX/*.log 。 不幸的是,我不能改变这个目录结构,并且随着时间的推移,新的log/Event/目录会突然出现。 我知道不幸的是imfile目前不支持目录级通配符(只在文件级别)。