ELK之LogStash读取JSON日志分类型建立索引

测试目的是,用ELK处理在业务中用户定义的json log日志,则试PHP脚本如下:

<?php
for( $i=0;$i<100;$i++)
{
        $reg = array(
                'method' => 'login',
                'user_id' => rand(1000,3000),
                'user_name' => "name_".rand(1,3000 ),
                'level' => 1,
                'register_time' => time(),
        );
        $str = json_encode( $reg );
        file_put_contents( "testlog" , $str."\n" , FILE_APPEND );
        $reg = array(
                'method' => 'register',
                'user_id' => rand(1000,3000),
                'user_name' => "name_".rand(1,3000 ),
                'level' => rand(1,30),
                'login_time' => time(),
        );
        $str = json_encode( $reg );
        file_put_contents( "testlog" , $str."\n" , FILE_APPEND );
}

复制代码

循环生成注册log和登录log保存到testlog文件中,结果如下:

{"method":"register","user_id":2933,"user_name":"name_91","level":27,"login_time":1470179550}
{"method":"login","user_id":1247,"user_name":"name_979","level":1,"register_time":1470179550}
{"method":"register","user_id":2896,"user_name":"name_1972","level":17,"login_time":1470179550}
{"method":"login","user_id":2411,"user_name":"name_2719","level":1,"register_time":1470179550}
{"method":"register","user_id":1588,"user_name":"name_1484","level":4,"login_time":1470179550}
{"method":"login","user_id":2507,"user_name":"name_1190","level":1,"register_time":1470179550}
{"method":"register","user_id":2382,"user_name":"name_234","level":21,"login_time":1470179550}
{"method":"login","user_id":1208,"user_name":"name_443","level":1,"register_time":1470179550}
{"method":"register","user_id":1331,"user_name":"name_1297","level":3,"login_time":1470179550}
{"method":"login","user_id":2809,"user_name":"name_743","level":1,"register_time":1470179550}

 

logstash目录下建立配置文件

vim config/json.conf

复制代码

input {
    file {
        path => "/home/bona/logstash-2.3.4/testlog"
        start_position => "beginning"
        codec => "json"
    }
}


output {
   elasticsearch {
        hosts => ["192.168.68.135:9200"]
        index => "data_%{method}"
   }
}

复制代码

重点是index中,%{method} 来匹配log中的method字段.

以上log就会分别建立data_login   data_register两个索引, 要注意的是索引名称必须全部小写

ES中已经成功以method建立了索引

elasticsearch-sql查询

 

参考资料:

http://udn.yyuap.com/doc/logstash-best-practice-cn/output/elasticsearch.html

https://github.com/NLPchina/elasticsearch-sql

转载于:https://my.oschina.net/appnet/blog/726275

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值