RHEL 7 - ഭാഗം 5-ൽ സിസ്റ്റം ലോഗുകൾ എങ്ങനെ കൈകാര്യം ചെയ്യാം (ഡാറ്റാബേസിലേക്ക് കോൺഫിഗർ ചെയ്യുക, തിരിക്കുക, ഇറക്കുമതി ചെയ്യുക)


നിങ്ങളുടെ RHEL 7 സിസ്റ്റങ്ങൾ സുരക്ഷിതമായി നിലനിർത്തുന്നതിന്, ലോഗ് ഫയലുകൾ പരിശോധിച്ചുകൊണ്ട് അത്തരം സിസ്റ്റങ്ങളിൽ നടക്കുന്ന എല്ലാ പ്രവർത്തനങ്ങളും എങ്ങനെ നിരീക്ഷിക്കണമെന്ന് നിങ്ങൾ അറിഞ്ഞിരിക്കണം. അതിനാൽ, നിങ്ങൾക്ക് അസാധാരണമോ ക്ഷുദ്രകരമോ ആയ ഏതെങ്കിലും പ്രവർത്തനം കണ്ടെത്താനും സിസ്റ്റം ട്രബിൾഷൂട്ടിംഗ് നടത്താനും അല്ലെങ്കിൽ ഉചിതമായ മറ്റൊരു നടപടി സ്വീകരിക്കാനും കഴിയും.

RHEL 7-ൽ, സിസ്റ്റം ലോഗിംഗിന്റെ ഉത്തരവാദിത്തം rsyslogd ഡെമൺ ആണ്, കൂടാതെ /etc/rsyslog.conf എന്നതിൽ നിന്നും അതിന്റെ കോൺഫിഗറേഷൻ വായിക്കുന്നു (ഈ ഫയൽ എല്ലാ സിസ്റ്റം ലോഗുകൾക്കുമുള്ള സ്ഥിരസ്ഥിതി ലൊക്കേഷൻ വ്യക്തമാക്കുന്നു) കൂടാതെ /etc/rsyslog.d എന്നതിനുള്ളിലെ ഫയലുകളിൽ നിന്നും, എന്തെങ്കിലും ഉണ്ടെങ്കിൽ.

Rsyslogd കോൺഫിഗറേഷൻ

rsyslog.conf-ന്റെ ദ്രുത പരിശോധന ആരംഭിക്കുന്നതിന് സഹായകമാകും. ഈ ഫയലിനെ 3 പ്രധാന വിഭാഗങ്ങളായി തിരിച്ചിരിക്കുന്നു: മൊഡ്യൂളുകൾ (rsyslog ഒരു മോഡുലാർ ഡിസൈൻ പിന്തുടരുന്നതിനാൽ), ഗ്ലോബൽ നിർദ്ദേശങ്ങൾ (rsyslogd ഡെമോണിന്റെ ആഗോള പ്രോപ്പർട്ടികൾ സജ്ജമാക്കാൻ ഉപയോഗിക്കുന്നു), നിയമങ്ങൾ. നിങ്ങൾ ഒരുപക്ഷേ ഊഹിക്കുന്നതുപോലെ, ഈ അവസാന ഭാഗം ലോഗിൻ ചെയ്യപ്പെടുന്നതോ കാണിക്കുന്നതോ (സെലക്ടർ എന്നും അറിയപ്പെടുന്നു) എവിടെയാണെന്നും ഈ ലേഖനത്തിലുടനീളം ഞങ്ങളുടെ ശ്രദ്ധ കേന്ദ്രീകരിക്കുമെന്നും സൂചിപ്പിക്കുന്നു.

rsyslog.conf-ലെ ഒരു സാധാരണ ലൈൻ ഇപ്രകാരമാണ്:

