# Ошибка : Could not index event to Elasticsearch

**URL:** https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630
**Category:** Вопросы на русском языке
**Created:** [October 15, 2019, 11:17am UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630 "2019-10-15T11:17:57Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![beren](https://avatars.discourse-cdn.com/v4/letter/b/87869e/32.png) [@beren](https://discuss.elastic.co/u/beren)
#### Post date: [October 15, 2019, 11:17am UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/1 "2019-10-15T11:17:57Z")

</div>

Всем привет.

В /etc/logstash/conf.d/postfix.conf  
[http://pastebin.calculate-linux.ru/ru/show/127900](http://pastebin.calculate-linux.ru/ru/show/127900)  
В /etc/logstash/patterns/postfix  
[http://pastebin.calculate-linux.ru/ru/show/127901](http://pastebin.calculate-linux.ru/ru/show/127901)

Но в логах logstash

```auto
Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>"buildlog4", :_type=>"_doc", :routing=>nil}, #<LogStash::Event:0x49522875>], :response=>{"index"=>{"_index"=>"buildlog4", "_type"=>"_doc", "_id"=>"tmgaz20Bp3jq-MOqGvqp", "status"=>400, "error"=>{"type"=>"mapper_parsing_exception", "reason"=>"failed to parse field [host] of type [text] in document with id 'tmgaz20Bp3jq-MOqGvqp'. Preview of field's value: '{name=elk.mydomain.com}'", "caused_by"=>{"type"=>"illegal_state_exception", "reason"=>"Can't get text on a START_OBJECT at 1:357"}}}}}

```

В настройках filebeat

```auto
filebeat.inputs:
- type: log
  enabled: true
  paths:
      - /var/log/maillog*
  exclude_files: [".gz$"]
output.logstash:
  hosts: ["10.50.11.8:5044"]

```

То есть postifx лезет в во все индексы. Как настроить, чтобы postfix был только в своём индексе ?

Если output конфига logstash сделать:

```auto
output {
if "postfix" in [tags]{
        elasticsearch {
            hosts => "localhost:9200"
            index => "postfix-%{+YYYY.MM.dd}"
        }
}
}

```

И в filebeat.yml сделать :

```auto
filebeat.inputs:
- type: log
  enabled: true
  paths:
      - /var/log/maillog*
  exclude_files: [".gz$"]
tags: ["postfix"]
output.logstash:
  hosts: ["10.50.11.8:5044"]

```

Это не поможет. Можете помочь ?

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [October 16, 2019, 5:48pm UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/2 "2019-10-16T17:48:10Z")

</div>

Там, в принципе, все написано, только надо внимательно прочитать.

Ошибка:

> "Could not index event to Elasticsearch.

Значит что logstash послал сообщение на индексацию, но Elasticsearch это сообщение не принял. Почему?

> "reason"=\>"failed to parse field [host] of type [text] in document with id 'tmgaz20Bp3jq-MOqGvqp'.

То есть у нас был документ с id `mgaz20Bp3jq-MOqGvqp`, и в нем было поле `host`, которое Elasticsearch пытался интерпретировать как текст но не смог. Что же в этом поле такое было?

> Preview of field's value: '{[name=elk.mydomain.com](http://name=elk.mydomain.com)}'"

Ага, значит в документе было что-то вроде `{..... "host": {"name": "elk.domain.com"} ...}` и судя по

> "reason"=\>"Can't get text on a START\_OBJECT at 1:357"

Произошло это на 357-м символе.

Результат: mapping для поля `host` в индексе не соответсвует посылаемой информации.

---

<div class="post-metadata">

### Author: ![beren](https://avatars.discourse-cdn.com/v4/letter/b/87869e/32.png) [@beren](https://discuss.elastic.co/u/beren)
#### Post date: [October 17, 2019, 6:49am UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/3 "2019-10-17T06:49:16Z")

</div>

Огромное спасибо.

Такие ошибки на всех других индексах.

То по идее можно ли переименовать поля в индексе postfix ? Например если host нельзя, то server. Если да, то как это сделать ?  
Вот конфиг logstash для индекса postfix [https://pastebin.com/k6rnyjE3](https://pastebin.com/k6rnyjE3)

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [October 17, 2019, 12:31pm UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/4 "2019-10-17T12:31:44Z")

</div>

Как вы mapping для этих индексов создаете?

---

<div class="post-metadata">

### Author: ![beren](https://avatars.discourse-cdn.com/v4/letter/b/87869e/32.png) [@beren](https://discuss.elastic.co/u/beren)
#### Post date: [October 17, 2019, 1:03pm UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/5 "2019-10-17T13:03:15Z")

</div>

В Index Managment любого индекса  
 ![image](https://us1.discourse-cdn.com/elastic/original/3X/5/b/5b2e413bd81a43f2d9e032cad88caddd906a3885.png)

Это значит, что поля не в схеме игнорируются ?

Это имеется в виду ?

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [October 17, 2019, 1:14pm UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/6 "2019-10-17T13:14:01Z")

</div>

В этом индексе он как-раз должен был сработать. Странно.

---

<div class="post-metadata">

### Author: ![beren](https://avatars.discourse-cdn.com/v4/letter/b/87869e/32.png) [@beren](https://discuss.elastic.co/u/beren)
#### Post date: [October 17, 2019, 1:29pm UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/7 "2019-10-17T13:29:43Z")

</div>

Тогда для примера будем смотреть индекс buildlog4. Вот его ![image](https://us1.discourse-cdn.com/elastic/original/3X/e/7/e7768bdb02b0c1c8078cad0b8fdb3316f689adbe.png)

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [October 17, 2019, 1:31pm UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/8 "2019-10-17T13:31:28Z")

</div>

Да, с этим индексом проблемы, так как у вас `host` проиндексирован как `text`, а вы в него помещаете объект.

---

<div class="post-metadata">

### Author: ![beren](https://avatars.discourse-cdn.com/v4/letter/b/87869e/32.png) [@beren](https://discuss.elastic.co/u/beren)
#### Post date: [October 17, 2019, 1:37pm UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/9 "2019-10-17T13:37:09Z")

</div>

Понятно.

То есть в своём индексе postfix ничего не получиться сделать ? Надо в маппингах проблемных менять ?

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [October 18, 2019, 10:34am UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/10 "2019-10-18T10:34:19Z")

</div>

Надо менять в тех индексах, в которые вы пишите. Либо переформатировать это поле в вашем документе.

---

<div class="post-metadata">

### Author: ![beren](https://avatars.discourse-cdn.com/v4/letter/b/87869e/32.png) [@beren](https://discuss.elastic.co/u/beren)
#### Post date: [October 18, 2019, 10:46am UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/11 "2019-10-18T10:46:40Z")

</div>

Спасибо.

Подскажите, пожалуйста, как переименовать в моём документе поле host в поле server.

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [October 18, 2019, 10:52am UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/12 "2019-10-18T10:52:11Z")

</div>

С помощью mutate. Вопрос только в том, стоит ли это делать, или лучше стоит правильно настроить mapping.

---

<div class="post-metadata">

### Author: ![beren](https://avatars.discourse-cdn.com/v4/letter/b/87869e/32.png) [@beren](https://discuss.elastic.co/u/beren)
#### Post date: [October 18, 2019, 11:05am UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/13 "2019-10-18T11:05:11Z")

</div>

Спасибо. Я прочитав доку, понял что это делается так

```auto
mutate {
   rename => ["host", "server"]
   convert => {"server" => "string"} 
}

```

Там индексов с полями host больше десятка.

Как это использовать в моём случае и почему не стоит этого делать ?

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [October 18, 2019, 11:16am UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/14 "2019-10-18T11:16:12Z")

</div>

Я так понимаю, что host у вас добавляется одним из beat-ов. Это приложение также устанавливает [шаблоны индексов](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-template.html), которые это поле должны правильно настроить. А также [дашборды](https://www.elastic.co/guide/en/beats/filebeat/current/load-kibana-dashboards.html), которые эти поля используют. Вы конечно, можете все это дело взять в свои руки, если хотите.

---

<div class="post-metadata">

### Author: ![beren](https://avatars.discourse-cdn.com/v4/letter/b/87869e/32.png) [@beren](https://discuss.elastic.co/u/beren)
#### Post date: [October 21, 2019, 2:13pm UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/15 "2019-10-21T14:13:40Z")

</div>

Я добавил в каждый фильтр

```auto
mutate {
   rename => ["host", "server"]
   convert => {"server" => "string"} 
}

```

То есть получилось [http://pastebin.calculate-linux.ru/ru/show/128398](http://pastebin.calculate-linux.ru/ru/show/128398)  
Ошибка пропала и индекс создался. Правильно ли это ?

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [November 18, 2019, 2:13pm UTC](https://discuss.elastic.co/t/could-not-index-event-to-elasticsearch/203630/16 "2019-11-18T14:13:44Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
