rsyslog

安装

源码

  • 下载
  • 构建环境最低要求
    C compiler (usually gcc)
    make
    libtool
    rst2man (part of Python docutils) if you want to generate the man files
    Bison and Flex (preferably, otherwise yacc and lex)
    zlib development package (usually libz-dev)
    json-c (usually named libjson0-dev or similar)
    libuuid (usually uuid-dev, if not present use –disable-uuid)
    libgcrypt (usually libgcrypt-dev)
    View Code
  • 配置
    # Enable MySQL support
    ./configure --enable-mysql
    View Code

YUM

  • yum
    yum install rsyslog rsyslog-mysql
    View Code

配置 

  • 主配置文件:syslog.conf【设施.级别  指令】
    #语法规则
    1.每条规则包含两个域,一个选择器,一个操作指令。
    
    2.两个域由一个或多个空格、tab 分割。
    
    #选择器
    3.选择器同样由两部分组成:设施、级别,以英文句号分割(两个都不区分大小写)
        3.1.设施
        包括:auth、authpriv、cron、daemon、ftp、kern、lpr、mail、mark、news、syslog、user、uucp、local0 到 local7。
        3.1.1.级别包括:debug、info、notice、crit、alert、emerg(其他几个弃用了)。
        3.1.2.可以在一个规则中使用“逗号”同时指定多个“设施”。
    
        3.2.级别
        3.2.1.忽略某个级别和更高级别,在级别前边带上感叹号“!”。
        3.2.2.级别的前面带上等号“=”,指定仅仅该级别,而不是模糊定义。
        3.2.3.优先级的前面带上等号“=”,指定仅仅该级别,而不是模糊定义。
        3.2.4.同时使用,必须是“!=”,表示:仅忽略单个级别。
    
        3.3.多个“选择器”可以共用一个“操作指令”,由英文分号分隔。(从左到右处理,允许覆盖前边的)。
    
    #操作指令
    4.操作指令描述的是“日志文件”(不一定是真实文件)
        4.1.常规文件
        建议使用绝对路径名
    
        4.2.命名管道
    
        4.3.终端
        /dev/console
    
        4.4.远程主机
        使用 @ 开头,指定目标
    
        4.5.用户列表
        用逗号分隔可以指定多个用户,用户登录系统就会收到日志信息。
    
        4.6.所有登录用户
        *
    View Code
  • 例子:过滤掉内核日志
    *.=crit;kern.none   /var/adm/critical
    View Code
  • 例子:内核日志
    #指定任何内核信息定向到 kernel 文件
    kern.*      /var/adm/kernel
    
    #定向 crit(或高于该级别)的信息到远程主机 finlandia
    kern.crit     @finlandia
    
    #定向到控制台,可以直接看
    kern.crit     /dev/console
    
    #从“信息”到“警告”级别的定向到 kernel-info
    kern.info;kern.!err   /var/adm/kernel-info
    View Code
  • 例子:所有的“紧急消息 ”写入当前登录的用户
    *.=emerg      *
    View Code

     
    例子:所有“紧急消息”发给所有当前登录的用户

    *.=emerg :omusrmsg:*
    View Code
  • 例子:所有消息发送到远程主机
    #@指定远程主机,使用udp协议传输数据
    *.* @server.example.net
    
    #带端口
    *.* @server.example.net:1514
    
    # @ :udp
    # @@:tcp
    #使用tcp协议传输数据
    *.* @@server.example.net:1514
    View Code
  • 例子:写入数据库
    *.* >dbhost,dbname,dbuser,dbpassword;dbtemplate
    View Code
  • 例子:包含“error”的信息发送到主机
    :msg,contains,"error" @server.example.net
    View Code

rsyslog

一切代码都是为了生活,一切生活都是调剂
原文地址:https://www.cnblogs.com/argor/p/13179013.html