本文介绍在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命令即可:
配置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%变量,即客户端主机名和生成日志消息的客户端工具:
& ~指示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
配置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 至此,配置完成。
相关主题 |