У меня есть сервер logstash, отправляющий события на сервер elasticsearch, который отображает результаты в Kibana. Все работает довольно хорошо, за исключением того, что Kibana показывает 2 имени в поле хоста. Я использую следующий фильтр grok в logstash.
^(?:<%{POSINT:syslog_pri}>)?%{SYSLOGTIMESTAMP:timestamp} %{IPORHOST:host} (?:%{PROG:program}(?:\[%{POSINT:pid}\])?: )?%{GREEDYDATA:message}
Когда я использую отладчик Grok, все анализируется правильно. Однако, когда я просматриваю его в Kibana, он показывает это:
"host": [
"logstash1",
"servername.domain.com"
],
Где logstash1 — это имя моего сервера logstash, который выполняет парсинг и отправку в elasticsearch. Я не уверен, почему он показывает и сервер logstash, и фактический источник в качестве хоста. Как мне удалить logstash1 из поля хоста? Вот примеры журналов:
Dec 18 00:00:08 servername.domain.com pam_rhosts_auth[24233]: allowed to [email protected] as user1
решение1
Возможность перезаписи при оформлении заказаhttp://logstash.net/docs/1.3.1/filters/grok#overwrite
grok{
...
overwrite => [ "host" ]
...
}