今天我们将在 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 界面、关联日志事件等。