首页 > 代码库 > logstash结合rsyslog,收集系统日志

logstash结合rsyslog,收集系统日志

rsyslog是日志收集工具,现在很多Linux都自带rsyslog,用其替换掉syslog。如何安装rsyslog就不讲了,大概讲下原理,然后讲logstash的相关配置。

rsyslog本身有一个配置文件 /etc/rsyslog.conf,里面定义了日志文件,以及相应保存的地址,以下述语句为例:

local7.*                                                /var/log/boot.log

他表明所有以local17.开头的日志文件都记录到 /var/log/boot.log。

上面提到它是日志收集工具,体现在,不仅仅可以收集本机的日志,还可以收集其他机器的日志。那么如何让它收集呢?

去掉/ect/rsyslog.conf下面两行的注释:

#$ModLoad imudp
#$UDPServerRun 514

然后启动时,添加-r,这样,它就用514端口监听。当然,这和我们这里logstash没有什么必然的关系。

下面讲logstash的配置:

很简单,配置文件的input加入syslog:

syslog{

   port = "5514"

}

logstash是配置好了,但rsyslog怎么知道要发给你呢?也很简单,在/etc/rsyslog.conf中加入如下一行:

*.*  @@ip:5514


注意,@@和前面的*,要用Tab分隔。Ok。

如果你想检验的话,在shell中输入如下命令:

logger "Hello world!"

logstash能接收到就表示Ok了。


 

 

logstash结合rsyslog,收集系统日志