Graylog v1.1.1: Редактирование IP-адреса источника для отражения IP внутри метки времени

Интересно, можете ли вы помочь со следующим запросом?

В моем офисе есть клиентский (Centos 7) сервер (IP 1.1.1.1), который отправляет свои журналы в системный журнал Centos 7 сервер (IP-адрес 1.1.1.2). Сервер системного журнала пересылает свои журналы на сервер Centos 7 Graylog v1.1.1 (IP-адрес 2.2.2.1). Три устройства могут успешно взаимодействовать друг с другом и используют порты и конфигурации по умолчанию, насколько мне известно.

Моя проблема заключается в следующем: журналы, отображаемые на сервере Graylog, имеют исходный IP-адрес и gl2_remote_ip моего сервера системного журнала. (1.1.1.2). Я бы хотел, чтобы исходный IP-адрес (и даже gl2_remote_ip) принадлежал клиентскому серверу (1.1.1.1).

До сих пор я рассматривал использование экстракторов для извлечения IP-адреса из поля сообщения (показано ниже), и в настоящее время я пишу сценарий слюни.

facility local1
full_message <142>May 31 15:11:57 1.1.1.1 116: .May 31 14:11:52.321: %SYS-6-LOGGINGHOST_STARTSTOP: Logging to host 1.1.1.2 started - CLI initiated
gl2_remote_ip 1.1.1.2
gl2_remote_port 40331
level 6
message 1.1.1.1 116: .May 31 14:11:52.321: %SYS-6-LOGGINGHOST_STARTSTOP: Logging to host 1.1.1.2 started - CLI initiated
source 1.1.1.2

Однако каждый раз я пытаюсь использовать команды регулярных выражений (которые я тестировал на веб-сайте http://www.regextester.com/ ) Graylog выдает ошибку, говоря, что мое регулярное выражение неисправно. Я прочитал документацию Graylog и, насколько я могу судить, регулярное выражение, которое он использует, должно быть стандартом prett, но может ли кто-нибудь сказать мне, что это за тип?

Эта строка регулярного выражения должна работать, согласно тестеру:

\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b

Итак, в заключение, Может ли кто-нибудь помочь мне извлечь значения из одной части сообщения Graylog и добавить их обратно в другой бит сообщения?

Я хочу, чтобы конечный результат сообщения выглядел следующим образом:

facility local1
full_message <142>May 31 15:11:57 1.1.1.1 116: .May 31 14:11:52.321: %SYS-6-
LOGGINGHOST_STARTSTOP: Logging to host 1.1.1.2 started - CLI initiated
gl2_remote_ip 1.1.1.1
gl2_remote_port 40331
level 6
message 1.1.1.1 116: .May 31 14:11:52.321: %SYS-6-LOGGINGHOST_STARTSTOP: 
Logging to host 1.1.1.2 started - CLI initiated
source 1.1.1.1

Большое спасибо.

0
задан 1 June 2017 в 17:49
1 ответ

yum install syslog-ng

 cat syslog-ng.conf
 @ версия: 3.5
 @include "scl.conf"

 # файл конфигурации syslog-ng.
 #
 # Это должно вести себя очень похоже на исходный системный журнал RedHat.  Но
 # его можно было бы настроить намного умнее.
 #
 # См. Syslog-ng (8) и syslog-ng.conf (5) для получения дополнительной информации.
 #
 # Примечание: он также является источником дополнительных файлов конфигурации (* .conf)
 # находится в /etc/syslog-ng/conf.d/

параметры {
  flush_lines (0);
  time_reopen (10);
  log_fifo_size (1000);
  chain_hostnames (выкл.);
  use_dns (нет);
  use_fqdn (нет);
  create_dirs (нет);
  keep_hostname (да);
 };

source s_sys {
  система ();
  внутренний ();
  udp ();
  системный журнал ();
 };

пункт назначения d_cons {файл ("/ dev / console");  };
назначение d_mesg {файл ("/ var / log / messages");  };
назначение d_auth {файл ("/ var / log / secure");  };
адрес назначения d_mail {файл ("/ var / log / maillog" flush_lines (10));  };
назначение d_spol {файл ("/ var / log / spooler");  };
пункт назначения d_boot {файл ("/ var / log / boot.log");  };
целевой d_cron {файл ("/ var / log / cron");  };
назначение d_kern {файл ("/ var / log / kern");  };
назначение d_mlal {usertty ("*");  };

фильтр f_kernel {объект (ядро);  };
filter f_default {level (info..emerg) и
  нет (объект (почта)
  или объект (authpriv)
  или средство (cron));  };
фильтр f_auth {объект (authpriv);  };
фильтр f_mail {объект (почта);  };
фильтр f_emergency {уровень (возникновение);  };
фильтр f_news {объект (uucp) или
  (объект (новости)
  и уровень (крит..эмерг));  };
фильтр f_boot {объект (local7);  };
фильтр f_cron {объект (cron);  };

 # журнал {источник (s_sys);  фильтр (f_kernel);  пункт назначения (d_cons);  };
журнал {источник (s_sys);  фильтр (f_kernel);  пункт назначения (d_kern);  };
журнал {источник (s_sys);  фильтр (f_default);  пункт назначения (d_mesg);  };
журнал {источник (s_sys);  фильтр (f_auth);  пункт назначения (d_auth);  };
журнал {источник (s_sys);  фильтр (f_mail);  пункт назначения (d_mail);  };
журнал {источник (s_sys);  фильтр (f_emergency);  пункт назначения (d_mlal);  };
журнал {источник (s_sys);  фильтр (f_news);  пункт назначения (d_spol);  };
журнал {источник (s_sys);  фильтр (f_boot);  место назначения (d_boot);  };
журнал {источник (s_sys);  фильтр (f_cron);  пункт назначения (d_cron);  };


 # Источник дополнительных файлов конфигурации (только с расширением .conf)
 @include "/etc/syslog-ng/conf.d/*.conf"


 # vim: ft = syslog-ng: ai: si: ts = 4: sw = 4: et:
 

, а затем

> cat conf.d/20-syslog.conf filter f_fiddling { facility(local0); }; log
> { source(s_sys); filter(f_fiddling); destination(fiddling); };
> destination fiddling { syslog ("77.75.109.11" transport ("udp") port
> (514) spoof_source(yes)); };
0
ответ дан 5 December 2019 в 08:06

Теги

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