ELK|gohangout替换logstash作采集端

上节说的ELK三剑客,不知怎得,EL都很占资源并不觉得什么,但是Logstash占资源却那么让人接受不了.这是因为Elasticsearch和Kinaba都会有专属的机器部署,但是Logstash作为采集端却是每个采集点都要部署的,动辄一两个G内存起,实在让人接受不了.
无独有偶,你觉得受不了的时候,已经有受不了的小伙伴儿自己动手是写出了短小精悍的gohantout.国产,开源呀,作者@childe还很热心.
官方地址:https://github.com/childe/gohangout
下载地址:https://github.com/childe/gohangout/releases
运行

gohangout --config config.yml

看起来很简单,核心就是config.yml了,我们把上节的logstash.conf重写一下.

inputs:
    - Stdin:
        codec: json
filters:
    - Json:
        field: message
    - Date:
        src: 'timestamp'
        target: '@timestamp'
        location: Asia/Shanghai
        overwrite: true
        formats:
            - '02/Jan/2006:15:04:05 -0700'
outputs:
    # - Stdout:
    #     {}
    - Elasticsearch:
        hosts:
            - 'http://192.168.2.100:9200'
        index: 'nginx-%{+2006.01.02}'
        index_type: 'nginx' # default logs
        index_time_location: 'Asia/Shanghai' # defaut UTC
        bulk_actions: 30000 #default 20000
        bulk_size: 20 # default 15 MB
        flush_interval: 5 # default 10 seconds
        concurrent_requests: 10

由于gohangout专注从kafka获取数据转换再存储到es,所以当前还没有实现从文件读取发送到es,不过没关系,我们直接用tail命令获取,然后转给gohangout,这样gohangout从stdin获取就好了.

tail -f ufw.log|./gohangou -logtostderr -v 5 --config config.yml

再去kinaba看一下,发现日志分散开了,而不是集中在当前采集的时间点


相关博文

About rainbird

IOS攻城狮
This entry was posted in ELK and tagged , , , , . Bookmark the permalink.

发表评论