Jinsi ya Kudhibiti Kumbukumbu za Mfumo (Sanidi, Zungusha na Uingize Katika Hifadhidata) katika RHEL 7 - Sehemu ya 5


Ili kuweka mifumo yako ya RHEL 7 salama, unahitaji kujua jinsi ya kufuatilia shughuli zote zinazofanyika kwenye mifumo hiyo kwa kukagua faili za kumbukumbu. Kwa hivyo, utaweza kugundua shughuli yoyote isiyo ya kawaida au inayoweza kuwa mbaya na kufanya utatuzi wa mfumo au kuchukua hatua nyingine inayofaa.

Katika RHEL 7, rsyslogd daemon inawajibika kwa uwekaji kumbukumbu wa mfumo na inasoma usanidi wake kutoka /etc/rsyslog.conf (faili hili linabainisha eneo chaguo-msingi la kumbukumbu zote za mfumo) na kutoka kwa faili zilizo ndani /etc/rsyslog.d, ikiwa zipo.

Usanidi wa Rsyslogd

Ukaguzi wa haraka wa rsyslog.conf utasaidia kuanza. Faili hii imegawanywa katika sehemu kuu 3: Moduli (kwa kuwa rsyslog hufuata muundo wa moduli), Maagizo ya Ulimwenguni (hutumika kuweka sifa za kimataifa za daemon ya rsyslogd), na Sheria. Kama unavyoweza kukisia, sehemu hii ya mwisho inaonyesha ni nini huwekwa kumbukumbu au kuonyeshwa (pia hujulikana kama kiteuzi) na wapi, na itakuwa lengo letu katika makala haya yote.

Mstari wa kawaida katika rsyslog.conf ni kama ifuatavyo:

Katika picha iliyo hapo juu, tunaweza kuona kwamba kiteuzi kinajumuisha jozi moja au zaidi Kituo:Kipaumbele kikitenganishwa na nusukoloni, ambapo Kituo kinafafanua aina ya ujumbe (rejelea sehemu ya 4.1.1 katika RFC 3164 ili kuona orodha kamili ya vifaa vinavyopatikana kwa rsyslog) na Kipaumbele kinaonyesha ukali wake, ambayo inaweza kuwa mojawapo ya maneno yafuatayo ya kujieleza:

  1. tatua
  2. maelezo
  3. taarifa
  4. onyo
  5. kosa
  6. kosoa
  7. tahadhari
  8. kuibuka

Ingawa sio kipaumbele chenyewe, neno kuu hakuna inamaanisha hakuna kipaumbele chochote cha kituo ulichopewa.

Kumbuka: Kwamba kipaumbele kilichopewa kinaonyesha kuwa ujumbe wote wa kipaumbele kama hicho na hapo juu unapaswa kurekodiwa. Kwa hivyo, mstari katika mfano hapo juu unaagiza rsyslogd daemon kuweka ujumbe wote wa maelezo ya kipaumbele au ya juu zaidi (bila kujali kituo) isipokuwa wale wa huduma za barua pepe, authpriv, na cron (hakuna ujumbe unaotoka kwa kituo hiki utazingatiwa. ) kwa /var/log/messages.

Unaweza pia kupanga vifaa vingi kwa kutumia ishara ya koloni ili kutumia kipaumbele sawa kwa zote. Kwa hivyo, mstari:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

Inaweza kuandikwa upya kama

*.info;mail,authpriv,cron.none                /var/log/messages

Kwa maneno mengine, barua za vifaa, authpriv, na cron zimewekwa katika vikundi na neno kuu hakuna linatumika kwa zote tatu.

Kuweka ujumbe wote wa daemon kwa /var/log/tecmint.log, tunahitaji kuongeza laini ifuatayo katika rsyslog.conf au katika faili tofauti (rahisi kudhibiti) ndani /etc/rsyslog.d:

daemon.*    /var/log/tecmint.log

Wacha tuanze tena daemon (kumbuka kuwa jina la huduma haliishii na d):

# systemctl restart rsyslog

Na angalia yaliyomo kwenye logi yetu maalum kabla na baada ya kuanza tena damoni mbili za nasibu:

Kama zoezi la kujisomea, ningependekeza ucheze karibu na vifaa na vipaumbele na uandikishe ujumbe wa ziada kwa faili zilizopo za kumbukumbu au uunde mpya kama katika mfano uliopita.

Kuzungusha Kumbukumbu kwa kutumia Logrotate

Ili kuzuia faili za logi kukua bila ukomo, shirika la logrotate hutumiwa kuzunguka, kubana, kuondoa, na kwa njia nyingine kumbukumbu za barua, na hivyo kurahisisha usimamizi wa mifumo inayozalisha idadi kubwa ya faili za kumbukumbu.

Logrotate hufanya kazi kila siku kama kazi ya cron (/etc/cron.daily/logrotate) na husoma usanidi wake kutoka /etc/logrotate.conf na kutoka kwa faili zilizoko /etc/logrotate.d, ikiwa zipo.

