contact@yottabyte.cn
400-085-0159
调查问卷
J

数据接收

rsyslog相关问题

设置UDP/TCP

为使rsyslog接收所有事件,请确保以下几行注释被取消掉:

#provides UDP syslog reception
$ModLoad imudp 
$UDPServerRun 514

#provides TCP syslog reception
$ModLoad imtcp 
$UDPServerRun 514

改变单条事件最大容量限制

为了上传某些非常长的日志行(例如JSON),您需要上调由rsyslog协议允许的单条日志的最大值,请确保配置中有这样一条代码:

$MaxMessageSize 64k

等待几分钟

在传送数据后请等待几分钟,建立索引的过程需要花费少许时间,通常这个时间只有几十秒,但有时候因为日志在网络传输过程的延时,您需要再多等一会儿。

检查日志易状态

如果日志上传后却看不到搜索数据,请检查状态页,查看我们的日志索引和搜索是否正在运行。绿色圆点表示运行正常,您还能看到“所有系统在运行”的提示。红色圆点表示没有正常运行,下方会给出错误原因。

检查rsyslog配置

确定您已经重启rsyslog,重启后您的操作才会生效:

sudo service rsyslog restart

确保rsyslog正在运行,运行以下命令,如果rsyslog没有返回任何结果则说明没在运行:

ps -A | grep rsyslog

检查rsyslog配置,运行以下命令,配置正确则不会出现错误列表:

rsyslogd -N1

查看您的rsyslog版本,应当是5.8或更高版本:

rsyslogd -version

检查Linux系统日志中的rsyslog错误,您应当会看到一个事件的开始并且没有错误,有些日志也可能在/var/log/syslog:

sudo cat /var/log/messages | grep rsyslog

检查rsyslog权限,检查被监控文件是否可被读取,如果需要请在rsyslog.conf文件中改变权限:

$PrivDropToUser adm

检查数据传送

使用netstat来验证rsyslog是否已与日志易建立连接,特别需要检查的是日志易使用的端口是否可以穿越您的防火墙。请确认防火墙允许rsyslog端口514,及HTTP端口80通过:

sudo netstat -taupn | grep syslog

使用telnet来验证是否可以从外部连接到日志易,例如rsyslog是通过514端口,如果无法链接成功则可能是网络或防火墙设置问题:

telnet log.rizhiyi.com 514

使用tcpdump验证数据是否被发送到日志易,如果tcpdump正在使用明文传送事件,您应当在左侧栏看到事件:

sudo tcpdump -A dst log.rizhiyi.com

如果您的应用程序通过rsyslog记录日志,您也可以测试看rsyslog是否把消息从TCP传到本地主机:

sudo tcpdump -i lo -A tcp and port 514

疑难解答

如果rsyslog上传数据到服务器,该服务器发生故障,那么所有操作都将被阻止。数据会被存储在内存中直到问题解决。但是如果您重启服务器却并没有为事件写入磁盘做好配置,那么有可能会导致日志数据丢失。

如果Linux系统的hostname被设置为localhost怎么办?

rsyslog配置脚本会读取Linux系统的hostname作为日志上传的主机名。如果Linux系统设置hostname为localhost,会导致出错,因为日志易要求上传日志的hostname必须唯一以区别日志来源主机。这种情况下,需要使用hostname命令为系统设置唯一的主机名,并重启rsyslog。