centralized logging on Amazon Linux 2023
背景介绍
最近要做个 log server,把所有服务器的系统日志都收上来。我现在的服务器,操作系统有两种:Amazon Linux 2023 和 Ubuntu,但其实 Ubuntu 又有 22.04 和 24.04 两种,所以,其实是一共有三种操作系统。
好在这三种系统,其缺省跑的日志应用,Amazon Linux 2023 是 systemd-journald
,而 Ubuntu(22.04 和 24.04) 都是既跑有 systemd-journald
,又跑的有 rsyslogd
。这两种日志应用,都是支持集中的日志服务器的,或者很容易支持。但是为什么不就用一套 rsyslogd
的日志服务器呢?毕竟大家都支持 rsyslogd
的。主要是因为 systemd-journald
相对于 rsyslogd
是很新的东西,所以这里也拿出来练练手。
rsyslogd
server
rsyslog
的 log server 配置还是相当简单的
1 | vim /etc/rsyslog.d/remote.conf |
加入如下内容:
1 | module(load="imudp") |
重启 rsyslogd
1 | systemctl restart rsyslog |
client
客户端的配置也相当简单
1 | vim /etc/rsyslog.d/99-remote.conf |
写入如下内容:
1 | *.* @logserver.xxx.xxx:514 |
最后重启 rsyslog
1 | systemctl restart rsyslog |
systemd-journal-remote
server
1 | dnf install systemd-journal-remote |
指定的空行内输入如下内容:
1 | [Service] |
保存以后,使得
1 | cat /etc/systemd/system/systemd-journal-remote.service.d/override.conf |
能看到之前输入的内容即可。
1 | mkdir /var/log/remote/journal |
指定的空行里输入:
1 | [Socket] |
保存后退出。使得
1 | cat /etc/systemd/system/systemd-journal-remote.socket.d/override.conf |
输出的内容正是之前输入的即可。
1 | systemctl enable --now systemd-journal-remote.socket |
client
1 | dnf install systemd-journal-remote |