Kama ilivyo kwa rsyslog, hata wakati unaweza kujumuisha mipangilio ya huduma maalum kwenye faili kuu, kuunda faili tofauti za usanidi kwa kila moja itasaidia kupanga mipangilio yako vyema.

Wacha tuangalie logrotate.conf ya kawaida:

Katika mfano ulio hapo juu, logrotate itafanya vitendo vifuatavyo kwa /var/loh/wtmp: jaribu kuzungusha mara moja tu kwa mwezi, lakini ikiwa tu faili ina saizi ya angalau 1 MB, kisha unda faili mpya ya kumbukumbu iliyo na ruhusa iliyowekwa. kwa 0664 na umiliki uliotolewa kwa mzizi wa mtumiaji na utmp wa kikundi. Ifuatayo, weka kumbukumbu moja tu ya kumbukumbu, kama ilivyoainishwa na maagizo ya mzunguko:

Hebu sasa tuchunguze mfano mwingine kama unavyopatikana katika /etc/logrotate.d/httpd:

Unaweza kusoma zaidi kuhusu mipangilio ya logrotate katika kurasa zake za mtu (man logrotate.conf). Faili zote mbili zimetolewa pamoja na nakala hii katika umbizo la PDF kwa urahisi wa usomaji wako.

Kama mhandisi wa mfumo, itakuwa juu yako kuamua ni muda gani kumbukumbu zitahifadhiwa na katika muundo gani, kulingana na ikiwa unayo /var katika kizigeu/kiasi cha kimantiki. Vinginevyo, unataka kufikiria kuondoa kumbukumbu za zamani ili kuhifadhi nafasi ya kuhifadhi. Kwa upande mwingine, unaweza kulazimika kuweka kumbukumbu kadhaa kwa ukaguzi wa usalama wa siku zijazo kulingana na sera za ndani za kampuni au mteja wako.

Kwa kweli kukagua kumbukumbu (hata kwa msaada wa zana kama vile grep na misemo ya kawaida) inaweza kuwa kazi ya kuchosha. Kwa sababu hiyo, rsyslog huturuhusu kuzisafirisha kwenye hifadhidata (RDBMS inayoungwa mkono na OTB ni pamoja na MySQL, MariaDB, PostgreSQL, na Oracle.

Sehemu hii ya mafunzo inachukulia kuwa tayari umesakinisha seva ya MariaDB na mteja katika kisanduku sawa cha RHEL 7 ambapo kumbukumbu zinasimamiwa:

# yum update && yum install mariadb mariadb-server mariadb-client rsyslog-mysql
# systemctl enable mariadb && systemctl start mariadb

Kisha utumie kipengele cha mysql_secure_installation ili kuweka nenosiri la mtumiaji wa mizizi na masuala mengine ya usalama:

Kumbuka: Ikiwa hutaki kutumia mtumiaji wa mizizi ya MariaDB kuingiza ujumbe wa kumbukumbu kwenye hifadhidata, unaweza kusanidi akaunti nyingine ya mtumiaji kufanya hivyo. Kuelezea jinsi ya kufanya hivyo ni nje ya upeo wa mafunzo haya lakini imefafanuliwa kwa kina katika msingi wa maarifa wa MariaDB. Katika somo hili tutatumia akaunti ya mizizi kwa urahisi.

Ifuatayo, pakua hati ya createDB.sql kutoka GitHub na uingize kwenye seva yako ya hifadhidata:

# mysql -u root -p < createDB.sql

Mwishowe, ongeza mistari ifuatayo kwa /etc/rsyslog.conf:

$ModLoad ommysql
$ActionOmmysqlServerPort 3306
*.* :ommysql:localhost,Syslog,root,YourPasswordHere

Anzisha tena rsyslog na seva ya hifadhidata:

# systemctl restart rsyslog 
# systemctl restart mariadb

Sasa fanya kazi kadhaa ambazo zitarekebisha kumbukumbu (kama kusimamisha na kuanza huduma, kwa mfano), kisha ingia kwenye seva yako ya DB na utumie amri za kawaida za SQL kuonyesha na kutafuta kwenye kumbukumbu:

USE Syslog;
SELECT ReceivedAt, Message FROM SystemEvents;

Muhtasari

Katika makala hii tumeelezea jinsi ya kuweka kumbukumbu za mfumo, jinsi ya kuzungusha kumbukumbu, na jinsi ya kuelekeza ujumbe kwenye hifadhidata kwa utafutaji rahisi. Tunatumahi kuwa ujuzi huu utakusaidia unapojitayarisha kwa mtihani wa RHCE na katika majukumu yako ya kila siku pia.

Kama kawaida, maoni yako yanakaribishwa zaidi. Jisikie huru kutumia fomu iliyo hapa chini ili kuwasiliana nasi.