官方文档(必看)
http://www.rsyslog.com/doc/v8-stable/
简介
rsyslog是linux自带日志管理工具,分为客户端服务端,包含日志收集过滤分析转储.
数据流程
简单应用(local-file --> client --> server --> kafka)
下面是一个例子,客户端从文件读取数据,发送给服务端,再由服务端转储到kafka
- 客户端配置
加载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
- 服务端配置
加载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"
)
}