В этом руководстве мы узнаем, как настроить rsyslog на Solaris 11.4 для отправки журналов на удаленный сервер журналов.
По умолчанию Solaris 11.4 использовал собственный системный журнал syslog в качестве менеджера журналов по умолчанию.
Вы можете проверить это, выполнив команду ниже;
svcs system-log STATE STIME FMRI disabled 22:20:47 svc:/system/system-log:rsyslog online 19:23:06 svc:/system/system-log:default
Как видите, менеджер журналов системного журнала находится в сети.
Чтобы настроить rsyslog, вам необходимо проверить, установлен ли пакет.
pkg info system/rsyslog
Name: system/rsyslog Summary: reliable and extended syslogd Description: Rsyslog is a reliable and extended syslog daemon implementation with a modular design, supporting many features (e.g., filtering, TCP, encryption, high-precision time-stamps, output control). Category: System/Administration and Configuration State: Installed Publisher: solaris Version: 8.15.0 Branch: 11.4.0.0.1.14.0 Packaging Date: August 14, 2018 at 5:28:45 PM Size: 6.72 MB FMRI: pkg://solaris/system/rsyslog@8.15.0-11.4.0.0.1.14.0:20180814T172845Z Project URL: http://www.rsyslog.com/ Source URL: http://www.rsyslog.com/files/download/rsyslog/rsyslog-8.15.0.tar.gz Project Contact: Rainer Gerhards
Ну, в моем случае rsyslog уже установлен.
Однако, если он еще не установлен, вы можете запустить команду ниже, чтобы установить его.
pkg install system/rsyslog
Если он установлен, но, как видно из вывода команды svcs system-log, он отключен, вам нужно включить его.
Но перед этим отключите родной системный журнал.
svcadm disable system/system-log:default
Затем включите rsyslog и обновите его
svcadm enable system/system-log:rsyslog svcadm refresh system/system-log:rsyslog
Проверьте это состояние, чтобы подтвердить, что это активно.
svcs -p rsyslog STATE STIME FMRI online 19:53:32 svc:/system/system-log:rsyslog 19:51:26 1592 rsyslogd
Перейдите к настройке Rsyslog для отправки журналов определенного объекта и приоритета на удаленный центральный сервер управления журналами. Основной файл конфигурации для Rsyslog – /etc/rsyslog.conf.
В демонстрационных целях мы настроим Rsyslog для отправки всех информационных журналов, созданных любым средством, на удаленный сервер управления журналами.
Журналы будут отправляться по протоколу UDP, порт 514.
Однако вы можете использовать TCP, если удаленный сервер журналов настроен на получение журналов по протоколу TCP.
Прежде чем продолжить, убедитесь, что сервер Solaris 11.4 может обмениваться данными с удаленным сервером управления журналами через UDP-порт 514.
Вы можете использовать команду netcat (nc) для проверки этого.
В диспетчере удаленных журналов установите netcat для прослушивания порта 514, а на сервере Solaris 11.4, установите netcat для подключения к порту 514 удаленного диспетчера журналов.
nc -l 514 # Remote Log Server
nc remote_server_IP 514 # Solaris 11.4
Нажмите Enter с обеих сторон.
Напечатайте что-нибудь на конце Solaris 11.4, и вы сможете увидеть все, что вы печатаете на удаленной оболочке.
После этого перейдите к настройке Rsyslog на сервере Solaris 11.4.
vim /etc/rsyslog.conf
... # Remote Logging (we use TCP for reliable delivery) # An on-disk queue is created for this action. If the remote host is # down, messages are spooled to disk and sent when it is up again. #$WorkDirectory /var/spool/rsyslog # where to place spool files #$ActionQueueFileName uniqName # unique name prefix for spool files #$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible) #$ActionQueueSaveOnShutdown on # save messages to disk on shutdown #$ActionQueueType LinkedList # run asynchronously #$ActionResumeRetryCount -1 # infinite retries if host is down # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @@remote-host:514 *.info @192.168.43.85:514 # Send Logs over UDP port 514 ...
Перезапустите Rsyslog, чтобы изменения вступили в силу.
svcadm restart system/system-log:rsyslog
Выполните проверку журнала с помощью команды logger.
Прежде чем вы сможете выполнить тестирование, выполните команду tcpdump на удаленном сервере журналов, чтобы подтвердить получение журналов.
tcpdump -i enp0s3 src 192.168.43.181 and port 514
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 20:34:57.994348 IP 192.168.43.181.47417 > u18svr.syslog: SYSLOG local7.info, length: 103 ^C 1 packet captured 1 packet received by filter 0 packets dropped by kernel
Если вы настроили сервер Remote Log Manager для сохранения журналов на основе исходного IP-адреса, вы можете привязать исходный файл соответствующего журнала к фактическому сообщению. Например
tail -f /var/log/remotelogs/192.168.43.181.log 2019-02-14T20:39:00+00:00 solaris root: [ID 702911 local7.info] Hello remote log server, can you receive it?
Вы даже можете отправлять журналы в файл, используя команду logger.
logger -f /var/log/test.log -p auth.info