# \[closed\]не выстраиваются поля

**URL:** <https://discuss.elastic.co/t/closed/61264>\
**Category:** Вопросы на русском языке\
**Created:** [September 22, 2016, 1:44pm UTC](https://discuss.elastic.co/t/closed/61264 "2016-09-22T13:44:44Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![antonyc](https://avatars.discourse-cdn.com/v4/letter/a/54ee81/32.png) [@antonyc](https://discuss.elastic.co/u/antonyc)\
**Post date:** [September 22, 2016, 1:44pm UTC](https://discuss.elastic.co/t/closed/61264/1 "2016-09-22T13:44:44Z")

</div>

Добрый день.  
Есть некоторая проблема, корни которой в моем незнании комплекса в целом.  
Данные отправляются filebeat'ем в ELK, индекс строится, строятся поля, пока что некоторые - еще дописываю регулярку.  
[http://grokconstructor.appspot.com/do/match](http://grokconstructor.appspot.com/do/match) проверил мой фильтр и в нем match'ится куски лога по регулярке, поля появляются.

Файлы input, filter и output написаны с цифрами в названиях по возрастанию

[details=input]input {  
beats {  
port =\> 5044  
}  
}

## [/details]

> **фильтр**
>
> filter {  
> if [type] == "syslog" or [type] == "maillog" {  
> grok {  
> match =\> { "message" =\> "%{SYSLOGTIMESTAMP:syslog\_timestamp} %{SYSLOGHOST:syslog\_hostname} %{DATA:program}(?:[%{POSINT:syslog\_pid}])?: %{GREEDYDATA:syslog\_message}" }  
> add\_field =\> ["received\_at", "%{@timestamp}"]  
> add\_field =\> ["received\_from", "%{host}"]  
> }  
> }  
> else if [type] == "nginx-errors" {  
> grok {  
> patterns\_dir =\> "/opt/logtash/patterns"  
> match =\> { "message" =\> "%{NGINX\_CUSTERR}" }  
> add\_field =\> ["received\_at", "%{@timestamp}"]  
> add\_field =\> ["received\_from", "%{host}"]
> 
> }  
> }  
> date {  
> locale =\> "en"  
> match =\> ["timestamp", "Day dd YYYY, HH:mm:ss:sss"]  
> timezone =\> "Europe/Moscow"Client host rejected: cannot find  
> your hostname  
> target =\> "@timestamp"  
> }  
> }

* * *

> **output**
>
> output {  
> if "maillog" in [type] {  
> elasticsearch {  
> hosts =\> ["192.168.1.162:9200"]  
> index =\> "maillog-%{+YYYY.MM.dd}"  
> }  
> }  
> if "nginx-errors" in [type] {  
> elasticsearch {  
> hosts =\> ["192.168.1.162:9200"]  
> index =\> "nginx-errors-%{+YYYY.MM.dd}"  
> }
> 
> } else if "apache-access" in [type] {  
> elasticsearch {  
> hosts =\> ["192.168.1.162:9200"]  
> index =\> "apache-access-%{+YYYY.MM.dd}"
> 
> ```
> }
> 
> ```
> 
> } else {  
> elasticsearch {  
> hosts =\> ["192.168.1.162:9200"]  
> sniffing =\> true  
> manage\_template =\> false  
> index =\> "%{[@metadata][beat]}-%{+YYYY.MM.dd}"  
> }  
> }  
> }

отправка логов:

[details=filebeat.yml

]  
filebeat:  
prospectors:  
-  
paths:  
- files/error.log  
input\_type: nginx-errors  
document\_type: nginx-errors  
[/details]

Суть проблемы в том, что в поле message попадают куски лога, а именно, начало следующей строки, только два слова.

Подскажите, пожалуйста, чего я не понимаю или недоглядел?

> **версия Elastic'а и Logstash'а**
>
> "name" : "Namor McKenzie",  
> "cluster\_name" : "elasticsearch",  
> "version" : {  
> "number" : "2.3.1",  
> "build\_hash" : "bd980929010aef404e7cb0843e61d0665269fc39",  
> "build\_timestamp" : "2016-04-04T12:25:05Z",  
> "build\_snapshot" : false,  
> "lucene\_version" : "5.5.0"  
> /opt/logstash/bin/logstash -v  
> file-5.14

Вопрос снимается, кривая регулярка:

> **регулярка**
>
> ^_+?(?PHP.+?):\s+([(?%{MONTHDAY}-%{MONTH}-%{YEAR}\s%{TIME})]\s+)?(?.+?):\s_(?.+?)(called)\*\s?\s+in\s(?%{UNIXPATH})\son\sline\s(?%{INT})

---

<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:** [September 24, 2016, 6:30am UTC](https://discuss.elastic.co/t/closed/61264/2 "2016-09-24T06:30:50Z")

</div>

> [@antonyc](#):
>
> Суть проблемы в том, что в поле message попадают куски лога, а именно, начало следующей строки, только два слова.

Не совсем понял, что это значит. В message должена находится вся строка целиком, если ее не переписывать. Вы не могли бы пример исходной строки лога и записи в elasticsearch показать?

---

<div class="post-metadata">

**Author:** ![antonyc](https://avatars.discourse-cdn.com/v4/letter/a/54ee81/32.png) [@antonyc](https://discuss.elastic.co/u/antonyc)\
**Post date:** [September 26, 2016, 8:54am UTC](https://discuss.elastic.co/t/closed/61264/3 "2016-09-26T08:54:32Z")

</div>

Конечно.

 ![](https://us1.discourse-cdn.com/elastic/original/2X/a/a7b4487b1c149b18fe4978f618ead3ff5cef0550.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:** [September 26, 2016, 10:25pm UTC](https://discuss.elastic.co/t/closed/61264/4 "2016-09-26T22:25:59Z")

</div>

Какая версия filebeat?

---

<div class="post-metadata">

**Author:** ![antonyc](https://avatars.discourse-cdn.com/v4/letter/a/54ee81/32.png) [@antonyc](https://discuss.elastic.co/u/antonyc)\
**Post date:** [September 27, 2016, 8:09am UTC](https://discuss.elastic.co/t/closed/61264/5 "2016-09-27T08:09:49Z")

</div>

filebeat version 1.2.2 (amd64)

---

<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:** [July 6, 2017, 1:45pm UTC](https://discuss.elastic.co/t/closed/61264/6 "2017-07-06T13:45:16Z")

</div>