മുകളിലെ ചിത്രത്തിൽ, ഒരു സെലക്uടറിൽ ഒന്നോ അതിലധികമോ ജോഡികൾ അടങ്ങിയിരിക്കുന്നതായി നമുക്ക് കാണാൻ കഴിയും സൗകര്യം:മുൻഗണന അർദ്ധവിരാമങ്ങളാൽ വേർതിരിച്ചിരിക്കുന്നു, അവിടെ ഫെസിലിറ്റി സന്ദേശത്തിന്റെ തരം വിവരിക്കുന്നു (ആർഎഫ്uസി 3164 ലെ സെക്ഷൻ 4.1.1 കാണുക, ലഭ്യമായ സൗകര്യങ്ങളുടെ പൂർണ്ണമായ ലിസ്റ്റ് കാണുക. rsyslog) ഉം മുൻഗണനയും അതിന്റെ തീവ്രതയെ സൂചിപ്പിക്കുന്നു, അത് ഇനിപ്പറയുന്ന സ്വയം വിശദീകരിക്കുന്ന വാക്കുകളിൽ ഒന്നായിരിക്കാം:

  1. ഡീബഗ്
  2. വിവരങ്ങൾ
  3. അറിയിപ്പ്
  4. മുന്നറിയിപ്പ്
  5. തെറ്റ്
  6. crit
  7. അലേർട്ട്
  8. എമെർഗ്

ഒരു മുൻuഗണന അല്ലെങ്കിലും, കീവേഡ് ഒന്നുമില്ല എന്നതിന്റെ അർത്ഥം നൽകിയിരിക്കുന്ന സൗകര്യങ്ങളിലെല്ലാം മുൻഗണന ഇല്ല എന്നാണ്.

ശ്രദ്ധിക്കുക: നൽകിയിരിക്കുന്ന മുൻഗണന സൂചിപ്പിക്കുന്നത് അത്തരം മുൻഗണനയുള്ളതും അതിനുമുകളിലുള്ളതുമായ എല്ലാ സന്ദേശങ്ങളും ലോഗിൻ ചെയ്തിരിക്കണം എന്നാണ്. അതിനാൽ, മെയിൽ, authpriv, cron സേവനങ്ങൾ ഒഴികെയുള്ള മുൻഗണനാ വിവരങ്ങളോ അതിലും ഉയർന്നതോ ആയ എല്ലാ സന്ദേശങ്ങളും (സൌകര്യം പരിഗണിക്കാതെ) ലോഗ് ചെയ്യാൻ മുകളിലുള്ള ഉദാഹരണത്തിലെ വരി rsyslogd ഡെമണിനോട് നിർദ്ദേശിക്കുന്നു (ഈ സൗകര്യങ്ങളിൽ നിന്ന് വരുന്ന സന്ദേശങ്ങളൊന്നും കണക്കിലെടുക്കില്ല. ) /var/log/messages-ലേക്ക്.

കോളൻ ചിഹ്നം ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒന്നിലധികം സൗകര്യങ്ങൾ ഗ്രൂപ്പുചെയ്യാനും അവയ്uക്കെല്ലാം ഒരേ മുൻuഗണന ബാധകമാക്കാനും കഴിയും. അങ്ങനെ, വരി:

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

എന്ന് മാറ്റിയെഴുതാം

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

മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, മെയിൽ, authpriv, ക്രോൺ എന്നീ സൗകര്യങ്ങൾ ഗ്രൂപ്പുചെയ്uതിരിക്കുന്നു, അവയിൽ മൂന്നിനും കീവേഡ് none പ്രയോഗിക്കുന്നു.

എല്ലാ ഡെമൺ സന്ദേശങ്ങളും /var/log/tecmint.log-ലേക്ക് ലോഗ് ചെയ്യുന്നതിന്, ഞങ്ങൾ ഇനിപ്പറയുന്ന വരി rsyslog.conf-ലോ അല്ലെങ്കിൽ /etc/rsyslog.d-ൽ ഉള്ള ഒരു പ്രത്യേക ഫയലിലോ (മാനേജ് ചെയ്യാൻ എളുപ്പമാണ്) ചേർക്കേണ്ടതുണ്ട്:

daemon.*    /var/log/tecmint.log

