2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
rsyslog 是一个高性能的日志处理程序,能够接收、处理并转发日志消息。它被广泛应用于 UNIX 和 Linux 系统中,用于系统日志记录和管理。
rsyslog 的配置文件通常位于 /etc/rsyslog.conf
或 /etc/rsyslog.d/
目录下。其配置文件采用规则-动作(rules-actions)结构。
命令:
systemctl status rsyslog.service
# 基本格式
# :规则:动作
# 接收本地日志并写入文件
*.* /var/log/all.log
# 接收远程日志(UDP)并写入文件
$ModLoad imudp
$UDPServerRun 514
*.* /var/log/remote.log
# 接收远程日志(TCP)并写入文件
$ModLoad imtcp
$InputTCPServerRun 514
*.* /var/log/remote_tcp.log
# 基于消息优先级的日志过滤
authpriv.* /var/log/secure.log
# 基于消息内容的日志过滤
:msg, contains, "error" /var/log/error.log
rsyslog 使用设施(facility)和优先级(priority)来分类和处理日志消息。
常见设施包括:
优先级从高到低包括:
sudo systemctl start rsyslog
sudo systemctl stop rsyslog
sudo systemctl restart rsyslog
sudo systemctl status rsyslog
sudo systemctl reload rsyslog
客户端配置
在客户端服务器上,配置 rsyslog 将日志消息转发到集中式日志服务器:
# 配置远程日志传输(UDP)
*.* @logs.example.com:514
# 配置远程日志传输(TCP)
*.* @@logs.example.com:514
服务器配置
在集中式日志服务器上,配置 rsyslog 接收来自客户端的日志消息:
# 加载输入模块
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
# 将接收到的日志写入文件
*.* /var/log/centralized.log