如何使用树莓派收集日志,安装和设置Syslog服务器

本篇文章记录下怎么把树莓派打造成一个Syslog服务器,做为日志服务中心,收集各个服务器的日志。

Raspberry-Pi-syslog-Server-thumbnail.jpg

Syslog是计算机系统用来向中央syslog服务器发送日志的协议,它通常在路由器等设备中实现,设置Raspberry Pi接受syslog消息还算简单,可以利用开源免费的rsyslog软件。

设备清单

下面是我用来设置Raspberry Pi syslog服务器使用的设备列表,点击链接可以直达特别优惠购买。

建议

可选

我在树莓派4上使用了最新版本的Buster系统测试了本教程。

配置Raspberry Pi环境

在配置树莓派成为sysnlog服务器之前,先准备下软件环境。

1. 从更新操作系统开始

这确保在Raspberry Pi上设置syslog服务器软件时,所有的软件包都是最新的,减少出错的可能性。

在系统上运行以下两个命令来更新软件包列表和已安装的软件包。

sudo apt update
sudo apt full-upgrade

2. 如果使用的是Raspberry Pi操作系统,应该已经预装了rsyslog。

如果没有安装该软件,请使用以下命令进行安装。

sudo apt install rsyslog

配置Rsyslog作为服务器

现在Raspberry Pi已经准备好了,终于可以配置Rsyslog软件来作为syslog服务器了。

启用Syslog以允许接收外部消息

需要修改Raspberry Pi的syslog配置,使它能监听 “514”端口的消息。

1. 默认情况下,Rsyslog没有监听任何syslog消息。

通过运行以下命令,使用nano文本编辑器开始编辑配置文件。

sudo nano /etc/rsyslog.conf

2. 在这个文件中,需要找到以下几行并取消注释:

可以去掉前面的标签(#)来取消这几行的注释。

需要删除下面几行。

#module(load="imudp")
#input(type="imudp" port="514")

#module(load="imtcp")
#input(type="imtcp" port="514")

完成后,这几行应该看起来像下面。

module(load="imudp")
input(type="imudp" port="514")

module(load="imtcp")
input(type="imtcp" port="514")

通过这样做,就可以重新配置rsyslog软件了,这样可以通过UDP和TCP协议向Raspberry Pi发送syslog消息。

3. 按CTRL+X,然后按Y,再按ENTER键保存文件。

创建一个新模板

现在Raspberry Pi的syslog服务器已经可以接受外部消息,但还需要创建一个模板。

这个模板会告诉syslog将收到的消息路由到哪里。为此,需要知道设备的IP地址。

1. 接下来,在”/etc/rsyslog.d “目录下创建一个配置文件。

在这个文件中,定义一个新的模板。此外,还需要指定一些配置来将系统日志消息路由到新的日志文件。

在这个例子中,我将这个文件称为 “labno3RouterLog.conf”。可以给这个文件随意取名字,但必须以”.conf “结尾。

sudo nano /etc/syslog.d/labno3RouterLog.conf

2. 在这个文件中,需要输入一些内容。

首先要做的是定义一个新的模板。

模板使用以下格式,告诉syslog服务器将日志保存到哪里。

$template NameForTemplate, "DirectoryWhereLogIs/logName.log

对于我的文件,我给这个模板命名为 “routerlog”,日志文件将存储在”/var/log/router.log”。

$template routerlog, "/var/log/router.log"

3. 为了将syslog消息重定向到新模板,还需要做一些额外的配置。

把 “IPADDRESSTOUSE “换成希望接收syslog消息的设备的IP,将 “templatename “换成你在上一步中指定的名称。

if $fromhost-ip startswith "IPADDRESSTOUSE" then -?templatename
& stop

在我的例子中,我使用IP地址 “192.168.0.1 “和模板名称 “routerlog”。

if $fromhost-ip startswith "192.168.0.1" then -?routerlog
& stop

4. 完成后,文件应该看起来像我下面的东西。

$template routerlog, "/var/log/router.log"

if $fromhost-ip startswith "192.168.0.1" then -?routerlog
& stop

可以按CTRL + X,然后按Y,接着按ENTER键来保存文件。

在Raspberry Pi上重启rsylog。

现在已经将Raspberry Pi的syslog服务器配置为接收外部消息,需要重新启动它,以便加载所有的配置更改,运行下面的命令重启rsyslog。

sudo systemctl restart rsyslog

结论

希望到这里,您已经成功地将您的Raspberry Pi设置为一个syslog服务器。现在需要做的就是在你使用的设备上启用syslog协议,并将其指向你的Raspberry Pi的IP。Raspberry Pi将开始接收来自设备的日志消息,并将它们保存到您为该模板指定的日志文件中。

如果你在使用过程中遇到任何问题,请在下面留言。

平均: 5 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 如何使用树莓派收集日志,安装和设置Syslog服务器

赞 (1)

评论

4+8=