നമുക്ക് ഡെമൺ പുനരാരംഭിക്കാം (സേവന നാമം ഒരു ഡിയിൽ അവസാനിക്കുന്നില്ല എന്നത് ശ്രദ്ധിക്കുക):

# systemctl restart rsyslog

രണ്ട് റാൻഡം ഡെമണുകൾ പുനരാരംഭിക്കുന്നതിന് മുമ്പും ശേഷവും ഞങ്ങളുടെ ഇഷ്uടാനുസൃത ലോഗിന്റെ ഉള്ളടക്കങ്ങൾ പരിശോധിക്കുക:

ഒരു സ്വയം പഠന വ്യായാമമെന്ന നിലയിൽ, സൗകര്യങ്ങളും മുൻഗണനകളും ഉപയോഗിച്ച് കളിക്കാനും നിലവിലുള്ള ലോഗ് ഫയലുകളിലേക്ക് അധിക സന്ദേശങ്ങൾ ലോഗ് ചെയ്യാനും അല്ലെങ്കിൽ മുമ്പത്തെ ഉദാഹരണത്തിലെന്നപോലെ പുതിയവ സൃഷ്ടിക്കാനും ഞാൻ നിങ്ങളെ ശുപാർശ ചെയ്യുന്നു.

ലോഗ്രോട്ടേറ്റ് ഉപയോഗിച്ച് ലോഗുകൾ തിരിക്കുക

ലോഗ് ഫയലുകൾ അനന്തമായി വളരുന്നത് തടയാൻ, ലോഗുകൾ തിരിക്കുന്നതിനും കംപ്രസ്സുചെയ്യുന്നതിനും നീക്കം ചെയ്യുന്നതിനും പകരമായി മെയിൽ ചെയ്യുന്നതിനും ലോഗ്രോട്ടേറ്റ് യൂട്ടിലിറ്റി ഉപയോഗിക്കുന്നു, അങ്ങനെ ധാരാളം ലോഗ് ഫയലുകൾ സൃഷ്ടിക്കുന്ന സിസ്റ്റങ്ങളുടെ ഭരണം എളുപ്പമാക്കുന്നു.

Logrotate ദിവസവും ഒരു ക്രോൺ ജോലിയായി പ്രവർത്തിക്കുന്നു (/etc/cron.daily/logrotate) കൂടാതെ അതിന്റെ കോൺഫിഗറേഷൻ /etc/logrotate.conf എന്നതിൽ നിന്നും /etc/logrotate.d എന്നതിൽ സ്ഥിതിചെയ്യുന്ന ഫയലുകളിൽ നിന്നും വായിക്കുന്നു.

rsyslog-ന്റെ കാര്യത്തിലെന്നപോലെ, പ്രധാന ഫയലിൽ പ്രത്യേക സേവനങ്ങൾക്കായുള്ള ക്രമീകരണങ്ങൾ ഉൾപ്പെടുത്താൻ കഴിയുമ്പോഴും, ഓരോന്നിനും വെവ്വേറെ കോൺഫിഗറേഷൻ ഫയലുകൾ സൃഷ്ടിക്കുന്നത് നിങ്ങളുടെ ക്രമീകരണങ്ങൾ മികച്ച രീതിയിൽ ക്രമീകരിക്കാൻ സഹായിക്കും.

നമുക്ക് ഒരു സാധാരണ logrotate.conf നോക്കാം:

മുകളിലെ ഉദാഹരണത്തിൽ, /var/loh/wtmp എന്നതിനായി ലോഗ്രോട്ടേറ്റ് ഇനിപ്പറയുന്ന പ്രവർത്തനങ്ങൾ ചെയ്യും: മാസത്തിലൊരിക്കൽ മാത്രം തിരിക്കാൻ ശ്രമിക്കുക, എന്നാൽ ഫയലിന് കുറഞ്ഞത് 1 MB വലുപ്പമുണ്ടെങ്കിൽ മാത്രം, അനുമതികൾ സജ്ജീകരിച്ച് ഒരു പുതിയ ലോഗ് ഫയൽ സൃഷ്ടിക്കുക. 0664 ലേക്ക്, യൂസർ റൂട്ടിനും ഗ്രൂപ്പ് utmp നും ഉടമസ്ഥാവകാശം നൽകിയിരിക്കുന്നു. അടുത്തതായി, റൊട്ടേറ്റ് ഡയറക്uടീവ് വ്യക്തമാക്കിയതുപോലെ ഒരു ആർക്കൈവ് ചെയ്ത ലോഗ് മാത്രം സൂക്ഷിക്കുക:

