Отправить буфер журналов на удаленный компьютер
Как я могу просто прочитать все различные буферы (системные журналы, пользовательские журналы, журналы приложений и т. Д.) Ubuntu 16.04 и переслать их на внешний сервер (который может быть любой ОС) во время выполнения? Помогают ли в этом какие-либо системные или журнальные API?
Прокомментируйте, пожалуйста!
1 ответ
rsyslogd
ответить на ваши потребности.
как в установке, удаленной системы каротажа с-Rsyslog-на-убунту-14-04-LTS
По умолчанию есть экземпляр
rsyslog
который запускается внутри каждой новой установки Ubuntu.rsyslog
Этот инструмент заботится о том, чтобы получать все сообщения журнала от приложений ядра и операционной системы и распространять их по файлам в/var/log
,Тем не мение,
rsyslog
может сделать гораздо больше, чем то, что включает в себя вход на удаленный сервер. Это может быть чрезвычайно полезно для агрегирования журналов по большому количеству серверов или когда невозможно записывать журналы на диск.В этом уроке мы собираемся установить
rsyslog
на удаленной машине, чтобы мы могли отправлять журналы, перенаправить все журналы на этот удаленный сервер. Установкаrsyslog
на удаленном сервереВам понадобится копия
rsyslog
работает на удаленной машине, которая будет получать журналы с вашего существующего сервера. Лучше всего иметь это в удаленном месте. Причина в том, что если этот сервер выходит из строя в то же время, что и ваш сервер, вы не сможете получить какие-либо журналы для устранения проблем.Предполагая, что вы используете Ubuntu на удаленной машине, вы уже будете работать
rsyslog.
Если нет, вы можете установить его, следуя инструкциям внутриrsyslog
Веб-сайт.После установки вам нужно убедиться, что он прослушивает порт, на который мы будем отправлять журналы. Порт по умолчанию - 514, который мы сохраним. Вам нужно будет отредактировать файл
/etc/rsyslog.conf
и раскомментируйте следующие строки:# provides UDP syslog reception #$ModLoad imudp #$UDPServerRun 514 # provides TCP syslog reception #$ModLoad imtcp #$InputTCPServerRun 514
После раскомментирования строк это должно выглядеть следующим образом:
# provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
Как только это будет сделано, вы можете перезапустить
rsyslog
обслуживание, выполнив командуservice rsyslog restart
, Вашrsyslog
Теперь экземпляр готов к приему журналов с удаленных хостов. Настройкаrsyslog
на локальном сервереЭтот процесс чрезвычайно прост. Все, что вам нужно сделать, это рассказать существующим
rsyslog
экземпляр на вашем сервере для отправки журналов на удаленный сервер. Это так же просто, как создать файл внутри/etc/rsyslog.d
папка называется10-rsyslog.conf
, Внутри этого файла все, что вам нужно, это положить*.* @remote.server:514
Как только вы напишите этот файл, перезапустите
rsyslog
сервис, запустивservice rsyslog restart
и ваши журналы начнут отправляться на удаленный сервер. Вы можете убедиться в этом, войдя на удаленный сервер и проверив папку журнала, вы обнаружите, что теперь у вас есть журналы, помеченные именем хоста клиентского сервера.