rsyslog日志管理

文章介绍了rsyslog的配置,包括设施和优先级,配置文件路径,全局指令,模板,输出通道和规则设置。讲解了日志记录的规则配置,如facility.priority目标,以及各种日志路径和功能,如/var/log/secure,/var/log/messages等。此外,还提到了journalctl的常用命令用于查看和管理日志。

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

rsyslog配置介绍

  • facility:设施,从功能或程序上对日志进行归类
    auth,authpriv,cron,daemon,ftp,kern,lpr,mail,news,user,uucp,local0-local7,syslog
  • Priority 优先级别,从低到高排序
    debug,info,notice,warn,err,crit,alert,emerg
  • 配置文件路径
    主配置文件:/etc/rsyslog.conf
    从配置文件:/etc/rsyslog.d/*.conf
  • 配置文件格式
    Global directives:设置rsyslog全局属性,加载相关模块
    Templates:指定日志格式,在rules中引用
    Output Channels:提供多种类型的输出通道,在rules中引用
    RULES(selector + action):日志记录相关的规则配置
  • RULES配置说明

RULES配置格式:facility.priority;facility.priority…… target
facility:
” :所有级别
none:没有级别,即不记录
priority:指定级别(含)以上的所有级别
=priority:仅记录指定级别的日志信息
target:
文件路径:通常在/var/log目录下,文件路径前的“-”表示异步写入
用户:将日志事件通知给指定的用户,“
”表示登陆的所有用户
日志服务器:@host,把日志送往指定的远程服务器
管道:|command,转发给其他命令处理

  • 常用日志格式
    产生日志的日期 时间 主机 进程(PID):事件内容
  • 系统常用日志介绍

主机日志管理

主机常用日志

日志路径功能相关命令
/var/log/secure系统安装与认证相关日志,文本格式
/var/log/btmp用户失败尝试登陆相关日志,二进制格式lastb
/var/log/wtmp当前系统上,用户正常登陆的县官日志信息,二进制格式last
/var/log/lastlog每一个用户最近一次的登陆信息,二进制格式lastlog
/var/log/dmesg系统引导过程中的日志信息,文本格式dmesg
/var/log/messages系统中大部分日志信息,文本格式
/var/log/anaconda计划任务日志,文本格式

journalctl常见用法

  • journalctl 查看所有日志,默认情况下,只保存本次启动的日志

  • jounalctl -k 查看内核日志(不显示应用日志)

  • journalctl -b 查看本次启动的日志

  • journalctl --since=“2023-05-01 13:00:00”
    –since “20 min ago”
    –since yesterday
    –since 09:00 --until “1 hour ago”
    查看指定时间日志

  • journalctl -n 20 显示尾部指定行数日志

  • journalctl -f 实时滚动显示最新日志

  • journalctl _PID=222 显示指定进程的日志

  • journalctl -u nginx 查看指定服务的日志

rsyslog配置文件

[root@han ~]# egrep -v "^$|^#" /etc/rsyslog.conf 
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$ModLoad imudp
$UDPServerRun 514	#开启udp514端口,接收客户端日志
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.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
local6.*                                                /var/log/ssh.log
*.*							@192.168.1.1   #把日志发送到源端服务器
$ModLoad imfile		#日志日志格式为文本格式
$InputFilePollInterval 5
$InputFileName /home/access.log		#自定义日志格式文件路径
$InputFileTag Nginx:
$InputFileStateFile nginx_state.file
$InputFileSeverity debug
$InputFileFacility local0
$InputRunFileMonitor 
[root@han ~]# 

<think>好的,我现在需要帮助用户了解rsyslog日志收集机制和工作原理,包括配置方法。首先,我要回忆一下rsyslog的基本知识。rsyslog是一个强大的日志处理系统,相比传统的syslogd,它支持更多高级功能,比如模块化、多种协议和日志过滤等。用户提到了引用中的内容,比如facility、priority以及日志轮替机制,这些都需要在回答中涉及。 用户的问题包括日志收集机制、工作原理和配置。我应该分这三个部分来组织回答。首先,日志收集机制可能涉及输入模块,比如imuxsock、imklog、imfile,这些在引用[3]中提到的日志服务配置文件可能相关。需要解释facility和priority的概念,如引用[1]所说,设施和优先级的结构,以及通配符的使用。 然后是工作原理,这部分需要描述rsyslog如何处理日志,从接收、过滤到输出。可能涉及到规则集、过滤条件和输出模块。引用[2]提到rsyslog的高性能和复杂处理规则,应该强调其多线程和队列管理,以及支持TCP、RELP等协议,确保可靠传输。 配置部分需要给出具体的配置示例,比如如何定义facility和priority,如何设置转发到远程服务器,以及日志文件的存储路径。可能还要提到日志轮替,引用[3]中的logrotate和定时任务机制,说明如何自动备份和压缩日志。 还需要检查是否需要引用用户提供的引用内容。例如,在解释facility时,引用[1]中的内容,说明设施和优先级的结构。在讨论日志轮替时,引用[3]中的cron.daily和logrotate。同时,引用[2]可以用来对比rsyslog和syslogd的特点,突出rsyslog的优势。 用户可能的问题包括如何配置远程日志转发、如何处理大量日志、如何优化性能等。生成相关问题的时候需要考虑这些方面,比如配置语法、日志过滤、性能优化方法、安全传输等。 需要确保回答结构清晰,使用正确的LaTeX格式,比如行内变量用$...$,独立公式用$$...$$,但根据用户的问题,可能数学公式较少,但如果有示例配置中的优先级表达式,可能需要使用。例如,mail.info表示设施mail,优先级info及以上,用$mail.info$格式。 最后,验证配置是否正确的部分需要指导用户使用logger命令测试,并检查日志文件,或者使用journalctl查看内存日志,如引用[3]中的journalctl命令示例。 总结回答的结构:分为收集机制、工作原理、配置方法、验证配置和日志轮替几个部分,每个部分结合引用内容,最后生成相关问题。确保语言简洁,符合中文习惯,避免技术术语不解释的情况,同时保持专业性和准确性。</think>### rsyslog日志收集机制与工作原理详解 #### 一、日志收集机制 rsyslog通过**模块化架构**实现日志收集,核心组件包括: 1. **输入模块**:负责接收日志来源 - `imuxsock`:监听本地syslog socket(如`/dev/log`) - `imklog`:收集内核日志 - `imfile`:监控文本文件(适合采集应用程序日志)[^3] 2. **Facility与Priority机制** - 设施(Facility)定义日志来源类型,例如:$mail$(邮件服务)、$authpriv$(安全认证) - 优先级(Priority)分8级:$debug < info < notice < warning < err < crit < alert < emerg$ - 组合语法:$facility.priority$,如`mail.*`表示邮件服务的所有级别日志[^1] #### 二、工作原理流程 $$ \begin{aligned} &\text{日志输入} \rightarrow \text{过滤处理} \rightarrow \text{输出目标} \\ &\downarrow \quad \quad \quad \ \ \downarrow \quad \quad \quad \ \ \downarrow \\ &\text{模块采集} \rightarrow \text{规则集匹配} \rightarrow \text{文件/数据库/远程服务器} \end{aligned} $$ 1. **多线程处理**:采用生产者-消费者模型,支持异步队列提升吞吐量[^2] 2. **规则配置**: ```bash # 语法示例 facility.priority action *.* /var/log/all.log # 全量日志 authpriv.* @192.168.1.100:514 # 转发到远程服务器 ``` #### 三、配置方法示例 1. **基础配置**(`/etc/rsyslog.conf`) ```bash # 启用TCP/UDP监听 module(load="imtcp") input(type="imtcp" port="514") # 定义日志存储规则 local7.* /var/log/boot.log *.emerg :omusrmsg:* # 发送紧急消息给所有登录用户 ``` 2. **远程转发配置** ```bash # 转发到中央日志服务器 *.* @@(z9)192.168.1.200:10514 # 使用RELP协议传输 ``` 3. **模板定制** ```bash template(name="MyFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag% %msg%\n") action(type="omfile" file="/var/log/custom.log" template="MyFormat") ``` #### 四、验证配置 ```bash # 发送测试日志 logger -p local3.info "测试日志内容" # 查看日志文件 tail -f /var/log/syslog # 或检查内存日志 journalctl -n 3 --since "10:00" # 引用[3]方法 ``` #### 五、日志轮替机制 通过`logrotate`实现自动管理: ```bash # /etc/logrotate.d/rsyslog /var/log/syslog { daily rotate 7 compress delaycompress missingok postrotate /usr/lib/rsyslog/rsyslog-rotate endscript } ``` 依赖`cron.daily`定时任务执行轮替[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

韩华盛

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值