Jinsi ya Kusanidi Mteja wa Rsyslog kutuma Kumbukumbu kwa Seva ya Rsyslog katika CentOS 7


Usimamizi wa kumbukumbu ni moja wapo ya sehemu muhimu zaidi katika miundombinu ya mtandao. Ujumbe wa kumbukumbu mara kwa mara hutolewa na programu nyingi za mfumo, kama vile huduma, programu, daemoni, huduma zinazohusiana na mtandao, kernel, vifaa halisi na kadhalika.

Faili za kumbukumbu huonekana kuwa muhimu katika kesi ya kutatua matatizo ya mfumo wa Linux, kufuatilia mfumo na kukagua nguvu na matatizo ya usalama wa mfumo.

Rsyslog ni mpango wa ukataji wa Chanzo Huria, ambao ndio utaratibu maarufu wa ukataji miti katika idadi kubwa ya usambazaji wa Linux. Pia ni huduma chaguo-msingi ya ukataji miti katika CentOS 7 au RHEL 7.

Daemon ya Rsyslog katika CentOS inaweza kusanidiwa kufanya kazi kama seva ili kukusanya ujumbe wa kumbukumbu kutoka kwa vifaa vingi vya mtandao. Vifaa hivi hufanya kama wateja na vimesanidiwa kusambaza kumbukumbu zao kwa seva ya rsyslog.

Walakini, huduma ya Rsyslog inaweza pia kusanidiwa na kuanza katika hali ya mteja. Usanidi huu unaelekeza daemon ya rsyslog kusambaza ujumbe wa kumbukumbu kwa seva ya mbali ya Rsyslog kwa kutumia itifaki za usafiri za TCP au UDP. Huduma ya Rsyslog pia inaweza kusanidiwa kufanya kazi kama mteja na kama seva kwa wakati mmoja.

Katika somo hili tutaelezea jinsi ya kusanidi daemon ya CentOS/RHEL 7 Rsyslog kutuma ujumbe wa kumbukumbu kwa seva ya mbali ya Rsyslog. Mipangilio hii inahakikisha kuwa nafasi ya diski ya mashine yako inaweza kuhifadhiwa kwa kuhifadhi data nyingine.

Mahali ambapo karibu faili zote za kumbukumbu zimeandikwa kwa chaguo-msingi katika CentOS ni /var njia ya mfumo. Inashauriwa pia kuunda kizigeu tofauti cha saraka ya /var, ambayo inaweza kukuzwa kwa nguvu, ili kutomaliza kizigeu cha /(mizizi).

Kiteja cha Rsyslog kila mara hutuma ujumbe wa kumbukumbu kwa maandishi wazi, ikiwa haijabainishwa vinginevyo. Haupaswi kusanidi kiteja cha Rsyslog kusambaza ujumbe wa kumbukumbu kupitia Mtandao au mitandao ambayo haiko chini ya udhibiti wako kamili.

  1. Utaratibu wa Usakinishaji wa CentOS 7.3
  2. RHEL 7.3 Utaratibu wa Kusakinisha
  3. Sanidi Seva ya Rsyslog katika CentOS/RHEL 7

Hatua ya 1: Thibitisha Usakinishaji wa Rsyslog

1. Kwa chaguo-msingi, daemon ya Rsyslog tayari imesakinishwa na inafanya kazi katika mfumo wa CentOS 7. Ili kuthibitisha ikiwa huduma ya rsyslog iko kwenye mfumo, toa amri zifuatazo.

# rpm -q | grep rsyslog
# rsyslogd -v

2. Ikiwa kifurushi cha Rsyslog hakijasakinishwa katika CentOS, tekeleza amri iliyo hapa chini ili kusakinisha huduma.

# yum install rsyslog

Hatua ya 2: Sanidi Huduma ya Rsyslog kama Mteja

3. Ili kutekeleza daemon ya Rsyslog iliyosakinishwa kwenye mfumo wa CentOS 7 ili kufanya kazi kama mteja wa kumbukumbu na kuelekeza ujumbe wote wa kumbukumbu unaozalishwa ndani kwa seva ya mbali ya Rsyslog, rekebisha faili ya usanidi ya rsyslog kama ifuatavyo:

Kwanza fungua faili kuu ya usanidi kwa uhariri.

# vi /etc/rsyslog.conf

Kisha, ongeza laini iliyo hapa chini mwishoni mwa faili kama inavyoonyeshwa kwenye dondoo hapa chini.

*. *  @192.168.10.254:514

Kwenye mstari hapo juu huhakikisha kuwa unabadilisha anwani ya IP ya FQDN ya seva ya rsyslog ya mbali ipasavyo. Laini iliyo hapo juu inaelekeza daemon ya Rsyslog kutuma ujumbe wote wa kumbukumbu, bila kujali kituo au ukali, kwa seva pangishi iliyo na IP 192.168.10.254 kupitia mlango wa 514/UDP.

4. Ikiwa seva ya kumbukumbu ya mbali imesanidiwa kusikiliza tu kwenye miunganisho ya TCP au unataka kutumia itifaki ya mtandao ya usafiri inayotegemewa, kama vile TCP, ongeza herufi nyingine @ mbele ya seva pangishi ya mbali kama inavyoonyeshwa kwenye mfano hapa chini:

*. *  @@logs.domain.lan:514

