Elasticsearch: обработчик типа [ключевое слово], объявленный в поле [имя хоста]
Я выхожу из-за ошибки сопоставления карт в Elicsearch при индексировании журнала из файла filebeat.
Я попробовал как Filebeat → Elasticserach, так и Filebeat → Logstash → Elasticsearch.
Я следил за их документами, я установил шаблон filebeat в соответствии с инструкциями и подтвердил с помощью загрузки шаблона индекса в Elasticsearch | Ссылка на файл
Мой elasticsearch обычно отлично работает с другими индексами данных, и я тестировал их на Kibana. Его официальный докер Docker Hub | Установка Elasticsearch.
Погубился много без везения, поэтому любая помощь приветствуется.
ОБНОВЛЕНИЕ 1:
Версия ES: 2.3.3 (я считаю, последний)
Файл шаблона по умолчанию поставляется с файловым битом.
{
"mappings": {
"_default_": {
"_all": {
"norms": false
},
"dynamic_templates": [
{
"fields": {
"mapping": {
"ignore_above": 1024,
"type": "keyword"
},
"match_mapping_type": "string",
"path_match": "fields.*"
}
}
],
"properties": {
"@timestamp": {
"type": "date"
},
"beat": {
"properties": {
"hostname": {
"ignore_above": 1024,
"type": "keyword"
},
"name": {
"ignore_above": 1024,
"type": "keyword"
}
}
},
"input_type": {
"ignore_above": 1024,
"type": "keyword"
},
"message": {
"norms": false,
"type": "text"
},
"offset": {
"type": "long"
},
"source": {
"ignore_above": 1024,
"type": "keyword"
},
"type": {
"ignore_above": 1024,
"type": "keyword"
}
}
}
},
"order": 0,
"settings": {
"index.refresh_interval": "5s"
},
"template": "filebeat-*"
}
ОБНОВЛЕНИЕ 2: Вы правы, см.
#/usr/share/filebeat/bin/filebeat --version filebeat version 5.0.0-alpha2 (amd64), libbeat 5.0.0-alpha2
Хотя это сообщение журнала apache для logstash. Но я не могу получить этот vhost_combined журнал в правильном формате
sub1.example.com:443 1.9.202.41 - - [03/Jun/2016:06:58:17 +0000] "GET/notifications/pendingCount HTTP/1.1" 200 591 0 32165 "https://sub1.example.com/path/index?var=871190" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
"message" => "%{HOSTNAME:vhost}\:%{NUMBER:port} %{COMBINEDAPACHELOG}"
Ответы
Ответ 1
Вы не можете использовать "type": "keyword"
с ES 2.3.3, так как новый тип данных в ES 5 (в настоящее время в alpha3)
Вы должны заменить все эти
"type": "string",
"index": "not_analyzed"
filebeat.template-es2x.json
этого вам нужно использовать filebeat.template-es2x.json
.