日志对于分析和排除与Linux中的系统和应用程序有关的任何问题非常有用。默认情况下,所有日志文件都位于基于Linux的操作系统中的/ var / log目录中。日志文件有几种类型,包括cron,内核,用户,安全性,其中大多数文件由Rsyslog服务控制。
Rsyslog是用于日志处理的功能强大且安全的系统。Rsyslog服务器通过网络从多个物理或虚拟服务器接收日志,并监视不同服务的运行状况。使用Rsyslog服务器,您可以从集中位置监视其他服务器,网络设备和远程应用程序的日志。
在本教程中,我们将说明如何在Ubuntu 18.04服务器上配置Rsyslog服务器。
先决条件
- 两台服务器运行Ubuntu 18.04。
- 在Rsyslog服务器计算机上配置了静态IP地址192.168.0.101,在Rsyslog客户端计算机上配置了192.168.0.102。
- 在两台服务器上都配置了root密码。
安装Rsyslog
默认情况下,Rsyslog安装在Ubuntu 18.04服务器中。如果未安装,则可以通过运行以下命令进行安装:
apt-get install rsyslog -y
安装Rsyslog后,可以使用以下命令检查Rsyslog的版本:
rsyslogd -v
您应该获得以下输出:
rsyslogd 8.32.0, compiled with: PLATFORM: x86_64-pc-linux-gnu PLATFORM (lsb_release -d): FEATURE_REGEXP: Yes GSSAPI Kerberos 5 support: Yes FEATURE_DEBUG (debug build, slow code): No 32bit Atomic operations supported: Yes 64bit Atomic operations supported: Yes memory allocator: system default Runtime Instrumentation (slow code): No uuid support: Yes systemd support: Yes Number of Bits in RainerScript integers: 64
有关更多信息,请参见http://www.rsyslog.com。
您还可以使用以下命令检查Rsyslog的状态:
systemctl status rsyslog
您应该看到以下输出:
? rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-10-22 04:28:55 UTC; 1min 31s ago Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/ Main PID: 724 (rsyslogd) Tasks: 4 (limit: 1114) CGroup: /system.slice/rsyslog.service ??724 /usr/sbin/rsyslogd -n Oct 22 04:28:53 ubuntu1804 systemd[1]: Starting System Logging Service... Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.32.0] Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's groupid changed to 106 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's userid changed to 102 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start Oct 22 04:28:55 ubuntu1804 systemd[1]: Started System Logging Service.
配置Rsyslog服务器
Rsyslog现在已安装并正在运行。接下来,您将需要配置它以在服务器模式下运行。您可以通过编辑文件/etc/rsyslog.conf来完成。
nano /etc/rsyslog.conf
首先,您将需要定义UDP或TCP或两者的协议。
要同时使用UDP和TCP连接,请搜索并取消注释以下行:
$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514
接下来,定义特定的子网,IP或域以限制访问,如下所示:
$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com $AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com
接下来,您将需要创建一个模板来告诉Rsyslog服务器如何存储传入的syslog消息。在GLOBAL DIRECTIVES部分之前添加以下行:
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs & ~
完成后保存并关闭文件。然后,使用以下命令检查Rsyslog配置是否存在语法错误:
rsyslogd -f /etc/rsyslog.conf -N1
您应该看到以下输出:
rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
最后,使用以下命令重新启动Rsyslog服务:
systemctl restart rsyslog
现在,使用以下命令验证Rsyslog是否正在侦听TCP / UDP:
netstat -4altunp | grep 514
您应该获得以下输出:
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1332/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 1332/rsyslogd
配置Rsyslog客户端
Rsyslog服务器已安装并配置为接收来自远程主机的日志。
现在,您将需要配置Rsyslog客户端以将syslog消息发送到远程Rsyslog服务器。
登录到客户端计算机并打开Rsyslog配置文件,如下所示:
nano /etc/rsyslog.conf
在文件末尾添加以下行:
##Enable sending of logs over UDP add the following line: *.* @192.168.0.101:514 ##Enable sending of logs over TCP add the following line: *.* @@192.168.0.101:514 ##Set disk queue when rsyslog server will be down: $ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
保存并关闭文件。然后,重新启动Rsyslog服务器以应用配置更改:
systemtcl restart rsyslog
查看客户端日志
此时,Rsyslog客户端已配置为将其日志发送到Rsyslog服务器。
现在,登录到Rsyslog服务器并检查/ var / log目录。您应该看到带有客户端计算机主机名的条目,包括几个日志文件:
ls /var/log/rsyslog-client/
输出:
CRON.log kernel.log rsyslogd-2039.log rsyslogd.log sudo.log wpa_supplicant.log
结论
在以上文章中,我们学习了如何在Ubuntu 18.04服务器上安装和配置Rsyslog服务器。我们还学习了如何配置Rsyslog客户端以将日志发送到Rsyslog服务器。如有任何问题,随时问我。
原文:https://www.howtoforge.com/how-to-setup-rsyslog-server-on-ubuntu-1804/