日志管理——rsyslog

官方文档(必看)

http://www.rsyslog.com/doc/v8-stable/

简介

rsyslog是linux自带日志管理工具,分为客户端服务端,包含日志收集过滤分析转储.

数据流程

简单应用(local-file --> client --> server --> kafka)

下面是一个例子,客户端从文件读取数据,发送给服务端,再由服务端转储到kafka

  1. 客户端配置

加载module

module(load="imfile")
module(load="omfwd")

input

input(type="imfile"
    File="/ddhome/usr/data/web/logs/wifi-service.log"
    Ruleset="test")

ruleset

ruleset(name="test") {
    action(type="omfwd"
        protocol="udp"
        Target="192.168.100.120"
        Port="514")
}

udp协议: @

*.*   @192.168.100.120:514
  1. 服务端配置

加载module

module(load="imudp")
module(load="omkafka")

模板配置
日志模板
%timegenerated:1:10:date-rfc3339% : yyyy-mm-dd
%timegenerated:12:19:date-rfc3339% : hh:mm:ss
%fromhost-ip% : source ip
%syslogseverity-text% : log level : info, debug...
%syslogtag% : LinkProof:
2018-02-02 21:07:32 192.168.254.253 info LinkProof: + msg

template(name="log-format"
        type="string"
        string="%timegenerated:1:10:date-rfc3339% %timegenerated:12:19:date-rfc3339% %fromhost-ip% %syslogseverity-text% %syslogtag% %msg:2:$:drop-cc%
"
)

文件模板: 按文件来源ip按天分隔文件

template(name="file-format" type="string" string="/var/lib/rsyslog/%fromhost-ip%/%$YEAR%%$MONTH%%$DAY%.log")

ruleset: 多个action

ruleset(name="rule-kafka") {
        action (type="omkafka"
                template="log-format"
                topic="rsyslog_net"
                broker=["dde:9092"]
                errorFile="/var/log/rsyslog/kafka-error.log"
               )

        action(type="omfile"
                dynaFile="file-format"
                template="log-format"
              )
}
原文地址:https://www.cnblogs.com/dzqk/p/8417160.html