Интересно, можете ли вы помочь со следующим запросом?
У меня в офисе есть клиентский (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 моего сервера syslog (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
Большое спасибо.
ням установить syslog-ng
cat syslog-ng.conf @version:3.5 @include "scl.conf" # syslog-ng configuration file. # # This should behave pretty much like the original syslog on RedHat. But # it could be configured a lot smarter. # # See syslog-ng(8) and syslog-ng.conf(5) for more information. # # Note: it also sources additional configuration files (*.conf) # located in /etc/syslog-ng/conf.d/ options { flush_lines (0); time_reopen (10); log_fifo_size (1000); chain_hostnames (off); use_dns (no); use_fqdn (no); create_dirs (no); keep_hostname (yes); }; source s_sys { system(); internal(); udp(); syslog(); }; destination d_cons { file("/dev/console"); }; destination d_mesg { file("/var/log/messages"); }; destination d_auth { file("/var/log/secure"); }; destination d_mail { file("/var/log/maillog" flush_lines(10)); }; destination d_spol { file("/var/log/spooler"); }; destination d_boot { file("/var/log/boot.log"); }; destination d_cron { file("/var/log/cron"); }; destination d_kern { file("/var/log/kern"); }; destination d_mlal { usertty("*"); }; filter f_kernel { facility(kern); }; filter f_default { level(info..emerg) and not (facility(mail) or facility(authpriv) or facility(cron)); }; filter f_auth { facility(authpriv); }; filter f_mail { facility(mail); }; filter f_emergency { level(emerg); }; filter f_news { facility(uucp) or (facility(news) and level(crit..emerg)); }; filter f_boot { facility(local7); }; filter f_cron { facility(cron); }; #log { source(s_sys); filter(f_kernel); destination(d_cons); }; log { source(s_sys); filter(f_kernel); destination(d_kern); }; log { source(s_sys); filter(f_default); destination(d_mesg); }; log { source(s_sys); filter(f_auth); destination(d_auth); }; log { source(s_sys); filter(f_mail); destination(d_mail); }; log { source(s_sys); filter(f_emergency); destination(d_mlal); }; log { source(s_sys); filter(f_news); destination(d_spol); }; log { source(s_sys); filter(f_boot); destination(d_boot); }; log { source(s_sys); filter(f_cron); destination(d_cron); }; # Source additional configuration files (.conf extension only) @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)); };