刚开始搞heka,觉得潜力很大,但是很多概念和配置不清楚。
官方开源地址:https://github.com/mozilla-services/heka
下面是配置文件,
功能是想配置实现通过TCP和UDP接收日志,
然后显示出来。
UdpInput可以正常接受并显示日志;
但是配置TcpInput,能连接上但是输出的日志都为空:
```
[syslog_splitter]
type = "RegexSplitter"
delimiter = '[\S]*\n'
delimiter_eol = false
[TcpInput]
address = ":514"
splitter = "syslog_splitter"
[UdpInput]
address = ":514"
[PayloadEncoder]
append_newlines = true
[LogOutput]
message_matcher = "TRUE"
encoder = "PayloadEncoder"
```
如下配置可以正常接收 tcp 日志:
```
[newline_splitter]
type = "TokenSplitter"
delimiter = '\n'
[prdecoder]
type = "PayloadRegexDecoder"
match_regex = '(\S*\n)'
[TcpInput]
address = ":514"
splitter = "newline_splitter"
decoder = "prdecoder"
use_tls = false
[UdpInput]
address = ":514"
[PayloadEncoder]
append_newlines = true
[LogOutput]
message_matcher = "TRUE"
encoder = "PayloadEncoder"
```
这段时间工作主要是heka,准备继续深入学习一下并写一个开源的工具书,希望有同好一起学习交流。
抱歉这段时间比较忙,还什么都没写:https://github.com/wangfeiping/hekabook
[prdecoder]
type = "PayloadRegexDecoder"
match_regex = '(\S*\n)'
和上面的类似吧,好像heka里的正则都要求包含‘捕获组’,我没有深入使用过,因为我们的需要多个正则匹配,用logstash grok测的时候性能比较低,感觉这样用heka性能也不会太好。
因为我这边公司的需求比较复杂,所以都是用lua开发的插件,直接通过解析字符串实现的。
#9
更多评论