如何在 CentOS 8 / RHEL 8 上设置集中式 SysLog 服务器

今天我们将在 CentOS 8 / RHEL 8 上设置一个集中的 syslog 服务器,让 Linux admin 在一个地方读取多个服务器日志。

Linux 标签(auth、cron、FTP、LPR、authpriv、新闻、邮件、系统日志等)日志消息以指示生成具有严重性的消息的软件类型(警报、严重、警告、通知、信息等) …)。

你可以找到更多信息 消息标签严重程度

环境

两台 Linux 服务器(服务器和客户端)。

server.itzgeek.local 192.168.0.10

client.itzgeek.local 192.168.0.20

服务器设置

安装 日志 如果软件包不存在,请在 syslog 服务器上安装软件包。

dnf install -y rsyslog

编辑 /etc/rsyslog.conf 文件。

vi /etc/rsyslog.conf

协议

Rsyslog 支持 UDP 和 TCP 协议来接收日志。 由您决定要使用哪种协议。

Rsyslog 建议使用 TCP 协议进行可靠的日志传送。

UDP

取消注释以下内容以使系统日志服务器能够侦听 UDP 端口。

从:

# Provides UDP syslog reception # for parameters see https://www.rsyslog.com/doc/imudp.html # module(load="imudp") # needs to be done just once # input(type="imudp" port="514")

到:

# Provides UDP syslog reception # for parameters see https://www.rsyslog.com/doc/imudp.html module(load="imudp") # needs to be done just once input(type="imudp" port="514") 

TCP

取消注释以下内容以使系统日志服务器能够侦听 TCP 端口。

从:

# Provides TCP syslog reception # for parameters see https://www.rsyslog.com/doc/imtcp.html #module(load="imtcp") # needs to be done just once #input(type="imtcp" port="514")

到:

# Provides TCP syslog reception # for parameters see https://www.rsyslog.com/doc/imtcp.html module(load="imtcp") # needs to be done just once input(type="imtcp" port="514") 

重启系统日志服务

systemctl restart rsyslog

验证 syslog 服务器侦听端口 514。

netstat -antup | grep 514

输出:

udp        0      0 0.0.0.0:514             0.0.0.0:*                           30918/rsyslogd       udp6       0      0 :::514                  :::*                                30918/rsyslogd     

客户端设置

安装 日志 包在客户端上,以防包不存在。

dnf install -y rsyslog

编辑 /etc/rsyslog.conf 文件。

vi /etc/rsyslog.conf

在文件末尾,放置以下行以将客户端的日志消息转发到中央系统日志服务器。

数据传输协议:

action(type="omfwd" Target="192.168.0.10" Port="514" Protocol="udp")

TCP:

action(type="omfwd" Target="192.168.0.10" Port="514" Protocol="tcp")

您还可以在 Target 中使用主机名。

重启系统日志服务

systemctl restart rsyslog

现在所有的消息日志都被发送到中央服务器,并且它也在本地保存副本。

防火墙

如果系统有 FirewallD,请在 syslog 服务器上运行以下命令以接受端口 514 上的传入流量。

数据传输协议:

firewall-cmd --permanent --add-port=514/udp   firewall-cmd --reload

TCP:

firewall-cmd --permanent --add-port=514/tcp  firewall-cmd --reload

证实

转到系统日志服务器并查看消息日志文件。

tail -f /var/log/messages

我已经在客户端机器上安装并启动了 vsftpd,你可以看到两者都记录在 syslog 服务器中。

Jan 31 03:21:07 client systemd[1]: Stopping System Logging Service... Jan 31 03:21:08 client rsyslogd[30944]: [origin software="rsyslogd" swVersion="8.37.0-13.el8" x-pid="30944" x-info="https://www.rsyslog.com"] exiting on signal 15. Jan 31 03:21:08 client systemd[1]: Stopped System Logging Service. Jan 31 03:21:08 client systemd[1]: Starting System Logging Service... Jan 31 03:21:08 client rsyslogd[30952]: environment variable TZ is not set, auto correcting this to TZ=/etc/localtime  [v8.37.0-13.el8 try https://www.rsyslog.com/e/2442 ] Jan 31 03:21:08 client systemd[1]: Started System Logging Service. Jan 31 03:21:08 client rsyslogd[30952]: [origin software="rsyslogd" swVersion="8.37.0-13.el8" x-pid="30952" x-info="https://www.rsyslog.com"] start 

结论

就这样。 我希望你在 CentOS 8 / RHEL 8 上成功设置一个集中的 syslog 服务器。 你也可以使用开源日志管理工具,如 ELK stack 或 Graylog,以获得更高级的功能,如 Web 界面、关联日志事件等。