Logstash, соответствующий ceph разделение клиента и сервера

Таким образом, у меня есть новая установка logstash, и я пытаюсь развернуть logstash, чтобы разобраться с журналами.

Я прохожу и в конечном счете сегментирую фильтры logstash на основе подсистемы, и в настоящее время я работаю над парсингом osd журналы.

Вот демонстрационная строка, с которой я работаю:

2015-06-02 16:45:49.515277 7f4968cfe700  0 -- 10.16.64.68:6813/97613 >> 10.16.64.29:6805/35260 pipe(0x25e36500 sd=538 :6813 s=2 pgs=15426 cs=623 l=0 c=0x1586fa20).fault with nothing to send, going to standby

Мой фильтр в настоящее время похож на это:

%{TIMESTAMP_ISO8601:date} %{BASE16FLOAT:osd_epoch}  %{NUMBER:error_bool} -- %{CEPH_HOST:client_A} %{FROMTO} %{CEPH_HOST:client_B}

Где $ {CEPH_HOST} и $ {FROMTO} являются просто короткими шаблонами::

FROMTO (?:[<|>]){1,2}
CEPH_HOST (%{IPORHOST:ip}\:%{POSINT:port}/%{POSINT:socket})

Проблема - то, что IP теперь, кажется, содержит два адреса.

  "client_A": [
[
  "10.16.64.68:6813/97613"
]
],
"ip": [
[
  "10.16.64.68",
  "10.16.64.29"
]
],
"HOSTNAME": [
[
  "10.16.64.68",
  "10.16.64.29"

Я хотел бы к grok его так, чтобы client_a имеет IP и client_b имеет IP.

Однако это имеет значение в конце?

Я могу оставить его, как?

Если так, я смогу отсортировать его позже? В противном случае, как я сегментирую его так, чтобы client_a и client_b разделяются?

Я должен создать "уникальный" шаблон для обоих?

0
задан 3 June 2015 в 09:05
1 ответ

Я не уверен, что вы когда-нибудь придумали, как это сделать, но я искал что-то похожее для моей собственной среды, и я думаю, что единственный способ сделать это - настроить шаблоны для каждого клиента.

Я протестировал их оба в конструкторе grok , и они возвращают допустимые поля.

Если вы просто хотите иметь поле для клиента A (10.16.64.68:6813/ 97613) и клиент B (10.16.64.29:6805/35260), это будет работать:

%{TIMESTAMP_ISO8601:date} %{BASE16FLOAT:osd_epoch}  %{NUMBER:error_bool} -- (?<client_a>(%{IPORHOST}\:%{POSINT}/%{POSINT})) %{FROMTO} (?<client_b>(%{IPORHOST}\:%{POSINT}/%{POSINT}))

2015-06-02 16: 45: 49.515277 7f4968cfe700 0 - 10.16.64.68:6813/97613 10.16.64.29:6805/35260 ИСПОЛЬЗУЕТСЯ
client_a: 10.16.64.68:6813/97613
client_b: 10.16.64.29:6805/35260
error_bool: 0
дата: 02.06.2015 · 16:45: 49.515277
osd_epoch: 7f4968cfe700

Если вам также нужны отдельные поля для каждого элемента этого соединения (IP-адрес клиента a / b, порт клиента a / b, сокет клиента a / b), этот шаблон должен работать:

%{TIMESTAMP_ISO8601:date} %{BASE16FLOAT:osd_epoch}  %{NUMBER:error_bool} -- (?<client_a>(%{IPORHOST:client_a_ip}\:%{POSINT:client_a_port}/%{POSINT:client_a_socket})) %{FROMTO} (?<client_b>(%{IPORHOST:client_b_ip}\:%{POSINT:client_b_port}/%{POSINT:client_b_socket}))

2015-06-02 16: 45: 49.515277 7f4968cfe700 0 - 10.16.64.68:6813/97613 10.16.64.29:6805/35260 ИСПОЛЬЗУЕТСЯ
client_a: 10.16.64.68:6813/97613
client_b: 10.16.64.29:6805/35260
client_a_ip: 10.16.64.68
client_b_ip: 10.16.64.29
client_a_port: 6813
client_b_port: 6805
client_a_socket: 97613
client_b_socket: 35260
error_bool: 0
дата: 02.06.2015 · 16:45: 49.515277
osd_epoch: 7f4968cfe700

0
ответ дан 5 December 2019 в 12:43

Теги

Похожие вопросы