ഇനി /etc/logrotate.d/httpd-ൽ കാണുന്ന മറ്റൊരു ഉദാഹരണം നോക്കാം:

ലോഗ്രോട്ടേറ്റിനുള്ള ക്രമീകരണങ്ങളെക്കുറിച്ച് നിങ്ങൾക്ക് അതിന്റെ മാൻ പേജുകളിൽ (man logrotate.conf) കൂടുതൽ വായിക്കാം. നിങ്ങളുടെ വായനാ സൗകര്യത്തിനായി രണ്ട് ഫയലുകളും ഈ ലേഖനത്തോടൊപ്പം PDF ഫോർമാറ്റിൽ നൽകിയിരിക്കുന്നു.

ഒരു സിസ്റ്റം എഞ്ചിനീയർ എന്ന നിലയിൽ, നിങ്ങൾക്ക് ഒരു പ്രത്യേക പാർട്ടീഷൻ/ലോജിക്കൽ വോളിയത്തിൽ /var ഉണ്ടോ എന്നതിനെ ആശ്രയിച്ച്, ലോഗുകൾ എത്രത്തോളം സംഭരിക്കും, ഏത് ഫോർമാറ്റിൽ സൂക്ഷിക്കണം എന്ന് തീരുമാനിക്കേണ്ടത് നിങ്ങളുടേതാണ്. അല്ലെങ്കിൽ, സംഭരണ ഇടം ലാഭിക്കുന്നതിന് പഴയ ലോഗുകൾ നീക്കംചെയ്യുന്നത് പരിഗണിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു. മറുവശത്ത്, നിങ്ങളുടെ കമ്പനിയുടെയോ ക്ലയന്റിന്റെയോ ആന്തരിക നയങ്ങൾക്കനുസരിച്ച് ഭാവിയിലെ സുരക്ഷാ ഓഡിറ്റിങ്ങിനായി നിരവധി ലോഗുകൾ സൂക്ഷിക്കാൻ നിങ്ങൾ നിർബന്ധിതരായേക്കാം.

