云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 18.04上配置Rsyslog集中式日志服务器的方法

在Ubuntu 18.04上配置Rsyslog集中式日志服务器的方法

2019-02-22 10:31:12作者:增致远稿源:云网牛站

本文介绍在Ubuntu 18.04操作系统上配置Rsyslog集中式日志服务器的方法。

 

前言

登录任何Linux系统对于分析和排除与系统和应用程序相关的任何问题至关重要,借助Graylog等工具(参考:在Ubuntu 18.04上安装及配置Graylog server的方法),你可以轻松地将这些日志发送到集中平台,以便轻松实现可视化。

在Linux上,默认情况下,所有日志文件都位于/var/log目录下,有几种类型的日志文件存储不同的消息,可以是cron,内核,安全性,事件,用户,这些日志文件大多由rsyslog服务控制。

在最近使用systemd的系统上,一些日志由journald守护程序管理,它们是二进制格式的,这些日志是易失性的,因为它们被写入RAM并且不能承受系统重启,它们经常在/run/log/journal/上找到,但请注意,也可以将journald配置为通过写入文件来永久存储日志消息。

我们将把rsyslog服务器配置为集中式日志管理系统,rsyslog服务将侦听udp/tcp端口, rsyslog使用的默认端口是514,在客户端系统上,rsyslog将通过UDP或TCP端口通过网络收集日志并将日志发送到rsyslog服务器。

使用syslog消息时,存在表征日志文件的优先级/严重性级别,即:

emerg,panic(紧急):0级 - 这是最低的日志级别,系统无法使用。

警报(警报):1级 - 必须立即采取行动。

错误(错误):3级 - 危急情况。

警告(警告):等级4 - 警告条件。

通知(通知):第5级 - 正常但重要的条件。

info(信息):6级 - 信息性消息。

debug(Debugging):Level 7 - 这是最高级别 - 调试级别的消息。

 

安装Rsyslog

默认情况下,在Ubuntu 18.04系统上Rsyslog安装非常的简单,只需要一个命令,你可以通过运行以下命令来安装它:

sudo apt-get install rsyslog

安装后,检查服务以查看它是否正在运行,运行sudo systemctl status rsyslog命令即可:

在Ubuntu 18.04上配置Rsyslog集中式日志服务器的方法

 

配置rsyslog以在服务器模式下运行

现在配置rsyslog服务以在服务器模式下运行:

sudo vim /etc/rsyslog.conf

取消注释udp和tcp端口绑定的行:

module(load="imudp")

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

# provides TCP syslog reception

module(load="imtcp")

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

如果你想限制访问特定子网,IP或域,请添加如下:

$AllowedSender TCP, 127.0.0.1, 192.168.10.0/24, *.example.com

可以在输入input(type="imtcp" port="514")行后添加上面的行,请记住用正确的值替换给定的值。

 

创建用于接收远程消息的新模板

让我们创建一个模板,指示rsyslog服务器如何存储传入的syslog消息,在GLOBAL DIRECTIVES部分之前添加模板:

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 

*.* ?remote-incoming-logs

& ~

收到的日志将使用上面的模板进行解析并存储在目录/var/log/中,文件命名遵循约定:%HOSTNAME% and %PROGRAMNAME%变量,即客户端主机名和生成日志消息的客户端工具:

在Ubuntu 18.04上配置Rsyslog集中式日志服务器的方法

& ~指示rsyslog守护程序仅将日志消息存储到指定的文件。

可以使用的其它变量包括:

%syslogseverity%, %syslogfacility%, %timegenerated%, %HOSTNAME%, %syslogtag%, %msg%, %FROMHOST-IP%, %PRI%, %MSGID%, %APP-NAME%, %TIMESTAMP%, %$year%, %$month%, %$day%

重新启动rsyslog服务以使更改生效:

sudo systemctl restart rsyslog

确认服务是否正在侦听已配置的端口:

$ ss -tunelp | grep 514

在Ubuntu 18.04上配置Rsyslog集中式日志服务器的方法

 

配置Rsyslog防火墙

如果你的ufw防火墙服务正在运行,请允许rsyslog防火墙端口:

sudo ufw allow 514/tcp

sudo ufw allow 514/udp

参考:Debian、Ubuntu、Linux Mint系统中的UFW防火墙入门教程

 

将Rsyslog配置为客户端

完成rsyslog服务器的配置后,请转到rsyslog客户端计算机并配置它们以将日志发送到远程rsyslog服务器:

sudo vim /etc/rsyslog.conf

允许保留FQDN:

$PreserveFQDN on

最后添加远程rsyslog服务器:

*.* @ip-address-of-rsysog-server:514

还可以使用FQDN而不是服务器IP地址:

*.* @fqdn-of-rsysog-server:514

以上行将允许通过UDP发送日志,因为tcp使用@@而不是单个@:

*.* @@ip-address-of-rsysog-server:514

或者:

*.* @@fqdn-of-rsysog-server:514

当rsyslog服务器关闭时,还要添加以下内容:

$ActionQueueFileName queue

$ActionQueueMaxDiskSpace 1g

$ActionQueueSaveOnShutdown on

$ActionQueueType LinkedList

$ActionResumeRetryCount -1

然后重启rsyslog服务:

sudo systemtcl restart rsyslog

至此,配置完成。

 

相关主题

在Debian 9上使用Rsyslog安装一台中央日志服务器

精选文章
热门文章