• 概述


    <pre name="code" class="html">欢迎来到rsyslog
    
    Rsyslog 是一个日志处理的快速系统,它提供高性能的,大的安全功能和模块化的设计。
    
    
    当它开始一个普通的syslogd,rsyslog 已经演变成了一个瑞士军刀的日志系统,可以用于:
    
    
    1.接收来自各种各样来源的输入
    
    2.改造它们
    
    3.并将结果输出到不同的目的地
    
    
    Rsyslog 有一个强大的企业关注,但是也可以缩小到小的系统。它支持,包括,MySQL,PostgreSQL,
    
    
    failover log destinations, ElasticSearch, syslog/tcp transport, 细颗粒度输出控制,
    
    
    高精度的时间戳,队列操作和有能力过滤消息部分。
    
    Configuration 配置:
    
    Rsyslogd 是配置通过rsyslog.conf 文件,通常发现在/etc下。
    
    
    默认,rsyslogd 读取/etc/rsyslog.conf. 这个可以通过命令行选项改变:
    
    
    注意: 配置可以内部创建交互式的通过在线rsyslog 配置创建工具:
    
    
    基本结构;
    
    
    这个章节描述rsyslog 配置基本工作,想象rsyslog 作为一个大的日志记录和事件处理工具。
    
    
    它可以认为是一个框架,一些基本的处理,以固定的数据流的方式,但是是可以高度定制的。
    
    
    在配置过程中,这个自定义是通过定义和定制在rsyslog objects.
    
    
    
    快速预览消息流和对象:
    
    
    Message 输入到rsyslog 使用input modules模块。然后,它们是被传递到规则集,
    
    
    规则条件是有条件的被应用。  当一个规则匹配时,消息是传入到一个action,
    
    
    然后对消息做处理,例子,写到一个文件,数据库或者转发给远程主机。
    
    
    处理原则:
    
     输入提交接收消息到规则集,如果 规则集没有没有明确的限制,默认规则集被使用:
    
    
    默认的, 这里有一个规则集(RSYSLOG_DefaultRuleset)
    
    2.额外的规则集可以用户自定义
    
    3.每个规则集包含0个或者多个规则
    
      虽然它允许有0个规则在规则集内,但是这显然是没有意义的
    
      一个规则有一个过滤器和一个action列表组成
    
      过滤器提供yes/no 决定从而控制流能力
    
    4.如果一个过滤器"matches" (过滤器says yes),相应的action 列表被执行,如果它不匹配,没有什么发生
    
    
    5.规则是按顺序被评估从第一个到最后一个规则 在给定的规则集,  没有规则从相关的规则集是被执行
    
    
    6.所有的规则总是被完全评估的,无论一个过滤器匹配或不匹配(因此我们不在第一个匹配后就停止).
    
    
    如果消息处理应该停止,那么"discard" action (通过 tilde character 或者stop command为代表)
    
    必须明确的被执行。如果 discard被执行,消息处理立即停止,不会进一步的评估。
    
    
    7.一个action 列表包含0个或者多个actions.
    
    8.在一个action列表没有进一步的过滤器是可能的
    
    9. 多余一个action 在一个列表,&字符必须防止在过滤器的位置,这个必须理解遵循之前的动作。
    
    10. actions 包含action 请求本身(例如  ”:omusrmsg:”) 以及action定义配置语句($Action... directives)
    
    
    11.如果  legacy format被使用,$Action... 指示必须被定义在action前面
    
    12.一些配置指令自动的指向到它们先前的值在被应用后,而其他的不是。
    
    查看相应的文档获取细节, 警告 当前的不总是正确记录的。
    
    
    13.总的来说, rsyslog v5 是过时的,它的配置语言是痛苦的
    
    rsyslog 项目强烈推荐使用至少version 7,在那里那些版本是解决和配置是更加简单的
    
    legacy  配置语句不影响RainerScript  对象
    
    
    Configuration File:
    
    在启动时, rsyslog 读取它的配置从rsyslog.conf 文件默认情况下, 
    
    这个文件可能包含引用到包含其他的配置文件。
    
    
    一个不同的"root" 配置文件可以通过-f选项指定
    
    
    Statement Types
    
    
    Rsyslog 支持3种不同类型的配置声明:
    
    sysklogd  这是简单的旧格式, 仍旧相当有用对于一些简单的情况。
    
    
    注意一些非常少的结构是不在被支持  因为它们是不兼容新的功能
    
    
    legacy rsyslog
    
    这些是语句开始一个dollar 符号, 它们设置相同配置参数和修改例子actions操作的例子。
    
    这是唯一的格式被吃在V6版本之前。
    
    它是仍旧被支持在V6和以上版本。
    
    它是仍旧被支持在V6和以上版本。注意 一些插件和功能仍旧是可用的通过 legacy format
    
    
    RainerScript: 新的样式,这是最好的和最精确的格式用于更复杂的情况。 本页的其余部分假设RainerScript 基于rsyslog.conf.
    
    
    
    rsyslog.conf 文件有声明组成,对于老的格式(sysklogd & legacy rsyslog), 
    
    
    对于新的样式(RainerScript) 行间距是无关紧要的。
    
    
    最重要的是,这意味着 新的样式actions 和所有其他的对象可以分散在多行
    
    Recommended use of Statement Types  推荐使用的声明类型:
    
    
    通常 它是推荐使用RainerScript 类型声明, 因为它们提供干净的和简单的读取流控制以及毫无因为的 关于 那个参数是活动的。
    
    它们也没有副作用和包含文件, 可以是一个主要的障碍在 legacy rsyslog statements
    
    
    对于很简单的事情 sysklogd statement types仍旧是推荐的,尤其是如果完全配置有简单的组成。
    
    
    经典的例子是写到文件里(或者代理)通过优先级,In sysklogd, this looks like:
    
    
    mail.info /var/log/mail.log
    mail.err @server.example.net
    
    
    
    这是一个很难被击败的简单性,很多人知道这种语法,它是相当完美的使用那些结果即使在新写的配置文件。
    
    
    作为一个经验法则,RainerScript  配置语句应该被使用当:
    
    1.配置参数是需要的(例如,Action legacy statements的类型)
    
    
    2.更精细的流程控制是需要的(例如,当多个actions 必须嵌套在相同的条件下)
    
    
    3.它通常不推荐使用rsyslog legacy 配置格式(那些指令以$符号开始)
    
    然而,一些设置和模块没有被转换成RainerScript。在那些情况下,  legacy syntax必须被使用。
    
    
    处理顺序:
    
    指令是被处理从rsyslog.conf的顶部到底部,订购事宜。例如,你停止处理一个消息,显然所有的语句在停止语句是不会被评估了。
    
    
    Flow Control Statements 流程控制声明
    
    数据处理声明:
    
    数据操作是通过set,unset和reset语句完成
    
    Inputs:
    
    每个输入需要一个input 模式被加载,一个侦听器定义它。完整的details 可以被找到在rsyslog 模块文档。
    
    一旦加载,inputs 是定义通过input()对象。
    
    
    Outputs
    
    
    Outpus 也被称为"actions"  一些小的actions的集合被提前加载(像output file writer,
    
    
    可以用于机遇每个rsyslog.conf文件), 其他必须被加载像inputs.
    
    
    一个action 被调用通过action(type=”type” ...)对象。
    
    Typel 是强制的和必须包含插件的名字
    
    Rulesets and Rules
    
    
    Rulesets and rules 从rsyslog处理的基础,总之,一个规则是rsyslog应该处理一个特定消息的方式。
    
    
    
    通常,会有一个过滤器的类型(if语句)在规则前面,复杂的嵌套的规则是可能的, 很像一个编程语言
    
    
    
    规则集是规则的容器, 一个简单的规则集可以包含很多规则。
    
    
    和编程语言相似,人们可能认为规则集就像一个编程。
    
    
    一个规则集可以认为“bound” 分配给一个特定的input.
    
    
    类比,这个意味着 当一个消息来自通过input,程序规则集会被执行
    
    
    ruleset(name="rulesetname") {
        action(type="omfile" file="/path/to/file")
        action(type="..." ...)
        /* and so on... */
    }
    


    
    
    
                                        
    
  • 相关阅读:
    HDU
    HYSBZ
    HDU
    POJ
    HDU
    HDU
    HDU
    「luogu2680」[NOIp2015] 运输计划
    「luogu1417」烹调方案
    网络(最大)流初步+二分图初步 (浅谈EK,Dinic, Hungarian method:]
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350443.html
Copyright © 2020-2023  润新知