#logstash #logstash-grok
Вопрос:
Существует журнал 2 типов: 1.sshd: d.kuprevich@pts/0/79512/1012 124.25 111.561 2.74.205.155.180:52472-76.121.32.65:443/0/0 1.4234 11.4315 В первом случае после sshd: пробел
Вот конфигурация из https://grokdebug.herokuapp.com/ для первого и второго случая
- (? <Ip, порт>% {IPORHOST}% {NOTSPACE} s % {NOTSPACE}) s % {NOTSPACE: получен_траффик} s % {NOTSPACE: передан_траффик}
- (? <Ip, порт>% {IPORHOST}% {NOTSPACE}% {NOTSPACE}) s % {NOTSPACE: received_traffic} s % {NOTSPACE: transmitted_traffic} Они работают каждый для своего случая, но мне нужен универсальный для обоих случаев, но я пока ничего не могу придумать. Справка.
И второй вопрос, если возможно, в конфигурации logstash у меня есть входной файл, в нем условно 5 строк, после вывода на консоль kibana я вижу все те же данные 2 раза, но с разными идентификаторами, пожалуйста, скажите мне, как избавиться от данного дублирования. Спасибо за помощь.
Ответ №1:
Помещая каждое число в отдельное поле:
%{HOSTPORT:IP_1}-%{HOSTPORT:IP_2}/%{NUMBER:NUMBER_1}/%{NUMBER:NUMBER_2}%{SPACE}%{NUMBER:NUMBER_3}%{SPACE}%{NUMBER:NUMBER_4}
Для данной строки журнала вы получите:
NUMBER_3 10.5678
NUMBER_2 0
NUMBER_1 0
NUMBER_4 1516.17
IP_2 14.212.55.167:80
IP_1 91.231.121.222:35712
Чтобы помочь вам в следующий раз, когда вы попытаетесь написать шаблон:
тестер шаблонов: http://grokconstructor.appspot.com/do/match
список базовых шаблонов: https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/ecs-v1/grok-patterns