Sanidi Seva ya Kumbukumbu ya Kati na Rsyslog katika CentOS/RHEL 8


Ili wasimamizi wa mfumo watambue au kuchanganua matatizo kwenye seva ya CentOS 8 au RHEL 8, ni muhimu kujua na kutazama matukio yaliyotokea kwenye seva katika kipindi fulani cha muda kutoka kwa faili za kumbukumbu zilizopatikana katika /var. /logi saraka katika mfumo.

Mfumo wa Syslog (Itifaki ya Kuingia kwa Mfumo) kwenye seva unaweza kufanya kazi kama kituo kikuu cha ufuatiliaji wa kumbukumbu kwenye mtandao ambapo seva zote, vifaa vya mtandao, swichi, vipanga njia na huduma za ndani zinazounda kumbukumbu, iwe zimeunganishwa na suala fulani la ndani au ujumbe wa taarifa tu. wanaweza kutuma kumbukumbu zao.

Kwenye seva ya CentOS/RHEL 8, daemon ya Rsyslog ndiyo seva muhimu zaidi ya kumbukumbu ambayo huja ikiwa imesakinishwa awali kwa chaguo-msingi, ikifuatiwa na Systemd Journal Daemon (jarida).

Rsyslog ni matumizi ya chanzo-wazi, iliyotengenezwa kama huduma ya usanifu wa mteja/seva na inaweza kufikia majukumu yote mawili kwa kujitegemea. Inaweza kufanya kazi kama seva na kukusanya kumbukumbu zote zinazotumwa na vifaa vingine kwenye mtandao au inaweza kufanya kazi kama mteja kwa kutuma matukio yote ya mfumo wa ndani yaliyowekwa kwenye seva ya mbali ya Syslog.

  1. Usakinishaji wa \CentOS 8.0″ na Picha za skrini
  2. Usakinishaji wa RHEL 8 na Picha za skrini

Ili kusanidi seva ya kumbukumbu ya kati kwenye seva ya CentOS/RHEL 8, unahitaji kuangalia uthibitisho kwamba sehemu ya /var ina nafasi ya kutosha (GB chache kima cha chini) kuhifadhi faili zote za kumbukumbu zilizorekodiwa. kwenye mfumo unaotuma na vifaa vingine kwenye mtandao. Ninapendekeza uwe na kiendeshi tofauti (LVM au RAID) ili kuweka saraka ya /var/log/.

Jinsi ya kusanidi Seva ya Rsyslog katika CentOS/RHEL 8

1. Kama nilivyosema, huduma ya Rsyslog imesakinishwa na kuendeshwa kiotomatiki katika seva ya CentOS/RHEL 8. Ili kuthibitisha kuwa daemon inaendesha kwenye mfumo, endesha amri ifuatayo.

# systemctl status rsyslog.service

Ikiwa huduma haifanyiki kwa chaguo-msingi, endesha amri ifuatayo ili kuanza daemon ya rsyslog.

# systemctl start rsyslog.service

2. Ikiwa matumizi ya Rsyslog hayajasakinishwa kwa chaguo-msingi kwenye mfumo unaopanga kutumia kama seva ya kati ya ukataji miti, endesha dnf amri ifuatayo ili kusakinisha kifurushi cha rsyslog na uanzishe daemoni.

# dnf install rsyslog
# systemctl start rsyslog.service

3. Huduma ya Rsyslog ikishasakinishwa, sasa unaweza kusanidi rsyslog kama seva ya kati ya kukata miti kwa kufungua faili kuu ya usanidi /etc/rsyslog.conf, ili kupokea ujumbe wa kumbukumbu kwa wateja wa nje.

# vi /etc/rsyslog.conf

Katika /etc/rsyslog.conf faili ya usanidi, pata na uondoe maoni kwa mistari ifuatayo ili kutoa mapokezi ya usafiri wa UDP kwa seva ya Rsyslog kupitia bandari 514. Rsyslog hutumia itifaki ya kawaida ya UDP kwa upitishaji wa kumbukumbu.

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

4. Itifaki ya UDP haina kichwa cha juu cha TCP, na inafanya uwasilishaji wa data kwa kasi zaidi kuliko itifaki ya TCP. Kwa upande mwingine, itifaki ya UDP haihakikishi uaminifu wa data zinazopitishwa.

