• rsyslog imfile配置


    $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
    $ModLoad imklog   # provides kernel logging support (previously done by rklogd)
    module(load="imfile" PollingInterval="5")
    $ModLoad imtcp
    $InputTCPServerRun 514
    $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
    $IncludeConfig /etc/rsyslog.d/*.conf
    *.info;mail.none;authpriv.none;cron.none;local5.none                /var/log/messages
    *.info;mail.none;authpriv.none;cron.none;local5.none                @@115.236.160.82:514
    authpriv.*                                              /var/log/secure
    mail.*                                                  -/var/log/maillog
    cron.*                                                  /var/log/cron
    uucp,news.crit                                          /var/log/spooler
    local7.*                                                /var/log/boot.log
    $InputFilePersistStateInterval 1
    input(type="imfile"
    File="/var/log/nginx/access.log"
    Tag="zjzc-frontend01-access"
    PersistStateInterval="1"
    reopenOnTruncate="on"
    Severity="info"
    Facility="local5")
    
    
    input(type="imfile"
    File="/var/log/nginx/error.log"
    Tag="zjzc-frontend01-error"
    Severity="info"
    PersistStateInterval="1"
    reopenOnTruncate="on"
    Facility="local5")
    local5.* @@115.236.160.82:9514
    
    ##reopenOnTruncate="on" #版本要求8.16.0以上,此配置是为了解决log rotate切割日志后不收集问题
    
    
    
    这个模块提供了将任何标准的文本文件为一个syslog 消息。一个标准的文本文件是一个文件有可打印的字符组成
    
    
    这个文件是逐行读取,任何行读取时传递到rsyslog的规则引擎。
    
    这个规则引擎应用过滤条件和选择哪个动作来执行。
    
    空行是不被处理的
    
    
    当新航被写入时 它们从文件取出并处理。
    
    根据选定的模式, 这个发生通过inotify或者基于一个polling 间隔。
    
    
    特别在polling模式, 文件读取不立即发生。
    
    但是会有轻微的延迟(由于进程调度和内部处理)在inotify 模式
    
    文件监控支持file rolation,全面工作,rsyslogd 必须运行当文件被rorated.
    
    然后,任何留下的行从旧的文件是被读取和处理
    
    Metadata:
    
    imfile 模块支持消息元数据,它支持下面数据项:
    
    filename:
    
    消息源文件的名字, 这个是很有用的当使用通配符在监控文件中,因为 它是唯一方式知道 消息来自于哪个文件。
    
    
    
    
    
    State Files  状态文件
    
    rsyslog 必须跟踪监控文件的哪个部分已经被处理了, 这个是通过所谓的"state files".
    
    这些文件总是创建在rsyslog 工作目录(通过$WorkDirectory)
    
    $WorkDirectory /var/lib/rsyslog
    
    
    [root@PD rsyslog]# pwd
    /var/lib/rsyslog
    [root@PD rsyslog]# ls
    imfile-state:-u01-app-oracle-diag-rdbms-ncdb-podinndb-trace-alert_podinndb.log
    [root@PD rsyslog]# 
    
    
    为了避免重复的状态文件的问题,rsyslog 自动的生成状态文件根据下面的方案:
    
    
    1. 字符串 "imfile-state" 是增加在实际文件名字的前面, 包含了完整的路径
    
    2.  完整的名字是在那个字符串后面, 所有的"/"替换为"-"
    
    
    作为一个具体的例子, 考虑文件/var/log/applog 是被监控的,
    
    相应的state文件会被命名为 imfile-state:-var-log-applog.
    
    
    
    注意 它是可能的 设置一个固定的state file 通过过期的"stateFile" parameter.
    
    建议避免这个, 因为用户必须照顾名字冲突。
    
    最重要的是, 如果"stateFile"是设置用于文件监控使用通配符,
    
    相同的状态文件是用于所有那些文件的事件。
    
    注意 当$WorkDirectory 是没有被设置或者设置为不能写的位置,状态文件不会生成。
    
    在这些情况下, 文件内容总是会被完整的重新发送,因为模块不知道 文件已经处理的位置
    
    模块参数
    
     mode ["inotify"/"polling"]
    
            Default: “inotify”
    
            Available since: 8.1.5
    
    这是指定 如果imfile 是运行在inotify 或者polling模式。
    
    传统上,imfile是用在polling模式, 是更资源紧张和慢的相比intofy 模式。
    
    
    
    它是建议用户启用"polling"模式 只有它们遇到奇怪的文件在inotify 模式。
    
    理论上讲, 不应该有一个理由来启用"polling"模式。
    
     PollingInterval seconds
    
        Default: 10
    	
    这个设置指定 文件轮训的频率, 显而易见, 它只有在imfile是运行在polling模式才有影响。
    
    
    Input Parameters 输入参数:
    
    File [/path/to/file]
    
    (需要参数) 文件是被监控的,到目前为止,这个必须是一个绝对的名字(没有宏和模板)
    
    注意  通配符是支持的在文件名字层面
    
    Tag[tag:]
    
    
    ( 需要的参数) tag用于消息来自哪个文件, 如果你想看到tag
    
    Tag="Nc-Finace-db-192.168.10.53"
    
    Facility [facility]
    
    syslog facility  是被分配到lines read  默认是local0
    
    
    PersistStateInterval [lines]
    
    
    指定 state file 应该被写的频率 当处理输入文件时 默认是0,
    
    这意味着一个新的状态文件只有当监控的文件被关闭才会被写
    
    任何其他值 n 意味着状态文件是每隔n 文件行被处理才写。
    
    这个设置可以用于防止消息重复由于致命错误(像断电)
    
    注意这个设置影响了imfile性能,尤其是设置为一个小的值,频繁写state file是非常耗时的
    
    startmsg.regex [POSIX ERE regex]  
    
    
    这个允许处理多行消息, 当设置的时候,一个消息是终止当下一个开始,
    
     startmsg.regex 包含regex 定义了消息的开始。
     
     因为这个参数是使用正则表达式, 它比readMode 更加灵活 但是性能较差
     
     
     MaxLinesAtOnce [number]
    
    
    这个是一个过时的设置 只用于polling mode,在intofy 模式,它是固定为0 所有常识配置不同的值都会被忽略,但是会产生一个错误
    
    请注意 ,imfile的未来版本 可能不支持这个参数,建议不要使用它
    
    MaxSubmitAtOnce [number]
    
    
    deleteStateOnFileDelete [on/off] (requires v8.5.0+)
    
    默认 on:
    
    
    这个参数文件控制如果状态文件是删除了 如果它相关的主文件是被删除了。
    
    这个通常是一个好主意,因为否则会有问题当一个新的文件使用相同的名字被创建,在那张情况下,
    
    imfile 会从删除的文件的上次的位置开始读,这个不是你需要的
    
    
     stateFile [name-of-state-file]
    
        Default: unset
    	
    	这个参数是过时了,它仍旧被接受,但是 不能用于新的创建的配置
    	
    	 reopenOnTruncate [on/off] (requires v8.16.0+)
    
        Default: off
    	
    	这是一个实验性的功能,告诉rsyslog 重新打开input file 当他被truncated
    	
    	
    
    
    

  • 相关阅读:
    MySQL的双主配置
    MySQL主从复制配置部署
    Linux centOS安装MySQL
    hive搜索报错
    常用设计模式
    Cookie禁用 获取session
    排序算法
    MySQL优化
    javascript Map和Set
    ThinkPHP的基本操作
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349902.html
Copyright © 2020-2023  润新知