За да може системният администратор да идентифицира или отстрани проблем на a CentOS 7 или RHEL 7 сървърна система, тя трябва да знае и да преглежда събитията, които са се случили в системата за определен период от време от регистрационните файлове, съхранявани в системата в /var/log директория.
Сървърът syslog на Linux машина може да действа като централна точка за наблюдение в мрежа, където всички сървъри, мрежови устройства, рутери, комутатори и повечето от техните вътрешни услуги, които генерират регистрационни файлове, независимо дали са свързани с конкретен вътрешен проблем или просто информативни съобщения, могат да ги изпращат трупи.
На CentOS/RHEL 7 система, Rsyslog daemon е основният предварително инсталиран сървър за регистрация, последван от Systemd Journal Daemon (Журнал).
Rsyslog сървър в изграждане като клиент/сървър архитектурна услуга и може да постигне и двете роли едновременно. Той може да работи като сървър и да събира всички регистрационни файлове, предавани от други устройства в мрежата, или може да работи като клиент, като изпраща всички вътрешни системни събития, регистрирани на отдалечен сървър за системни журнали на крайни точки.
Когато rsyslog е конфигуриран като клиент, регистрационните файлове могат да се съхраняват локално във файлове в локалната файлова система или по -скоро да се изпращат отдалечено отколкото да ги запишете във файлове, съхранявани на машината, или да запишете локално файлове за събития и да ги изпратите на отдалечен сървър на syslog в същия време.
Syslog сървърът управлява всяко съобщение в дневника, като използва следната схема:
тип (съоръжение). приоритет (тежест) дестинация (къде да изпратите дневника)
А. The съоръжение или данните от типа са представени от вътрешните системни процеси, които генерират съобщенията. В Linux вътрешните процеси (съоръжения), които генерират регистрационни файлове, са стандартизирани, както следва:
Б. The приоритет (тежест) нивата също са стандартизирани. Всеки приоритет се присвоява със стандартно съкращение и номер, както е описано по -долу. Седмият приоритет е най -високото ниво на всички.
Специални ключови думи на Rsyslog:
° С. Третата част за схемата на syslog е представена от дестинация директива. Демонът на Rsyslog може да изпраща регистрационни съобщения, които да бъдат записани във файл в локалната файлова система (най -вече във файл в /var/log/ директория) или да бъде прехвърлен към друг локален процес или да бъде изпратен до локална потребителска конзола (до stdout), или изпратете съобщението до отдалечен сървър на syslog чрез TCP/UDP протокол или дори изхвърлете съобщение до /dev/null.
За да конфигурирате CentOS/RHEL 7 като централен Log Server, първо трябва да проверим и да се уверим, че /var дялът, където се записват всички регистрационни файлове, е достатъчно голям (минимум няколко GB), за да може да съхранява всички регистрационни файлове, които ще бъдат изпратени от други устройства. Добро решение е да използвате отделно устройство (LVM, RAID) за монтиране на /var/log/ директория.
1. По подразбиране, Rsyslog услугата се инсталира автоматично и трябва да работи CentOS/RHEL 7. За да проверите дали демонът е стартиран в системата, издайте следната команда с root права.
# systemctl статус rsyslog.service.
Ако услугата не работи по подразбиране, изпълнете командата по -долу, за да стартирате демона rsyslog.
# systemctl стартирайте rsyslog.service.
2. Ако пакетът rsyslog не е инсталиран в системата, която възнамерявате да използвате като сървър за централизирано регистриране, издайте следната команда, за да инсталирате пакета rsyslog.
# yum инсталирайте rsyslog.
3. Първата стъпка, която трябва да направим в системата, за да конфигурираме демона на rsyslog като централизиран сървър за регистрация, така че да може получаване на дневникови съобщения за външни клиенти, е да отваряте и редактирате, използвайки любимия си текстов редактор, основния конфигурационен файл от /etc/rsyslog.conf, както е представено в откъса по -долу.
# vi /etc/rsyslog.conf.
В основния конфигурационен файл на rsyslog потърсете и разкомментирайте следните редове (премахнете хаштага #
подпишете в началото на реда), за да осигурите UDP транспортно приемане до сървъра на Rsyslog чрез 514 пристанище. UDP е стандартният протокол, използван за предаване на дневници от Rsyslog.
$ ModLoad imudp $ UDPServerRun 514.
4. UDP протоколът няма TCP режийни разходи, което го прави по -бърз за предаване на данни от TCP протокола. От друга страна, UDP протоколът не гарантира надеждността на предаваните данни.
Ако обаче трябва да използвате TCP протокол за получаване на дневник, трябва да потърсите и да декомментирате следните редове от /etc/rsyslog.conf файл, за да конфигурирате демона на Rsyslog да свързва и слуша TCP сокет на порт 514. Слушалки за приемане на TCP и UDP могат да бъдат конфигурирани едновременно на Rsyslog сървър.
$ ModLoad imtcp $ InputTCPServerRun 514
5. На следващата стъпка все още не затваряйте файла, създайте нов шаблон, който ще се използва за получаване на отдалечени съобщения. Този шаблон ще инструктира локалния Rsyslog сървър къде да запише получените съобщения, изпратени от мрежови клиенти на syslog. Шаблонът трябва да бъде добавен преди началото на ГЛОБАЛНИ ДИРЕКТИВИ блок, както е илюстрирано в откъса по -долу.
$ template RemoteLogs, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log".? RemoteLogs & ~
Гореизложеното $ template RemoteLogs директивата инструктира демона на Rsyslog да събира и записва всички получени регистрационни съобщения в различни файлове, въз основа на клиентската машина име и отдалечено клиентско съоръжение (приложение), което генерира съобщенията въз основа на дефинираните свойства, представени в шаблона конфигурация: %HOSTNAME% и %PROGRAMNAME%.
Всички тези лог файлове ще бъдат записани в локална файлова система в специален файл, кръстен на името на хоста на клиентската машина и съхранен в/var/log/директория.
The & ~ правилото за пренасочване инструктира локалния Rsyslog сървър да спре да обработва по -късно полученото съобщение от дневника и да изхвърли съобщенията (да не ги записва във вътрешни лог файлове).
The RemoteLogs name е произволно име, дадено на тази директива за шаблони. Можете да използвате всяко име, което намерите най -подходящо за вашия шаблон.
За да запишете всички получени съобщения от клиенти в един лог файл, наречен след IP адреса на отдалечения клиент, без да филтрирате съоръжението, което генерира съобщението, използвайте по -долу откъс.
$ шаблон FromIp, "/var/log/%FROMHOST-IP%.log".? FromIp & ~
Друг пример за шаблон, при който всички съобщения с флаг на средство за удостоверяване ще бъдат регистрирани в шаблон на име „TmplAuth“.
$ template TmplAuth, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" authpriv.*? TmplAuth.
По -долу е извадка от дефиниция на шаблон от сървъра на Rsyslog 7:
template (name = "TmplMsg" type = "string" string = "/var/log/remote/msg/%HOSTNAME%/%PROGRAMNAMEsecpath-replace%.log")
Горният откъс от шаблона може също да бъде написан като:
template (name = "TmplMsg" type = "list") {константа (стойност = "/var/log/remote/msg/") свойство (name = "hostname") константа (value = "/") свойство (name = "programname" SecurePath = "replace") константа (value = ". log")}
За да напишете сложни шаблони на Rsyslog, прочетете ръководството за конфигурационния файл на Rsyslog, като го издадете man rsyslog.conf заповядайте или се консултирайте Онлайн документация на Rsyslog.
6. След като редактирате конфигурационния файл на Rsyslog със собствените си настройки, както е обяснено по -горе, рестартирайте демона на Rsyslog, за да приложите промени, като издадете следната команда:
# услуга rsyslog рестартиране.
7. Досега сървърът на Rsyslog трябва да бъде конфигуриран да действа като централизиран сървър за регистрация и да записва съобщения от клиенти на syslog. За да проверите мрежовите гнезда на Rsyslog, стартирайте команда netstat с root права и използвайте grep за филтриране на rsyslog низ.
# netstat -tulpn | grep rsyslog
8. Ако имате активиран SELinux в CentOS/RHEL 7, издайте следната команда, за да конфигурирате SELinux да позволява трафик на rsyslog в зависимост от типа на мрежовия сокет.
# semanage -a -t syslogd_port_t -p udp 514. # semanage -a -t syslogd_port_t -p tcp 514
9. Ако защитната стена е активирана и активна, изпълнете командата по -долу, за да добавите необходимите правила за отваряне на rsyslog портове във Firewalld.
# firewall-cmd --permanent --add-port = 514/tcp. # firewall-cmd --permanent --add-port = 514/udp. # защитна стена-cmd-презареждане.
Това е всичко! Rsyslog вече е конфигуриран в режим сървър и може да централизира регистрационните файлове от отдалечени клиенти. В следващата статия ще видим как да конфигурирайте Rsyslog клиент на сървър CentOS/RHEL 7.
Използвайки Rsyslog сървъра като централна точка за наблюдение на отдалечени съобщения от дневник, можете да инспектирате регистрационните файлове и да наблюдавате здравословното състояние на клиентите или отстраняването на грешки в проблемите на клиента по -лесно, когато системите се сринат или са под някакъв вид атака.