Hata hivyo, ikiwa ungependa kutumia itifaki ya TCP kwa upokezi wa kumbukumbu lazima utafute na uondoe maoni kwenye mistari ifuatayo katika /etc/rsyslog.conf faili ya usanidi ili kusanidi daemon ya Rsyslog ili kufunga na kusikiliza tundu la TCP kwenye mlango wa 514.

module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

5. Sasa unda kiolezo kipya cha kupokea ujumbe wa mbali, kwani kiolezo hiki kitaongoza seva ya ndani ya Rsyslog, mahali pa kuhifadhi ujumbe uliopokelewa unaotumwa na wateja wa mtandao wa Syslog.

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?RemoteLogs

Maagizo ya $template RemoteLogs huongoza daemon ya Rsyslog kukusanya na kuandika ujumbe wote wa kumbukumbu uliotumwa kwa faili tofauti, kulingana na jina la mteja na programu ya mteja wa mbali ambayo iliunda ujumbe kulingana na sifa zilizoainishwa zilizoongezwa kwenye usanidi wa kiolezo: %HOSTNAME% na %PROGRAMNAME%.

Faili zote za kumbukumbu zilizopokelewa zitaandikwa kwa mfumo wa faili wa ndani kwa faili iliyotengwa iliyopewa jina la mwenyeji wa mashine ya mteja na kuwekwa kwenye /var/log/ saraka.

Kanuni ya & ~ ya kuelekeza upya inaelekeza seva ya ndani ya Rsyslog kuacha kuchakata ujumbe wa kumbukumbu uliopokewa zaidi na kuondoa ujumbe huo (usiandike kwa faili za kumbukumbu za ndani).

RemoteLogs ni jina la kiholela lililopewa maagizo ya kiolezo hiki. Unaweza kutumia jina lolote unalotaka ambalo linafaa zaidi kwa kiolezo chako.

Ili kusanidi violezo changamano zaidi vya Rsyslog, soma mwongozo wa faili wa usanidi wa Rsyslog kwa kutekeleza amri ya man rsyslog.conf au shauriana na nyaraka za mtandaoni za Rsyslog.

# man rsyslog.conf

6. Baada ya kufanya mabadiliko ya usanidi hapo juu, unaweza kuanzisha upya daemon ya Rsyslog ili kutumia mabadiliko ya hivi karibuni kwa kutekeleza amri ifuatayo.

# service rsyslog restart

7. Mara tu unapoanzisha upya seva ya Rsyslog, inapaswa sasa kutenda kama seva ya kumbukumbu ya kati na kurekodi ujumbe kutoka kwa wateja wa Syslog. Ili kudhibitisha soketi za mtandao wa Rsyslog, endesha matumizi ya grep kuchuja kamba ya rsyslog.

# netstat -tulpn | grep rsyslog 

Ikiwa netstat amri haiingii kwenye CentOS 8, unaweza kuisakinisha kwa kutumia amri ifuatayo.

# dnf whatprovides netstat
# dnf install net-tools

8. Ikiwa una SELinux amilifu katika CentOS/RHEL 8, endesha amri ifuatayo ili kuruhusu trafiki ya rsyslog kulingana na aina ya soketi ya mtandao.

# semanage port -a -t syslogd_port_t -p udp 514
# semanage port -a -t syslogd_port_t -p tcp 514

Ikiwa amri ya semanage haijasakinishwa kwenye CentOS 8, unaweza kuisakinisha kwa kutumia amri ifuatayo.

# dnf whatprovides semanage
# dnf install policycoreutils-python-utils

9. Ikiwa una ngome inayotumika kwenye mfumo, endesha amri ifuatayo ili kuongeza sheria zinazohitajika za kuruhusu trafiki ya rsyslog kwenye milango kwenye Firewalld.

# firewall-cmd --permanent --add-port=514/tcp
# firewall-cmd --permanent --add-port=514/udp
# firewall-cmd --reload

Unaweza pia kudhibiti miunganisho inayoingia kwenye mlango 514 kutoka safu za IP zilizoidhinishwa kama inavyoonyeshwa.

# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="tcp" accept'
# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="udp" accept'
# firewall-cmd --reload

Ni hayo tu! Rsyslog sasa imesanidiwa kama seva ya kumbukumbu kati na inaweza kukusanya kumbukumbu kutoka kwa wateja wa mbali. Katika makala inayofuata, tutaona jinsi ya kusanidi mteja wa Rsyslog kwenye seva ya CentOS/RHEL 8.