Linux rsyslog inaruhusu pia ina baadhi ya herufi maalum, kama vile = au !, ambazo zinaweza kuainishwa kwa viwango vya kipaumbele ili kuashiria \kipaumbele hiki pekee kwa ishara sawa na\sio kipaumbele hiki au cha juu kuliko hiki.

Baadhi ya sampuli za wahitimu wa kiwango cha kipaumbele cha Rsyslog katika CentOS 7:

  • kern.info = kumbukumbu za kernel zilizo na kipaumbele cha habari na cha juu zaidi.
  • kern.=info = jumbe za kernel pekee zilizo na kipaumbele cha habari.
  • kern.info;kern.!err = jumbe kernel pekee zenye maelezo, taarifa na vipaumbele vya onyo.
  • kern.debug;kern.!=warning = vipaumbele vyote vya kernel isipokuwa onyo.
  • kern.* = jumbe zote za vipaumbele vya kernel.
  • kern.none = usiweke ujumbe wowote unaohusiana wa kernel bila kujali kipaumbele.

Kwa mfano, ikizingatiwa kuwa unataka kutuma ujumbe maalum wa kituo kwa seva ya kumbukumbu ya mbali, kama vile barua pepe zote zinazohusiana bila kujali kiwango cha kipaumbele, ongeza laini iliyo hapa chini kwenye faili ya usanidi ya rsyslog:

mail.* @192.168.10.254:514 

5. Hatimaye, ili kutumia usanidi mpya, huduma ya Rsyslog inahitaji kuanzishwa upya ili daemon iweze kuchukua mabadiliko, kwa kutekeleza amri iliyo hapa chini:

# systemctl restart rsyslog.service

6. Ikiwa kwa sababu fulani daemon ya Rsyslog haijawashwa wakati wa kuwasha, toa amri iliyo hapa chini ili kuwezesha mfumo mzima wa huduma:

# systemctl enable rsyslog.service

Hatua ya 3: Tuma Kumbukumbu za Apache na Nginx kwa Seva ya Kumbukumbu ya Mbali

7. Seva ya Apache HTTP inaweza kusanidiwa kutuma ujumbe wa kumbukumbu kwa seva ya syslog ya mbali kwa kuongeza laini ifuatayo kwenye faili yake kuu ya usanidi kama inavyoonyeshwa kwenye mfano ulio hapa chini.

# vi /etc/httpd/conf/httpd.conf

Kwenye faili kuu ya Apache ongeza laini iliyo hapa chini.

CustomLog "| /bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-access.log | /usr/bin/logger -thttpd -plocal1.notice'" combined

Mstari huo utatekeleza daemon ya HTTP kuandika ujumbe wa logi kwa ndani kwa faili ya logi ya mfumo wa faili, lakini pia kusindika ujumbe zaidi kupitia bomba ili kuweka matumizi, ambayo itawatuma kwa seva ya syslog ya mbali, kwa kuziweka alama kama zinatoka kwa local1. kituo.

8. Ikiwa unataka pia kuelekeza ujumbe wa kumbukumbu za makosa ya Apache kwa seva ya syslog ya mbali, ongeza sheria mpya kama ile iliyotolewa katika mfano hapo juu, lakini hakikisha kubadilisha jina la faili ya kumbukumbu ya httpd na kiwango cha ukali wa faili ya logi hadi linganisha kipaumbele cha makosa, kama inavyoonyeshwa kwenye sampuli ifuatayo:

ErrorLog "|/bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-error.log | /usr/bin/logger -thttpd -plocal1.err'"

9. Mara tu unapoongeza mistari iliyo hapo juu, unahitaji kuanzisha upya daemon ya Apache ili kutumia mabadiliko, kwa kutoa amri ifuatayo:

# systemctl restart httpd.service                 

10. Kuanzia toleo la 1.7.1, seva ya wavuti ya Nginx ina uwezo wa kujenga ndani ili kuweka ujumbe wake moja kwa moja kwenye seva ya syslog ya mbali, kwa kuongeza mistari ifuatayo ya msimbo kwenye faili ya usanidi ya nginx.

error_log syslog:server=192.168.1.10:514,facility=local7,tag=nginx,severity=error;
access_log syslog:server=192.168.10.254:514,facility=local7,tag=nginx,severity=info main;

Kwa seva ya IPv6, tumia umbizo la sintaksia lifuatalo kuambatanisha anwani ya IPv6.

access_log syslog:server=[7101:dc7::9]:514,facility=local7,tag=nginx,severity=info;

11. Kwenye seva ya mbali ya Rsyslog unahitaji kufanya mabadiliko yafuatayo kwenye faili ya usanidi ya rsyslog, ili kupokea kumbukumbu zilizotumwa na seva ya wavuti ya Apache.

local1.* @Apache_IP_address:514

Ni hayo tu! Umefaulu kusanidi daemon ya Rsyslog kufanya kazi katika hali ya mteja na, pia, umeagiza seva ya Apache HTTP au Nginx kusambaza ujumbe wake wa kumbukumbu kwa seva ya syslog ya mbali.

Iwapo mfumo utaacha kufanya kazi, unapaswa kuwa na uwezo wa kuchunguza tatizo kwa kukagua maudhui ya faili za kumbukumbu ambazo zimehifadhiwa kwenye seva ya syslog ya mbali.