[步骤] Linux 远程日志的集中管理和分文件存储(通过 Rsyslog 实现)

步骤目录:
步骤一:规划拓扑
1.1 服务器列表
1.2 服务器列表简介

步骤二:系统环境要求

步骤三:配置 rsyslog 服务端
3.1 修改 rsyslog 配置文件的案例
3.1.1 案例一
3.1.2 案例二
3.1.3 案例三
3.1.4 案例四
3.1.5 案例五
3.2 重启 rsyslog 服务

步骤四:配置 rsyslog 客户端
4.1 修改 rsyslog 客户端的案例
4.2 重启 rsyslog 服务

步骤五:测试 rsyslog 服务
5.1 在 rsyslog 客户端上发送日志
5.2 在 rsyslog 服务端上查看日志

具体的操作步骤:
步骤一:规划拓扑
1.1 服务器列表
rsyslog 服务端  IP 地址:192.168.0.11
rsyslog 客户端  IP 地址:192.168.0.12

1.2 服务器列表简介
rsyslog 客户端将日志发送给 rsyslog 服务端,并实现分文件存储

步骤二:系统环境要求
(1)所有服务器的系统都需要是 CentOS 8.X 版本
(2)所有服务器都要关闭防火墙
(3)所有服务器都要关闭 selinux
(4)需要按照拓扑图给对应的服务器配置好 IP 和主机名
(5)所有服务器都要可以相互 ping 通自己和对方的 IP 和主机名

步骤三:配置 rsyslog 服务端
3.1 修改 rsyslog 配置文件的案例
3.1.1 案例一
(只在 rsyslog 服务端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

(
补充:
(1)使用 UDP 的 514 端口接收日志
(2)使用 TCP 的 514 端口接收日志
(3)此配置会将所有 rsyslog 客户端的日志存储在 rsyslog 服务端的 /var/log/message 里
)

3.1.2 案例二
(只在 rsyslog 服务端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

$template DynFile,"/var/log/%HOSTNAME%.log"
*.* -?DynFile
& ~

(
补充:
(1)使用 UDP 的 514 端口接收日志
(2)使用 TCP 的 514 端口接收日志
(3)此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/ 下的一个文件里,此文件会以其所属系统名命名
)

3.1.3 案例三
(只在 rsyslog 服务端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

$template DynFile,"/var/log/remotelog/%HOSTNAME%-%$YEAR%-%$MONTH%-%$DAY%-messages.log"
*.* -?DynFile
& ~

(
补充:
(1)使用 UDP 的 514 端口接收日志
(2)使用 TCP 的 514 端口接收日志
(3)此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/remotelog 下的一个文件里,此文件会以其创建时间和其所属系统名命名
)

3.1.4 案例四
(只在 rsyslog 服务端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

$template DynFile,"/var/log/remotelog/%HOSTNAME%-%$YEAR%-%$MONTH%-%$DAY%-messages.log"
:fromhost-ip,!isequal,"127.0.0.1" -?DynFile
& ~

(
补充:
(1)使用 UDP 的 514 端口接收日志
(2)使用 TCP 的 514 端口接收日志
(3)此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/ 下的一个文件里,此文件会以其创建时间和其所属系统名命名
(4)此配置不会单独存储 rsyslog 服务端的日志
)

3.1.5 案例五
(只在 rsyslog 服务端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

$template DynFile,"/var/log/syslog/system-%HOSTNAME%/messages.log"
*.* -?DynFile
& ~

(
补充:
(1)使用 UDP 的 514 端口接收日志
(2)使用 TCP 的 514 端口接收日志
(3)此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/ 下某个目录的 messages 文件里,此目录会以其所属系统名命名
)

3.2 重启 rsyslog 服务
(只在 rsyslog 服务端执行以下步骤)
# systemctl restart rsyslog

(
补充:
(1)使用 UDP 的 514 端口接收日志
(2)使用 TCP 的 514 端口接收日志
(3)需要在 3.1 修改 rsyslog 配置文件的案例中任选其一完成后在执行此步骤
)

步骤四:配置 rsyslog 客户端
4.1 修改 rsyslog 客户端的案例
(只在 rsyslog 客户端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
*.emerg;*.alert;*.crit;*.err;*.warning;*.notice;*.info  @192.168.0.11
或者:
......
*.emerg;*.alert;*.crit;*.err;*.warning;*.notice;*.info  @@192.168.0.11

(
补充:
(1)这里的 192.168.0.11 是指 rsyslog 服务端的 IP 地址
(2)IP 地址前一个 “@” 符后是指使用 UDP 端口 514 传输日志
(3)IP 地址前两个 “@” 符后是指使用 TCP 端口 514 传输日志
)

4.2 重启 rsyslog 服务
(只在 rsyslog 客户端执行以下步骤)
# systemctl restart rsyslog

步骤五:测试 rsyslog 服务
5.1 在 rsyslog 客户端上发送日志
(只在 rsyslog 客户端执行以下步骤)
# logger "This is our test log"

(补充:这里以发送 This is our test log 信息为例)

5.2 在 rsyslog 服务端上查看日志
(只在 rsyslog 服务端执行以下步骤)
# cat /var/log/* | grep test