Добрый день.
Есть некоторая проблема, корни которой в моем незнании комплекса в целом.
Данные отправляются filebeat'ем в ELK, индекс строится, строятся поля, пока что некоторые - еще дописываю регулярку.
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})