Logstash中配置默认索引映射

Posted 席飞剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Logstash中配置默认索引映射相关的知识,希望对你有一定的参考价值。

ES中使用自动检测对索引字段进行索引,例如IP、日期自动检测(默认开启)、数字自动检测(默认关闭)进行动态映射自动为文档设定索引,当需要为字段指定特定的类型时,可能使用Mapping在索引生成定义映射,

Logstash中默认索引的设置是基于模板的。

首先我们需要指定一个默认的映射文件,文件的内容大致如下:

{
  "template" : "logstash-*",
  "mappings" : {
    "_default_" : {
       "properties" : {
             "ip" :{
                  "type":"ip"
             }
          }
       }
    }
}    

其中template定义了匹配的索引模式,如果针对于特定的某个索引,则直接写成索引的名字即可。下面定义了映射的相关信息,与API的内容相同。

有了上面的配置文件,就可以在Logstash中配置output插件了:

output {
    elasticsearch {
        host => "localhost" #ES的服务器地址
        protocol => "http" #使用的协议,默认可能会使用Node,具体还要看机器的环境
        index => "logstash-%{+YYYY.MM.dd}" #匹配的索引模式
        document_type => "test" #索引的类型,旧的配置会使用index_type,但是这个字段在新版本中已经被舍弃了,推荐使用document_type
       manage_template => true #注意默认为true,一定不能设置为false
        template_overwrite => true #如果设置为true,模板名字一样的时候,新的模板会覆盖旧的模板
        template_name => "myLogstash" #注意这个名字是用来查找映射配置的,尽量设置成全局唯一的
      template => "/home/apps/test/logstash.conf" #映射配置文件的位置
    }
}

以上是关于Logstash中配置默认索引映射的主要内容,如果未能解决你的问题,请参考以下文章

Logstash动态模板映射收集Nginx的Json格式的日志

Logstash 时区问题导至数据被写进错误的 ES 索引的解决方法

Logstash-自定义模板配置中文分词

设置elasticsearch的默认分区数和副本数

和我一起打造个简单搜索之Logstash实时同步建立索引

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例