🙀 Настройка NXLog для пересылки системных журналов на Rsyslog Server в Ubuntu 1804

В этом руководстве мы узнаем, как настроить NXLog для пересылки системных журналов на сервер Rsyslog в Ubuntu 18.04.

Существуют различные решения для сбора журналов NXLog.

В этом руководстве мы собираемся настроить версию NXLog с открытым исходным кодом.

NXLog недоступен в репозиториях Ubuntu 18.04 по умолчанию.

Следовательно, мы собираемся скачать пакет DEB и установить его с помощью менеджера пакетов dpkg.

Чтобы загрузить двоичный файл установки NXLog, перейдите на страницу загрузок NXLog Community Edition и загрузите одну из них для Ubuntu 18.04.

wget https://nxlog.co/system/files/products/files/348/nxlog-ce_2.10.2150_ubuntu_bionic_amd64.deb

Теперь, когда NXLog CE установлен, вам необходимо настроить его для пересылки журналов на удаленный сервер Rsyslog.

Файл конфигурации по умолчанию для NXLog CE — это /etc/nxlog/nxlog.conf.

NXLog может быть настроен на получение и чтение журналов из различных типов источников, включая;

  • данные журнала, полученные по сети
  • события, хранящиеся в базах данных
  • сообщения, прочитанные из файлов
  • данные, полученные с помощью исполняемых файлов

Это руководство посвящено настройке NXLog CE для получения, чтения и пересылки журналов из файлов системных журналов на удаленный сервер.

Поэтому сделайте резервную копию исходной конфигурации, чтобы вы могли вносить любые изменения, подходящие для вашей среды.

mv /etc/nxlog/nxlog.conf /etc/nxlog/nxlog.conf.original

Создайте новый файл конфигурации.

touch /etc/nxlog/nxlog.conf

Файл конфигурации NXLog состоит из глобальных директив, экземпляров модулей и маршрутов.

Для начала установите ROOT в основной каталог NXLog.

# Set the NXLog main directorydefine ROOT /etc/nxlog

Определите глобальные директивы

Существует множество глобальных директив, которые можно установить.

Однако в простейшем случае мы определим каталог модулей NXLog, каталог для записи кэшированных данных, уровень ведения журнала, файл PID NXLog, рабочий каталог NXLog, файл журнала NXLog и т. д.

Это можно сделать, используя следующие директивы соответственно; ModuleDir, CacheDir, LogLevel, PidFile, SpoolDir.

# Global DirectivesModuledir /usr/lib/nxlog/modulesCacheDir %ROOT%/dataSpoolDir %ROOT%/dataPidfile /tmp/nxlog.pidLogFile /var/log/nxlog/nxlog.log

Некоторые из других важных глобальных директив включают User и Group.

NXLog по умолчанию запускается от пользователя nxlog, за исключением того, что этот пользователь не может читать каталог /var/log, в который записывается большинство системных журналов.

Чтобы обойти это, NXlog может быть настроен для запуска с правами root, пропустив опцию User.

Тем не менее, это более безопасно, если вы можете добавить пользователя NXlog в группу с правами на чтение файла журнала.

Определите директивы модуля Input

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

# Define Input ModulesModuleim_fileFile"/var/log/auth.log"SavePos TRUEReadFromLast TRUEModuleim_fileFile"/var/log/syslog"SavePos TRUEReadFromLast TRUE

Определите директивы модуля Ouput

Существуют разные типы модулей вывода.

Мы собираемся установить UDP как наш модуль вывода.

Вы можете проверить другие модули здесь.

Вам необходимо установить IP-адрес удаленного хоста и порт.

# Define Output ModulesModuleom_udpHost192.168.43.208Port514

Определите директивы Route

Определите поток данных с помощью директивы Path.

Несколько входных журналов подачи в маршрут разделяются запятыми.

Список модулей ввода сопровождается стрелкой (=>).

Модули процессора или модули вывода следуют после.

Несколько процессоров разделены стрелками.

Синтаксис:

Path INPUT1[, INPUT2…] => [PROCESSOR1 [=> PROCESSOR2…] =>]
OUTPUT1[, OUTPUT2…]

Следовательно, мы можем определить это в нашем файле конфигурации как;

# Route definitionPathin1,in2 => buffer => udp

Это все о нашей конфигурации в ее самой простой форме.

В общем, это должно выглядеть так;

# Set the NXLog main directorydefine ROOT /etc/nxlog# Global DirectivesModuledir /usr/lib/nxlog/modulesCacheDir %ROOT%/cache_dirSpoolDir %ROOT%/spool_dirPidfile /tmp/nxlog.pidLogFile /var/log/nxlog/nxlog.log# Define Input ModulesModuleim_fileFile"/var/log/auth.log"SavePos TRUEReadFromLast TRUEModuleim_fileFile"/var/log/syslog"SavePos TRUEReadFromLast TRUE#Define Processor ModulesModulepm_bufferMaxSize512000 # Buffer logs upto 512MBType disk # Disk buffering# Define Output ModulesModuleom_udpHost192.168.43.188 # IP of Rsyslog ServerPort514# Route DefinitionPathin1,in2 => buffer => udp

Создайте каталоги Cache и Spool.

mkdir -p /etc/nxlog/{cache_dir,spool_dir}

Перезапустите NXLog и настройте его на загрузку системы.

systemctl restart nxlogsystemctl enable nxlog

Проверьте статус.

systemctl status nxlog
* nxlog.service - LSB: logging daemonLoaded: loaded (/etc/init.d/nxlog; generated)Active: active (running) since Sat 2019-03-16 19:23:19 EAT; 53s agoDocs: man:systemd-sysv-generator(8)

Убедитесь, что вы можете получать журналы на удаленном сервере.

Это POC, ssh на сервер Ubuntu 18.04 с nxlog, запущенным с другого сервера.

Листинг логов с tail

tail -f /var/log/remotelogs/192.168.43.203.log 2019-03-16T19:32:40-04:00 u18svr sshd[21327]: Connection closed by 127.0.0.1 port 50630 [preauth]2019-03-16T19:34:12-04:00 u18svr sshd[21335]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.43.149user=amos2019-03-16T19:34:14-04:00 u18svr sshd[21335]: Failed password for amos from 192.168.43.149 port 48224 ssh22019-03-16T19:34:18-04:00 u18svr sshd[21335]: Accepted password for amos from 192.168.43.149 port 48224 ssh22019-03-16T19:34:18-04:00 u18svr sshd[21335]: pam_unix(sshd:session): session opened for user amos by (uid=0)2019-03-16T19:34:18-04:00 u18svr systemd-logind[581]: New session 26 of user amos....

Это все о том, как настроить NXLog для пересылки системных журналов на сервер Rsyslog в Ubuntu 18.04.

Не стесняйтесь читать больше о NXLog в их справочном руководстве.

Отправить комментарий

0 Комментарии