我想配置 Ubuntu 以接收来自 DD-WRT 路由器的日志。路由器的配置屏幕包含以下部分:
和它的日志记录文档内容如下:
如果您希望将日志发送到远程系统,请输入该机器的 IP 地址,该机器也运行 syslog 实用程序(它需要一个开放的网络套接字才能接受路由器发送的日志)。
我以前从未(有意)使用过 syslog。我需要在 Ubuntu 中做什么才能允许它接收这些日志?
答案1
接收日志的主机需要运行一些配置为监听远程日志的 syslog 守护程序。Ubuntu 中有许多 syslog 实现,但rsyslog
通常建议使用,并且应该默认安装。我无法从您发布的链接中的文档中判断 DD-WRT 是通过 TCP 还是 UDP 发送日志,因此如果您担心减少主机上可访问网络的端口数量,可能需要进行一些实验才能找到正确的设置。
有两种方法可以实现这一点:第一种方法比较简单,但系统升级时可能需要重新集成。第二种方法稍微复杂一些,如果在更新过程中对 syslog 配置进行了重大更改,可能会导致令人困惑的结果。我会选择第二种,但您的偏好可能会有所不同。
第一种是编辑,并删除以下几行中的/etc/rsyslogd.conf
首字母:#
#$ModLoad imudp #$UDP服务器运行514
或者
#$ModLoad imtcp #$输入TCP服务器运行 514
第二种是创建一个新文件,可能命名local-enable-tcp.conf
为/etc/rsyslog.d/
,内容如下:
# 启用 TCP 系统日志接收 $ModLoad imtcp $输入TCP服务器运行 514
如果您想使用单独的文件方法,并且需要 UDP,请更改内容以匹配上面的 UDP 节。具体文件名并不重要,但建议以“local-”开头,因为此命名空间是为本地管理员配置保留的,并且必须以“.conf”结尾,因为只有以此结尾的文件才会自动包含在 rsyslog 配置中。
如果您希望使用其他 syslog 实现,请检查该实现的配置和文档:syslog 守护进程很可能配置为默认不监听网络,但启用这种常见情况的示例配置应该有明确的记录。
答案2
另一个选择是使用 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); };
如你所见,很简单。保重!
答案3
基本上,您在服务器上运行一个守护进程(称为 syslogd),以便 dd-wrt 路由器发布日志。
教程- http://www.techiecorner.com/1479/how-to-setup-syslog-server-in-ubuntu/