linux rsyslog 服务
环境信息
- Centos 7
系统默认的日志托管服务,部分系统服务(如 crond
, 邮件系统,安全审计等)会将日志发送给 rsyslog
服务来进行日志管理。
rsyslog
服务是依赖其配置文件 /etc/rsyslog.conf
来确定哪个服务的什么等级的日志信息会被记录在哪个位置的。也就是说,日志服务的配置文件中主要定义了服务的名称、日志等级和日志记录位置。
配置文件说明
默认配置文件(/etc/rsyslog.conf
)内容如下
加载指定模块 |
其中最为关键的部分是日志记录规则,其配置格式如下
服务名称 连接符号 日志等级 日志记录位置 |
以上配置,指定认证相关服务 (authpriv
) 的所有等级的日志,记录在 /var/log/secure
日志中
多个服务可以指定同一个日志记录位置
,多个 服务名称 连接符号 日志等级
中间使用 ;
分割
*.info;mail.none;authpriv.none;cron.none /var/log/messages |
多个服务也可以共用同一个 日志等级
,格式如下,多个 服务名称
使用 ,
分割
uucp,news.crit /var/log/spooler |
rsyslog
服务可识别的服务如下
服务 | 说明 |
---|---|
auth | 安全和认证相关消息 (不推荐使用 authpriv 替代) |
authpirv | 安全和认证相关信息(私有的) |
cron | 系统定时任务 cront 和 at 产生的日志 |
daemon | 和各个守护进程相关的日志 |
ftp | ftp守护进程产生的日志 |
kern | 内核产生的日志(不是用户进程产生的) |
local0-local7 | 为本地使用预留的服务 |
lpr | 打印机产生的日志 |
邮件收发信息 | |
news | 与新闻服务器相关的日志 |
syslog | 有 rsyslog 服务产生的日志信息(虽然服务名称已经改为 rsyslog 服务,但是很多配置都还是沿用了 syslogd 的,这里并没有修改服务名) |
user | 用户等级类别的日志信息 |
uucp | uucp 子系统的日志信息,uucp 是早期 Linux 系统进行数据传递的协议,后来也经常用在新闻组服务中。 |
rsyslog
服务配置中可使用的连接符号如下
连接符号 | 说明 |
---|---|
. |
代表只要比后面的等级高的(包含该等级)日志都记录下来。比如: cron.info 代表 crond 服务产生的日志,只要日志等级大于等于 info 级别,就记录。 |
.= |
代表只记录所需等级的日志,其他等级的都不记录。比如: *.=emerg 代表任何日志服务产生的日志,只要等级是 emerg 等级就记录。 |
.! |
代表不等于,也就是除了该等级的日志外,其他等级的日志都记录。 |
rsyslog
服务配置中可使用的日志等级如下
日志等级 | 说明 |
---|---|
debug | 一般的调试信息说明 |
info | 基本的通知信息 |
notice | 普通信息,但是有一定的重要性 |
warning | 警告信息,但是还不会影响到服务或系统的运行 |
err | 错误信息,一般达到 err 等级的信息以及可以影响到服务或系统的运行了 |
crit | 临界状况信息,比 err 等级还要严重 |
alert | 警告状态信息,比 crit 还要严重。必须立即采取行动 |
emerg | 致命(毁灭)等级信息,系统已经无法使用了 |
* | 代表所有等级的日志 |
none | 忽略这个日志服务,该服务的所有日志都不再记录 |
可用的 日志记录位置
如下
日志记录位置 | 说明 | 示例 |
---|---|---|
/var/log/secure |
日志文件的绝对路径 | /var/log/secure |
/dev/lp0 |
系统设备文件 | 如 /dev/lp0 代表第一台打印机,如果日志保存位置是打印机设备,当有日志时就会在打印机上打印。 |
远程主机 | 可以选择使用 TCP (@@192.168.0.210:514 ) 和 UDP (@192.168.0.210:514 ) 协议传输日志信息 |
日志记录位置
之前可以加以下符号:
-
: 表示延迟写入