തീർച്ചയായും ലോഗുകൾ പരിശോധിക്കുന്നത് (ഗ്രെപ്പ്, റെഗുലർ എക്uസ്uപ്രെഷനുകൾ പോലുള്ള ഉപകരണങ്ങളുടെ സഹായത്തോടെ പോലും) വളരെ മടുപ്പിക്കുന്ന ജോലിയായി മാറും. ഇക്കാരണത്താൽ, അവയെ ഒരു ഡാറ്റാബേസിലേക്ക് കയറ്റുമതി ചെയ്യാൻ rsyslog നമ്മെ അനുവദിക്കുന്നു (OTB പിന്തുണയുള്ള RDBMS-ൽ MySQL, MariaDB, PostgreSQL, Oracle എന്നിവ ഉൾപ്പെടുന്നു.

ലോഗുകൾ കൈകാര്യം ചെയ്യുന്ന അതേ RHEL 7 ബോക്സിൽ നിങ്ങൾ ഇതിനകം MariaDB സെർവറും ക്ലയന്റും ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ട്യൂട്ടോറിയലിന്റെ ഈ വിഭാഗം അനുമാനിക്കുന്നു:

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

റൂട്ട് ഉപയോക്താവിനും മറ്റ് സുരക്ഷാ പരിഗണനകൾക്കുമായി പാസ്uവേഡ് സജ്ജമാക്കാൻ mysql_secure_installation യൂട്ടിലിറ്റി ഉപയോഗിക്കുക:

ശ്രദ്ധിക്കുക: ഡാറ്റാബേസിലേക്ക് ലോഗ് സന്ദേശങ്ങൾ ചേർക്കുന്നതിന് MariaDB റൂട്ട് ഉപയോക്താവിനെ ഉപയോഗിക്കാൻ നിങ്ങൾക്ക് താൽപ്പര്യമില്ലെങ്കിൽ, അങ്ങനെ ചെയ്യാൻ നിങ്ങൾക്ക് മറ്റൊരു ഉപയോക്തൃ അക്കൗണ്ട് കോൺഫിഗർ ചെയ്യാം. അത് എങ്ങനെ ചെയ്യണമെന്ന് വിശദീകരിക്കുന്നത് ഈ ട്യൂട്ടോറിയലിന്റെ പരിധിക്ക് പുറത്താണെങ്കിലും MariaDB വിജ്ഞാന അടിത്തറയിൽ വിശദമായി വിവരിച്ചിരിക്കുന്നു. ഈ ട്യൂട്ടോറിയലിൽ ഞങ്ങൾ ലാളിത്യത്തിനായി റൂട്ട് അക്കൗണ്ട് ഉപയോഗിക്കും.

അടുത്തതായി, GitHub-ൽ നിന്ന് createDB.sql സ്uക്രിപ്റ്റ് ഡൗൺലോഡ് ചെയ്uത് നിങ്ങളുടെ ഡാറ്റാബേസ് സെർവറിലേക്ക് ഇറക്കുമതി ചെയ്യുക:

# mysql -u root -p < createDB.sql

അവസാനമായി, ഇനിപ്പറയുന്ന വരികൾ /etc/rsyslog.conf ലേക്ക് ചേർക്കുക:

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

rsyslog ഉം ഡാറ്റാബേസ് സെർവറും പുനരാരംഭിക്കുക:

# systemctl restart rsyslog 
# systemctl restart mariadb

ലോഗുകൾ പരിഷ്uക്കരിക്കുന്ന ചില ജോലികൾ ചെയ്യുക (ഉദാഹരണത്തിന്, സേവനങ്ങൾ നിർത്തുന്നതും ആരംഭിക്കുന്നതും പോലെ), തുടർന്ന് നിങ്ങളുടെ DB സെർവറിലേക്ക് ലോഗിൻ ചെയ്uത് ലോഗുകളിൽ പ്രദർശിപ്പിക്കാനും തിരയാനും സ്റ്റാൻഡേർഡ് SQL കമാൻഡുകൾ ഉപയോഗിക്കുക:

USE Syslog;
SELECT ReceivedAt, Message FROM SystemEvents;

സംഗ്രഹം

ഈ ലേഖനത്തിൽ സിസ്റ്റം ലോഗിംഗ് എങ്ങനെ സജ്ജീകരിക്കാം, ലോഗുകൾ എങ്ങനെ തിരിക്കാം, എങ്ങനെ എളുപ്പത്തിൽ തിരയുന്നതിനായി സന്ദേശങ്ങൾ ഒരു ഡാറ്റാബേസിലേക്ക് റീഡയറക്ട് ചെയ്യാം എന്നിവ ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട്. നിങ്ങൾ RHCE പരീക്ഷയ്uക്ക് തയ്യാറെടുക്കുമ്പോഴും നിങ്ങളുടെ ദൈനംദിന ഉത്തരവാദിത്തങ്ങളിലും ഈ കഴിവുകൾ സഹായകമാകുമെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.

എല്ലായ്പ്പോഴും എന്നപോലെ, നിങ്ങളുടെ ഫീഡ്uബാക്ക് സ്വാഗതാർഹമാണ്. ഞങ്ങളെ ബന്ധപ്പെടാൻ ചുവടെയുള്ള ഫോം ഉപയോഗിക്കാൻ മടിക്കേണ്ടതില്ല.