问题描述
我想将Ubuntu配置为从DD-WRT路由器接收日志。路由器的配置屏幕包含以下部分:
并且其logging documentation读取:
If you wish to send logs to a remote system, enter the IP address of that machine which is also running a syslog utility (it needs an open network socket in order to accept logs being sent by the router).
我以前从未(知道)使用过syslog。我需要在Ubuntu中做什么才能使其接收这些日志?
最佳思路
接收日志的主机将需要运行一些配置为侦听远程日志的syslog守护程序。 Ubuntu中有许多syslog实现,但是通常建议使用rsyslog
,并且应默认安装。我无法从发布的链接中的文档中得知DD-WRT是通过TCP还是UDP发送日志,因此如果您担心减少主机上的network-accessible端口数量,可能需要进行一些实验才能找到正确的设置。
有两种方法可以启用此功能:第一种较为简单,但是在系统升级时可能需要re-integration。第二个稍微复杂一些,如果在更新中对syslog配置进行了重大更改,则可能导致令人困惑的结果。我会选择第二个,但您的偏好可能会有所不同。
首先是编辑/etc/rsyslogd.conf
,并从以下几行中删除初始的#
:
#$ModLoad imudp
#$UDPServerRun 514
要么
#$ModLoad imtcp
#$InputTCPServerRun 514
第二种是创建一个新文件,其内容可能在/etc/rsyslog.d/
中名为local-enable-tcp.conf
,其内容如下:
# enable TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
如果要使用单独的文件方法,并且需要UDP,请更改内容以匹配上面的UDP节。特定的文件名并不重要,但是建议使用”local-“开头,因为此名称空间是为本地管理员配置保留的,并且它必须以”.conf”结尾,因为只有这样结尾的文件会自动包含在rsyslog配置中。
如果您希望使用其他syslog实现,请检查该实现的配置和文档:缺省情况下,很可能已将syslog守护程序配置为不在网络上侦听,但应明确记录启用此常见情况的示例配置。
次佳思路
另一个选择是使用syslog-ng,易于使用,到目前为止可以使用!
sudo apt-get install syslog-ng
安装后,我们在/etc/syslog-ng/syslog-ng.conf中有一个conf文件。因此,只需使用我们的参数编辑该.conf文件,但是在此之前,请备份默认配置文件,如果以后需要调整一些内容,可以在以后使用参数
sudo mv /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak
现在创建新的配置文件并对其进行编辑!
sudo touch /etc/syslog-ng/syslog-ng.conf
sudo nano /etc/syslog-ng/syslog-ng.conf
因此,只需粘贴此基本配置即可正常工作:
# Listening to incoming UDP Syslog connections
source mysource { udp(); };
#Add the syslog targets:
destination dest { file("/var/log/Cisco$YEAR$MONTH$R_DAY.log"); };
#destination dest_other_server { udp("1.2.3.4" port(514)); };
#Create the filters that will be used to determine what to do with the received syslog message
#filter filter { ( host("2.3.4.5") and level(notice) and match("username=.*@domain\.local" value("MESSAGE") flags("utf8" "ignore-case")) ); };
filter myfilter { ( level(notice) ); };
#And putting it all together:
log { source(mysource); filter(myfilter); destination(dest); };
如您所见,很容易。照顾自己!