精读服务器默认rsyslog的配置文件

本文详细解析了rsyslog的配置文件,涵盖模块加载、全局指令、日志规则以及远程日志转发规则。重点讨论了如何根据设施(如kern、user、mail等)和优先级(如debug、info、warning)来处理和转发日志,以及如何定制远程日志转发策略,确保日志可靠传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rsyslog的配置文件

rsyslog.conf


#### MODULES ####

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
#$ModLoad imklog # reads kernel messages (the same are read from journald)
#$ModLoad immark  # provides --MARK-- message capability

#$ModLoad imudp
#$UDPServerRun 514

#$ModLoad imtcp
#$InputTCPServerRun 514


#### GLOBAL DIRECTIVES ####

$WorkDirectory /var/lib/rsyslog

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

#$ActionFileEnableSync on

$IncludeConfig /etc/rsyslog.d/*.conf

$OmitLocalLogging on

$IMJournalStateFile imjournal.state


#### RULES ####
#kern.*                                                 /dev/console

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

authpriv.*                                              /var/log/secure

mail.*                                                  /var/log/maillog


cron.*                                                  /var/log/cron

*.emerg                                                 :omusrmsg:*

uucp,news.crit                                          /var/log/spooler

local7.*                                                /var/log/boot.log

这是一个典型的 rsyslog 配置文件,其中包含了一些基本的配置项和规则。下面我将梳理一下其中的配置项

模块加载 (MODULES)
  • $ModLoad imuxsock
    加载 imuxsock 模块,用于提供对本地系统日志的支持,例如通过 logger 命令记录的日志。
  • $ModLoad imjournal
    加载 imjournal 模块,用于提供对 systemd 日志的访问。
全局指令 (GLOBAL DIRECTIVES
### 关于Rsyslog配置文件的说明与示例 Rsyslog是一个功能强大的日志管理工具,其配置文件主要用于定义日志的接收、过滤、存储和转发规则。以下是关于Rsyslog配置文件的相关说明与示例。 #### 1. 配置文件路径 在大多数Linux发行版中,Rsyslog的主配置文件通常位于以下路径: - `/etc/rsyslog.conf`:主配置文件。 - `/etc/rsyslog.d/`:用于存放额外的配置文件[^2]。 #### 2. 基本语法 Rsyslog配置文件的基本语法包括以下几个部分: - **模块加载**:通过`module()`指令加载输入或输出模块。 - **全局指令**:设置全局选项,例如工作线程数。 - **规则集**:定义日志处理规则。 - **模板**:自定义日志输出格式。 - **动作**:指定日志存储或转发的目标。 #### 3. 示例配置 ##### (1) 简单的日志过滤与存储 以下示例展示了如何将包含特定关键字的日志写入单独的文件,并忽略这些日志: ```bash # 过滤包含 "error" 的日志并写入 /var/log/error.log :msg, contains, "error" /var/log/error.log # 忽略包含 "error" 的日志 :msg, contains, "error" ~ ``` 上述配置中,`:msg, contains, "error"`表示匹配日志消息中包含“error”的内容[^3]。 ##### (2) 使用模板自定义日志格式 Rsyslog支持通过模板定义日志输出格式。以下是一个使用模板的示例: ```bash # 定义模板 template(name="CustomLogFormat" type="string" string="/var/log/%HOSTNAME%/%PROGRAMNAME%.log") # 使用模板存储日志 *.* ?CustomLogFormat ``` 在此示例中,`%HOSTNAME%`和`%PROGRAMNAME%`是动态变量,分别表示主机名和程序名[^4]。 ##### (3) 接收远程日志 Rsyslog可以接收来自其他设备的日志。以下是一个配置示例: ```bash # 加载UDP模块 module(load="imudp") input(type="imudp" port="514") # 加载TCP模块 module(load="imtcp") input(type="imtcp" port="514") # 定义模板以按IP地址存储日志 template(name="RemoteLogs" type="string" string="/var/log/remote/%fromhost-ip%.log") # 定义规则集 ruleset(name="logremote") { action(type="omfile" dynaFile="RemoteLogs") } # 将远程日志分配到规则集 action(type="omruleset" ruleset="logremote") ``` 上述配置中,`imudp`和`imtcp`模块分别用于接收UDP和TCP协议的日志[^4]。 #### 4. 权限设置 在某些系统(如Ubuntu)中,需要确保日志存储目录具有正确的权限。以下是一个示例命令: ```bash sudo mkdir -v /var/spool/rsyslog if [ "$(grep Ubuntu /etc/issue)" != "" ]; then sudo chown -R syslog:adm /var/spool/rsyslog fi ``` 此脚本创建了`/var/spool/rsyslog`目录,并为Ubuntu系统设置了适当的权限[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海燕技术栈

你的鼓励我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值