rsyslog 入门 第一篇

本系列,使用学习场景,是基于elk的采集端。。就是只是采集文本后,rsyslog怎么处理的各种常用姿势。。。
有些抄了其他前辈的。自己整理了下。。。官方网站:www.rsyslog.com

centos 六 七
架构就是   rsyslog  --tcp方式-->  logstash -->es      ,或者,  rsyslog   --->  redis,kafka  -->logstash -->  es
------------------------------------------------------------------------------------------------------------------------------------------
1、用yum 安装最新版
  vi /etc/yum.repos.d/rsyslog.repo
[rsyslog_v8]
name=Adiscon CentOS-$releasever - local packages for $basearch
baseurl=http://rpms.adiscon.com/v8-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
gpgkey=http://rpms.adiscon.com/RPM-GPG-KEY-Adiscon
protect=1

yum install -y --enablerepo=[rsyslog_v8] rsyslog

系统默认,6版本系统安装的是5.8版的rsyslog,7版本的系统安装的是7版本的rsyslog。
而8版的语法,可靠性,性能,功能,都在提升,新版本比老版本牛逼。防止踩不必要的坑,请使用8版本。

2、采集端原理
在磁盘上,每个文件都有自己的inode,每个文件占用多少个block 这些信息。当采集工具在读取文件时,就会产生一个状态文件。
记录着读取到哪个位置offset 了。只要文件一发生追加内容,就会增量读取。

如果是对文件进行修改,不是追加内容。则这个文件就发生改变。就会从头读起。而不是增量读取。。。应该是inode改变了。
----------
# rpm -qa|grep rsyslog
rsyslog-8.29.0-1.el6.x86_64

# cat /etc/rsyslog.conf |grep -Ev '^$|^#'
module(load="imuxsock") # provides support for local system logging (e.g. via logger command)
module(load="imklog")   # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.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
$WorkDirectory /var/lib/rsyslog # where to place spool files        ##   默认是#注释,去掉#。就是记录状态文件存放到指定目录。默认是放在根分区 。
   当rsyslog 读取过文件,状态文件是产生在内存中,rsyslog 服务停止,就会把内存的状态文件写入磁盘。。


3、模块
# rpm -ql rsyslog |grep .so
/lib64/rsyslog/imfile.so
/lib64/rsyslog/imklog.so
/lib64/rsyslog/immark.so
/lib64/rsyslog/impstats.so
/lib64/rsyslog/imptcp.so
/lib64/rsyslog/imtcp.so
/lib64/rsyslog/imudp.so
/lib64/rsyslog/imuxsock.so
/lib64/rsyslog/lmcry_gcry.so
/lib64/rsyslog/lmnet.so
/lib64/rsyslog/lmnetstrms.so
/lib64/rsyslog/lmnsd_ptcp.so
/lib64/rsyslog/lmregexp.so
/lib64/rsyslog/lmstrmsrv.so
/lib64/rsyslog/lmtcpclt.so
/lib64/rsyslog/lmtcpsrv.so
/lib64/rsyslog/lmzlibw.so
/lib64/rsyslog/mmexternal.so
/lib64/rsyslog/mmpstrucdata.so
/lib64/rsyslog/mmsequence.so
/lib64/rsyslog/ommail.so
/lib64/rsyslog/omprog.so
/lib64/rsyslog/omtesting.so
/lib64/rsyslog/omuxsock.so
/lib64/rsyslog/pmlastmsg.so

这些是rsyslog 模块。需要另加其他模块,通过yum list |grep rsyslog 查看安装。


rsyslog的消息流是从输入模块->预处理模块->主队列->过滤模块->执行队列->输出模块。

  预处理模块主要解决各种syslog协议实现间的差异,举例说明如果日志系统client端使用rsyslog、server端使用syslog-ng,如果自己不做特殊处理syslog-ng是无法识别的。但是反过来,rsyslog的server端就可以识别syslog-ng发过来的消息。

Input模块包括imklg、imsock、imfile、imtcp等,是消息来源。

Filetr模块处理消息的分析和过滤,rsyslog可以根据消息的任何部分进行过滤,后面会介绍到具体的做法。

Output模块包括omfile、omprog、omtcp、ommysql等。是消息的目的地。

Queue模块负责消息的存储,从Input传入的未经过滤的消息放在主队列中,过滤后的消息放入到不同action queue中,再由action queue送到各个输出模块。

### rsyslog 系统日志程序的功能介绍 #### 日志管理基础 rsyslog 是一种增强型的日志管理系统,用于替代传统的 syslog 和 klogd 组件。传统上,在 CentOS 5 及更早版本中,系统日志由两个独立的服务负责:`syslogd` 负责记录应用程序产生的日志,而 `klogd` 则专注于捕获 Linux 内核生成的日志[^1]。 然而,随着技术的发展,这种分离式的架构逐渐显得不足以为现代复杂环境提供高效支持。因此,rsyslog 应运而生,作为一个统一且强大的解决方案来满足这些需求。 #### 高性能特性 相比原始的 syslog 实现方式,rsyslog 提供显著更高的吞吐量以及更加灵活配置选项的能力。官方资料表明其能够每秒处理多达一百万条消息事件[^2]。这一能力使得即使是在高负载生产环境中也能保持稳定运行状态而不至于因为大量涌入的数据而导致崩溃或者延迟增加等问题发生。 #### 安全性和模块化设计 除了速度之外,安全性也是该软件开发过程中重点考虑的一个方面;通过内置加密机制保护传输过程中的敏感信息不被窃取篡改成为可能 。另外值得注意的是它的高度可扩展性——借助于插件系统(plugins),用户可以根据实际需要加载不同的功能组件以实现特定目的 ,比如数据库存储、网络协议适配等等。 #### 配置与维护 当完成必要的设置更改之后(例如指定远程服务器地址以便集中式日志管理),可以通过简单的命令重新启动服务使新参数生效: ```bash [root@node1 ~]# systemctl restart rsyslog ``` 此操作会立即应用最新的规则集并开始按照新的指示行事[^3]。 综上所述,rsyslog 不仅继承了经典 syslog 协议的核心理念,还在此基础上进行了多方面的改进优化,从而成为了当前主流操作系统平台上的首选日志工具之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值