资讯专栏INFORMATION COLUMN

使用rsyslog读取本地日志文件

IT那活儿 / 1742人阅读
使用rsyslog读取本地日志文件

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

 


读取日志
将本机实时生成的操作日志或者业务记录日志通过rsyslog传到日志服务器中想必大家都了解如何配置,但是当日志已经保存为文件后,怎么从日志文件中读取日志,并传输到日志服务器中呢?
这就要使用到rsyslog中自带的imfile模块了。

 


imfile模块
作用:此模块提供将任何标准文本文件转换为系统日志消息的能力。
imfile模块读取文件是逐行读取的,任何读取的行都会传递到 rsyslog 的规则引擎,规则引擎应用过滤条件并选择需要执行的操作,且不处理空行。写入新行时,它们会从文件中读取并进行处理。

1. 读取的策略分为两种:轮询和inotify

  • 轮询:imfile在不指定策略的前提下,默认为轮询,即一定时间间隔内检查文件变化,所以会有一定的延迟;
  • inotify:基于文件监控系统的机制,监控文件发生修改、新增、删除等操作,当文件发生变化时,触发该机制,对文件进行读取。
当 rsyslogd 在监视文本文件时停止,它会记录上次处理的位置并在重新启动时从检查点继续读取。因此在重新启动期间不会丢失任何数据。
2. 通配符

1)版本:8.25.0及以前 仅在文件名部分支持通配符,在目录名称中不支持

  • /var/log/*.log
  • /var/log/*/syslog.log

2)版本:8.25.0以后文件名和路径支持通配符

  • /var/log/*.log
  • /var/log/*/syslog.log
  • /var/log/*/*.log
所有匹配子文件夹中的所有匹配文件都将被读取。
但是需要注意的是当被监控文件过多时,会降低 imfile 的性能。
3. 常用相关选项

参数说明:

  • File:被监控的文件。必须是绝对地址,文件名支持通配符。
  • Tag:标记信息,会记录到每行被读取到的日志中。
  • Facility:要分配给从此文件读取的消息的系统日志工具。可以指定为文本形式(例如local0, local1, ...)或数字(例如 16 表示local0),建议采用文本形式,默认为local0。
  • Severity:要分配给读取的行的系统日志严重性。可以以文本形式(例如info, warning, ...)或数字(例如 6 表示info)指定。建议采用文本形式。默认为notice。
  • PersistStateInterval:指定在处理输入文件时应多久写入一次状态文件。该缺省值是0,任何其他值 n 意味着至少在每次处理 n 个文件行时写入状态文件。此设置可用于防止由于致命错误(如电源故障)而导致消息重复。
  • readMode:这为处理某些标准类型的多行消息提供了支持。
    该值的范围为 0-2,决定了多线检测方法
    0 -(默认)基于行(每行是一条新消息);
    1 - 基于段落(日志消息之间有一个空行);
    2 - 基于缩进(新的日志消息从一行的开头开始。如果一行以空格或制表符“t”开头,它就是它之前的日志消息的一部分)。 



配置案例
#载入imfile文件,并设置PollingInterval值为5。
module(load="imfile" PollingInterval="5")
#配置被采集文件信息,以及tag等信息。
input(type="imfile" 
File="/app/udal/dbproxy_****/logs/udal_monitor_slow_sql.log" 
Tag="teledb#133. ****
Severity="info" Facility="local6")
#使用UDP将采集到的日志传输到日志服务器中 local6.* @133.****:****
查看接收到的日志行:
至此我们便了解了imfile的应用场景,也完成了rsyslog采集文件中日志的配置。

END



本文作者:胡京康(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129452.html

相关文章

  • 利用ELK搭建Docker容器化应用日志中心

    摘要:概述应用一旦容器化以后,需要考虑的就是如何采集位于容器中的应用程序的打印日志供运维分析。 showImg(https://segmentfault.com/img/remote/1460000014146680); 概述 应用一旦容器化以后,需要考虑的就是如何采集位于Docker容器中的应用程序的打印日志供运维分析。典型的比如 SpringBoot应用的日志 收集。本文即将阐述如何利...

    周国辉 评论0 收藏0
  • linux文件系统和日志分析

    摘要:通常情况下不需要关注单个的大小,而是需要重点关注的总数,的总字节在格式化的时候就给定了,执行命令即可查看每个硬盘分区对应的总数和已经使用的数量。 inode和block概述一:1、文件数据包括源信息与实际数据文件存储在硬盘上,硬盘最小存储单位是扇区。每个扇区存储512字节block (块):连续的八个扇区组成一...

    waruqi 评论0 收藏0
  • linux inode文件系统;备份恢复及日志分析

    摘要:通常文件系统磁盘空间中大约百分之一空间分配给了表。的备份级别默认为。邮件系统日志记录进入或发出系统的电子邮件活动。用户登录日志记录用户认证相关的安全事件信息。 1 、深入理解linux文件系统1.inode与blockinode存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做ino...

    terro 评论0 收藏0
  • LINUX文件系统及日志分析

    摘要:恢复文件系统下的所有内容在当前目录下会出现一个目录,里面保存了已经恢复的文件该图我们依旧是对磁盘进行一个创建分区的操作。 inode和block概述文件数据包括元信息与实际数据文件存储在硬盘上,硬盘最小存储单位是扇区,每个扇区存储512字节block (块)连续的八个扇区组成一个block(4K)是文件存取的最...

    番茄西红柿 评论0 收藏2637

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<