logstash简单使用

工作中遇见一个问题就是,我要将打印到日志中的信息,录入es

这个需求目前很多开源的工具都可以实现,比如flume,logstash,至于为什么我用logstash,只是因为同事有人用过,我觉得又不会的可以咨询一下,所以,,,就选了logstash

1,下载logstash

wget https://vos-dl.vipkid-qa.com.cn/logstash-6.2.4.tar.gz
还是很方便的,开箱即用

tar -zxvf logstash-6.2.4.tar.gz

目录结构:提示,没有logstash.sh,这个是我自己写的启动脚本

11b284a40632b41b08f7f1dcbc8ff80db0c.jpg

2,编写配置文件

cd config

新建配置文件

vim logstash.conf

    file{//数据源,文件
                type => "es_index"//变量,下面回用,
        # 要读取的日志文件
        path=>["/opt/vipkid/logtransferApp/var/errorData.log*"]//读取的文件路径
        # 从文件读取日志的间隔,单位:秒
        stat_interval=>5
        start_position => "beginning"//启动时,从头开始读
                codec => json {
                        charset => "UTF-8"
                }
    }
}


filter {//过滤,类似于通道,进行数据解析,清晰
        mutate{
        split=>["message","[INFO]"]//这里就千奇百怪了,我的需求与时,需要将真正的日志摘出来,想到的办法:用[INFO]切分字符串,然后去数组第二个
                add_field => {
            "field1" => "%{[message][1]}"//取到的值赋给field1
        }
    }
        if [type] == "vklm_webapm_big_data" {
         json {
             source => "field1"//field1作为数据源
             #target => "doc"
             remove_field => ["message"]//不保留原始字段
         }
     }
}

output{//这个就简单了,输出到es
  elasticsearch {
    id => "es__index"
    action => "index"
    codec => "plain"
    doc_as_upsert => "false"
    hosts => ["xx.xxx.xx.xx:9200","xx.xx.xx.xx:9200"]//9200
    index => "es_index-%{+YYYY-MM-dd}"
    document_type => "es_itype"
    pool_max => 20000
    retry_on_conflict => 3
    sniffing => true
  }

}
   

转载于:https://my.oschina.net/u/3796880/blog/3083367

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值