logstash6.8.12动态生成elasticsearch的index的正确方法

网上有很多的【假】logstash动态生成index的文章,看了很多,根本不符合我的需求,所以我决定来一篇干货,真正的解决问题。人狠话不多,代码直接上。我是使用官方提供的helm包进行安装的,如果想要完整部署文件,可以来联系我。QQ:357244849


logstash的关键配置.这个配置文件的目的是这样的:

1.使用udp端口9998 接受来自数据源的信息;

2.通过filter插件,先把message转成json格式,这一步很重要,很多文章里都不提这个;

3.判断接受到的数据里,是否包含app_name这个key,如果包含,就把app_name里的值提出来,和当前日期组合到一起,作为传入elasticsearch的index名字。如果不包含,就生成一个字符串non_index_log作为elasticsearch的index名字;

4.把日志转发到elasticsearch里,同时打印在控制台里


为了测试这样配置之后的logstash效果如何,我们可以使用一个python代码

通过运行上述代码,我们可以去检查logstash的控制台是否产生了index_name,理论上来说,会产生一个

“index_name” => “temp-lizhenwei-python2-2020.09.03″和”index_name” => “non_index_log”如下图所示


最后,我们去kibana里面检查一下elasticsearch的index,确实产生了我们需要的两个index

Posted in Elasticsearch