• Basic Structure 基本结构:


    Basic Structure 基本结构:
    
    这个章节描述rsyslog 配置基本工作,可以认为rsyslog 作为一个big logging 和事件处理工具集。
    
    
    它可以认为是一个框架具有一些基本处理以固定数据流的方式,
    
    但是是高度自定义的在消息流的细节。
    
    在配置过程中,这个自定义是通过定义和定制rsyslog 对象实现
    
    Quick overview of message flow and objects
    
    
    消息输入模块使用input modules的帮助,然后,它们是传递到ruleset,
    
    规则是有条件应用的。
    
    当一个规则匹配, 消息是传递到一个action,然后做一些到消息
    
    写它到一个文件,数据库或者转发到一个远端主机。
    
    Processing Principles 处理原则:
    
    1.输入提交收到的消息到规则集
    
    如果规则集没有指定界限,默认规则被使用
    
    2.默认的,有一个规则集(RSYSLOG_DefaultRuleset)
    
    3. 额外的用户定义的规则集
    
    4.每个规则集包含0个或者很多个规则
    
      当它允许有0个rules在规则集,这显然是没有意义
    
    5.一个规则有一个过滤器和一个action组成
    
    6.过滤器提供yes/no 决定从容控制流程能力
    
    7.如果 一个filter "matched"(filter say "yes"),相应的action列表被执行。
    
    如果它不匹配,没有什么特别会发生
    
    8.规则是顺序评估的从第一个到最后一个在给定的规则集。
    
    9.所有的规则总是被完全评估的,无论如果一个过滤器是否匹配(因此我们不会再第一次匹配就停止)
    
    如果消息处理要停止,"discard" action必须被执行。
    
    如果discard 是被执行,消息处理立即停止,不需要评估任何其他规则。
    
    10.一个action list 包含一个或者多个actions
    
    11.在一个action list 没有更多的过滤器是可以的
    
    12.在一个列表里有多余一个action,&字符必须防止在过滤器的位置,
    
    这个必须立即遵循之前的action.
    
    13.actions 有action调用本身组成(e.g. ”:omusrmsg:”)
    
    
    14.如果legacy format是被使用的,$Action 指令必须指定在action之前
    
    15.一些配置指令自动指向它们先前的值在被应用后
    
    
    Configuration File  配置文件:
    
    
    在启动时,rsyslog 读取它的配置从rsyslog.conf 文件默认。
    
    这个文件可能包含引用到包含其他的配置文件
    
    声明类型:
    
    Rsyslog 支持3种类型的配置语句:
    
    sysklogd -- 这是 plain old 格式,无处不在仍旧相当有用对于简单的使用例子。
    
    注意 一些非常少的构造是不再被支持了,因为它们是和新的功能不兼容的。
    
    legacy rsyslog:
    
    那些是语句以$符号开始,它们设置一些配置参数和修改例子。
    
    这个格式被支持在rsyslog v6之前。
    
    但是它仍旧完全被支持在V6和以上版本。
    
    注意 一些插件和功能可以仍旧只能是可用的通过 legacy format(因为插件需要被显示地升级来使用新的style 格式)
    
    
    RainerScript - 新的样式,这是最好的最请求的格式用于更加复杂的情况。
    
    
    rsyslog.conf 文件有语句组成。对于老的样式(sysklogd & legacy rsyslog), 
    
    
    对于新的style((RainerScript) 行空间是无关紧要的。
    
    
    Recommended use of Statement Types
    
    通常 它是推荐使用RainerScript 类型语句,因为那些提供clean和容易读取控制流结构以及毫无疑问的参数是主动的。
    
    
    对于非常简单的事情sysklogd 声明类型是仍然被建议的,特别如果完全配置有这样的事情组成。
    
    经典的例子是写入到文件(或者转发)通过优先级。在sysklogd,这看起来像:
    
    mail.info /var/log/mail.log
    mail.err @server.example.net
    
    
    这是很难简单的击败的,仍旧在课程中被教授,很多人知道这个语法。
    
    作为一个经验法则, RainerScript  配置语句应该被使用:
    
    1. 配置参数是需要的(例如 Action... type of legacy statements)
    
    2.需要更精细的流程控制
    
    
    它通常不推荐使用rsyslog legacy 配置格式(那些指令开始一个美元符号).
    
    
    然而, 一些设置和模块没有被转换成RainerScript。在这些情况下,必须使用legacy语法。
    
    处理顺序:
    
    指令是被处理从上而下。
    
    流程控制语句:
    
    流程控制是通过:
    
        Control Structures
        Filter Conditions
    
    
    数据操作语句:
    
    数据操作是通过设置完成,unset 和reset 语句
    
    Inputs:
    
    每个input 需要一个input 模块被加载和一个侦听定义用于它。
    
    每个输入需要一个input 模块被加载和一个侦听定义它。
    
    Outputs:
    
    输出是被称为"actions", 一个小的动作集是预加载的(如output 文件写,这是用于每个rsyslog.conf)
    
    
    一个action 是被调用通过action(type=”type” ...) object.
    
    Type是强制性的和必须包含插件名字呗调用(e.g. “omfile” or “ommongodb”).
    
    其他参数可能存在, 它们的类型和使用取决于output 插件
    
    Rulesets and Rules  规则集和规则:

  • 相关阅读:
    cf 811c Vladik and Memorable Trip
    Codeforces 837D--Round Subset (DP)
    codeforces798C
    Codeforces 814C
    CodeForces 610D Vika and Segments
    CodeForces 593D Happy Tree Party
    hdu 5564 Clarke and digits
    hdu 5517 Triple
    codeforces 584E Anton and Ira [想法题]
    codeforces 582A GCD Table
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349675.html
Copyright © 2020-2023  润新知