CentOS 7-ൽ Rsyslog സെർവറിലേക്ക് ലോഗുകൾ അയക്കാൻ Rsyslog ക്ലയന്റ് എങ്ങനെ സജ്ജീകരിക്കാം


ഒരു നെറ്റ്uവർക്ക് ഇൻഫ്രാസ്ട്രക്ചറിലെ ഏറ്റവും നിർണായക ഘടകങ്ങളിലൊന്നാണ് ലോഗ് മാനേജ്uമെന്റ്. യൂട്ടിലിറ്റികൾ, ആപ്ലിക്കേഷനുകൾ, ഡെമണുകൾ, നെറ്റ്uവർക്കുമായി ബന്ധപ്പെട്ട സേവനങ്ങൾ, കേർണൽ, ഫിസിക്കൽ ഉപകരണങ്ങൾ തുടങ്ങി നിരവധി സിസ്റ്റം സോഫ്uറ്റ്uവെയറുകൾ വഴി ലോഗ് സന്ദേശങ്ങൾ നിരന്തരം സൃഷ്ടിക്കപ്പെടുന്നു.

ലിനക്uസ് സിസ്റ്റം പ്രശ്uനങ്ങൾ പരിഹരിക്കുന്നതിനും സിസ്റ്റം നിരീക്ഷിക്കുന്നതിനും സിസ്റ്റം സുരക്ഷാ ശക്തിയും പ്രശ്uനങ്ങളും അവലോകനം ചെയ്യുന്നതിനും ലോഗ് ഫയലുകൾ ഉപയോഗപ്രദമാണെന്ന് തെളിയിക്കുന്നു.

Rsyslog ഒരു ഓപ്പൺ സോഴ്uസ് ലോഗിംഗ് പ്രോഗ്രാമാണ്, ഇത് ധാരാളം ലിനക്സ് വിതരണങ്ങളിലെ ഏറ്റവും ജനപ്രിയമായ ലോഗിംഗ് മെക്കാനിസമാണ്. CentOS 7 അല്ലെങ്കിൽ RHEL 7-ലെ ഡിഫോൾട്ട് ലോഗിംഗ് സേവനം കൂടിയാണിത്.

ഒന്നിലധികം നെറ്റ്uവർക്ക് ഉപകരണങ്ങളിൽ നിന്ന് ലോഗ് സന്ദേശങ്ങൾ ശേഖരിക്കുന്നതിനായി CentOS-ലെ Rsyslog ഡെമൺ ഒരു സെർവറായി പ്രവർത്തിക്കാൻ കോൺഫിഗർ ചെയ്യാവുന്നതാണ്. ഈ ഉപകരണങ്ങൾ ക്ലയന്റുകളായി പ്രവർത്തിക്കുകയും അവയുടെ ലോഗുകൾ ഒരു rsyslog സെർവറിലേക്ക് കൈമാറുന്നതിനായി ക്രമീകരിച്ചിരിക്കുന്നു.

എന്നിരുന്നാലും, Rsyslog സേവനം ക്ലയന്റ് മോഡിൽ ക്രമീകരിക്കാനും ആരംഭിക്കാനും കഴിയും. TCP അല്ലെങ്കിൽ UDP ട്രാൻസ്പോർട്ട് പ്രോട്ടോക്കോളുകൾ ഉപയോഗിച്ച് ഒരു റിമോട്ട് Rsyslog സെർവറിലേക്ക് ലോഗ് സന്ദേശങ്ങൾ കൈമാറാൻ ഈ സജ്ജീകരണം rsyslog ഡെമണിനോട് നിർദ്ദേശിക്കുന്നു. ഒരേ സമയം ഒരു ക്ലയന്റ് ആയും ഒരു സെർവറായും പ്രവർത്തിക്കാൻ Rsyslog സേവനം ക്രമീകരിക്കാൻ കഴിയും.

റിമോട്ട് Rsyslog സെർവറിലേക്ക് ലോഗ് സന്ദേശങ്ങൾ അയയ്uക്കുന്നതിന് ഒരു CentOS/RHEL 7 Rsyslog ഡെമൺ എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ഈ ട്യൂട്ടോറിയലിൽ ഞങ്ങൾ വിവരിക്കും. മറ്റ് ഡാറ്റ സംഭരിക്കുന്നതിന് നിങ്ങളുടെ മെഷീൻ ഡിസ്ക് സ്പേസ് സംരക്ഷിക്കാൻ കഴിയുമെന്ന് ഈ സജ്ജീകരണം ഉറപ്പാക്കുന്നു.

CentOS-ൽ മിക്കവാറും എല്ലാ ലോഗ് ഫയലുകളും ഡിഫോൾട്ടായി എഴുതിയിരിക്കുന്ന സ്ഥലം /var സിസ്റ്റം പാത്ത് ആണ്. /var ഡയറക്uടറിക്കായി എപ്പോഴും ഒരു പ്രത്യേക പാർട്ടീഷൻ സൃഷ്uടിക്കുന്നതും ഉചിതമാണ്, അത് /(root) പാർട്ടീഷൻ തീർന്നുപോകാതിരിക്കാൻ ഡൈനാമിക് ആയി വളരാൻ കഴിയും.

ഒരു Rsyslog ക്ലയന്റ് എല്ലായ്uപ്പോഴും ലോഗ് സന്ദേശങ്ങൾ പ്ലെയിൻ ടെക്uസ്uറ്റിൽ അയയ്uക്കുന്നു, മറ്റുവിധത്തിൽ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ. നിങ്ങളുടെ പൂർണ്ണ നിയന്ത്രണത്തിലല്ലാത്ത ഇന്റർനെറ്റ് അല്ലെങ്കിൽ നെറ്റ്uവർക്കുകൾ വഴി ലോഗ് സന്ദേശങ്ങൾ കൈമാറാൻ നിങ്ങൾ ഒരു Rsyslog ക്ലയന്റ് സജ്ജീകരിക്കരുത്.

  1. CentOS 7.3 ഇൻസ്റ്റലേഷൻ നടപടിക്രമം
  2. RHEL 7.3 ഇൻസ്റ്റലേഷൻ നടപടിക്രമം
  3. CentOS/RHEL 7-ൽ ഒരു Rsyslog സെർവർ കോൺഫിഗർ ചെയ്യുക

ഘട്ടം 1: Rsyslog ഇൻസ്റ്റാളേഷൻ പരിശോധിക്കുക

1. ഡിഫോൾട്ടായി, Rsyslog ഡെമൺ ഇതിനകം തന്നെ ഇൻസ്റ്റാൾ ചെയ്യുകയും ഒരു CentOS 7 സിസ്റ്റത്തിൽ പ്രവർത്തിക്കുകയും ചെയ്തിട്ടുണ്ട്. സിസ്റ്റത്തിൽ rsyslog സേവനം ഉണ്ടോ എന്ന് പരിശോധിക്കുന്നതിനായി, താഴെ പറയുന്ന കമാൻഡുകൾ നൽകുക.

# rpm -q | grep rsyslog
# rsyslogd -v

2. Ryslog പാക്കേജ് CentOS-ൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലെങ്കിൽ, സേവനം ഇൻസ്റ്റാൾ ചെയ്യാൻ താഴെയുള്ള കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുക.

# yum install rsyslog

ഘട്ടം 2: Rsyslog സേവനം ക്ലയന്റായി കോൺഫിഗർ ചെയ്യുക

3. ഒരു CentOS 7 സിസ്റ്റത്തിൽ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്ന Rsyslog ഡെമൺ ഒരു ലോഗ് ക്ലയന്റ് ആയി പ്രവർത്തിക്കുന്നതിനും പ്രാദേശികമായി ജനറേറ്റ് ചെയ്യുന്ന എല്ലാ ലോഗ് സന്ദേശങ്ങളും ഒരു റിമോട്ട് Rsyslog സെർവറിലേക്ക് റൂട്ട് ചെയ്യുന്നതിനും വേണ്ടി, rsyslog കോൺഫിഗറേഷൻ ഫയൽ ഇനിപ്പറയുന്ന രീതിയിൽ പരിഷ്uക്കരിക്കുക:

ആദ്യം എഡിറ്റിംഗിനായി പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ തുറക്കുക.

# vi /etc/rsyslog.conf

തുടർന്ന്, ചുവടെയുള്ള ഉദ്ധരണിയിൽ ചിത്രീകരിച്ചിരിക്കുന്നതുപോലെ ഫയലിന്റെ അവസാനം ചുവടെയുള്ള വരി ചേർക്കുക.

*. *  @192.168.10.254:514

മുകളിലുള്ള വരിയിൽ നിങ്ങൾ വിദൂര rsyslog സെർവറിന്റെ FQDN-ന്റെ IP വിലാസം അതനുസരിച്ച് മാറ്റിസ്ഥാപിക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നു. 514/UDP പോർട്ട് വഴി IP 192.168.10.254 ഉള്ള ഹോസ്റ്റിലേക്ക്, സൗകര്യമോ തീവ്രതയോ പരിഗണിക്കാതെ, എല്ലാ ലോഗ് സന്ദേശങ്ങളും അയയ്uക്കാൻ മുകളിലുള്ള വരി Rsyslog ഡെമണിനോട് നിർദ്ദേശിക്കുന്നു.

4. ടിസിപി കണക്ഷനുകളിൽ മാത്രം കേൾക്കാൻ വിദൂര ലോഗ് സെർവർ കോൺഫിഗർ ചെയ്uതിട്ടുണ്ടെങ്കിൽ അല്ലെങ്കിൽ ടിസിപി പോലെയുള്ള വിശ്വസനീയമായ ട്രാൻസ്uപോർട്ട് നെറ്റ്uവർക്ക് പ്രോട്ടോക്കോൾ ഉപയോഗിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, റിമോട്ട് ഹോസ്റ്റിന് മുന്നിൽ മറ്റൊരു @ പ്രതീകം ചേർക്കുക. ചുവടെയുള്ള ഉദാഹരണം:

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

= അല്ലെങ്കിൽ ! പോലുള്ള ചില പ്രത്യേക പ്രതീകങ്ങളും Linux rsyslog അനുവദിക്കുന്നു, തുല്യ ചിഹ്നത്തിനും \ഈ മുൻഗണന മാത്രം എന്ന് സൂചിപ്പിക്കാൻ മുൻഗണനാ തലങ്ങളിലേക്ക് പ്രിഫിക്സ് ചെയ്യാം. ഈ മുൻഗണനയോ ഇതിലും ഉയർന്നതോ അല്ല.

CentOS 7-ലെ Rsyslog മുൻഗണനാ നിലവാരത്തിലുള്ള ചില സാമ്പിളുകൾ:

  • kern.info = വിവര മുൻuഗണനയുള്ളതും ഉയർന്നതുമായ കേർണൽ ലോഗുകൾ.
  • kern.=info = വിവര മുൻഗണനയുള്ള കേർണൽ സന്ദേശങ്ങൾ മാത്രം.
  • kern.info;kern.!err = വിവരങ്ങൾ, അറിയിപ്പ്, മുന്നറിയിപ്പ് മുൻഗണനകൾ എന്നിവയുള്ള കേർണൽ സന്ദേശങ്ങൾ മാത്രം.
  • kern.debug;kern.!=warning = മുന്നറിയിപ്പ് ഒഴികെയുള്ള എല്ലാ കേർണൽ മുൻഗണനകളും.
  • kern.* = എല്ലാ കേർണൽ മുൻഗണനാ സന്ദേശങ്ങളും.
  • kern.none = മുൻഗണന പരിഗണിക്കാതെ ബന്ധപ്പെട്ട കേർണൽ സൗകര്യ സന്ദേശങ്ങളൊന്നും ലോഗ് ചെയ്യരുത്.

ഉദാഹരണത്തിന്, മുൻഗണനാ തലം പരിഗണിക്കാതെ തന്നെ ബന്ധപ്പെട്ട എല്ലാ മെയിൽ സന്ദേശങ്ങളും പോലെ, ഒരു വിദൂര ലോഗ് സെർവറിലേക്ക് ഒരു പ്രത്യേക സൗകര്യ സന്ദേശങ്ങൾ മാത്രം അയയ്uക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് കരുതുക, താഴെയുള്ള വരി rsyslog കോൺഫിഗറേഷൻ ഫയലിലേക്ക് ചേർക്കുക:

mail.* @192.168.10.254:514 

5. അവസാനമായി, പുതിയ കോൺഫിഗറേഷൻ പ്രയോഗിക്കുന്നതിന്, ഡെമൺ മാറ്റങ്ങൾ എടുക്കുന്നതിന്, താഴെയുള്ള കമാൻഡ് പ്രവർത്തിപ്പിച്ച് Rsyslog സേവനം പുനരാരംഭിക്കേണ്ടതുണ്ട്:

# systemctl restart rsyslog.service

6. ചില കാരണങ്ങളാൽ ബൂട്ട് സമയത്ത് Rsyslog ഡെമൺ പ്രവർത്തനക്ഷമമാക്കിയില്ലെങ്കിൽ, സിസ്റ്റം-വൈഡ് സർവീസ് പ്രവർത്തനക്ഷമമാക്കാൻ താഴെയുള്ള കമാൻഡ് നൽകുക:

# systemctl enable rsyslog.service

ഘട്ടം 3: Apache, Nginx ലോഗുകൾ ഒരു റിമോട്ട് ലോഗ് സെർവറിലേക്ക് അയയ്ക്കുക

7. അപ്പാച്ചെ HTTP സെർവർ, താഴെയുള്ള ഉദാഹരണത്തിൽ കാണിച്ചിരിക്കുന്നതുപോലെ, അതിന്റെ പ്രധാന കോൺഫിഗറേഷൻ ഫയലിലേക്ക് ഇനിപ്പറയുന്ന വരി ചേർത്ത് ഒരു റിമോട്ട് സിസ്uലോഗ് സെർവറിലേക്ക് ലോഗ് സന്ദേശങ്ങൾ അയയ്uക്കുന്നതിന് കോൺഫിഗർ ചെയ്യാവുന്നതാണ്.

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

Apache പ്രധാന conf ഫയലിൽ താഴെയുള്ള വരി ചേർക്കുക.

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

ഫയൽസിസ്റ്റം ലോഗ് ഫയലിലേക്ക് ലോഗ് സന്ദേശങ്ങൾ ആന്തരികമായി എഴുതാൻ ലൈൻ എച്ച്ടിടിപി ഡെമണിനെ നിർബന്ധിതമാക്കും, മാത്രമല്ല സന്ദേശങ്ങൾ ലോഗർ യൂട്ടിലിറ്റിയിലേക്ക് ഒരു പൈപ്പിലൂടെ കൂടുതൽ പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യും, ഇത് ലോക്കൽ 1 ൽ നിന്ന് വരുന്നതായി അടയാളപ്പെടുത്തി വിദൂര സിസ്ലോഗ് സെർവറിലേക്ക് അയയ്ക്കും. സൗകര്യം.

8. നിങ്ങൾക്ക് അപ്പാച്ചെ പിശക് ലോഗ് സന്ദേശങ്ങൾ ഒരു റിമോട്ട് സിസ്uലോഗ് സെർവറിലേക്ക് നയിക്കണമെങ്കിൽ, മുകളിലുള്ള ഉദാഹരണത്തിൽ അവതരിപ്പിച്ചിരിക്കുന്നതുപോലെ ഒരു പുതിയ നിയമം ചേർക്കുക, എന്നാൽ httpd ലോഗ് ഫയലിന്റെ പേരും ലോഗ് ഫയലിന്റെ തീവ്രത ലെവലും മാറ്റിസ്ഥാപിക്കുന്നത് ഉറപ്പാക്കുക. ഇനിപ്പറയുന്ന സാമ്പിളിൽ കാണിച്ചിരിക്കുന്നതുപോലെ, പൊരുത്തപ്പെടുത്തൽ പിശക് മുൻഗണന:

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

9. മുകളിലുള്ള വരികൾ ചേർത്തുകഴിഞ്ഞാൽ, താഴെ പറയുന്ന കമാൻഡ് നൽകി മാറ്റങ്ങൾ വരുത്താൻ നിങ്ങൾ അപ്പാച്ചെ ഡെമൺ പുനരാരംഭിക്കേണ്ടതുണ്ട്:

# systemctl restart httpd.service                 

10. പതിപ്പ് 1.7.1 പോലെ, ഒരു nginx കോൺഫിഗറേഷൻ ഫയലിലേക്ക് ഇനിപ്പറയുന്ന കോഡ് ലൈനുകൾ ചേർത്ത് ഒരു റിമോട്ട് syslog സെർവറിലേക്ക് സന്ദേശങ്ങൾ നേരിട്ട് ലോഗ് ചെയ്യുന്നതിനായി 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;

ഒരു IPv6 സെർവറിനായി, IPv6 വിലാസം ഉൾപ്പെടുത്തുന്നതിന് ഇനിപ്പറയുന്ന വാക്യഘടന ഫോർമാറ്റ് ഉപയോഗിക്കുക.

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

11. റിമോട്ട് Rsyslog സെർവറിൽ, അപ്പാച്ചെ വെബ് സെർവർ അയയ്uക്കുന്ന ലോഗുകൾ ലഭിക്കുന്നതിന് നിങ്ങൾ rsyslog കോൺഫിഗറേഷൻ ഫയലിൽ ഇനിപ്പറയുന്ന മാറ്റം വരുത്തേണ്ടതുണ്ട്.

local1.* @Apache_IP_address:514

അത്രയേയുള്ളൂ! ക്ലയന്റ് മോഡിൽ പ്രവർത്തിപ്പിക്കുന്നതിനായി നിങ്ങൾ Rsyslog ഡെമൺ വിജയകരമായി കോൺഫിഗർ ചെയ്uതു, കൂടാതെ, അപ്പാച്ചെ HTTP സെർവറിനോടും Nginx-നോടോ അതിന്റെ ലോഗ് സന്ദേശങ്ങൾ ഒരു റിമോട്ട് സിസ്uലോഗ് സെർവറിലേക്ക് കൈമാറാൻ നിങ്ങൾ നിർദ്ദേശിച്ചു.

നിങ്ങളുടെ സിസ്റ്റം ക്രാഷാകുന്ന സാഹചര്യത്തിൽ, റിമോട്ട് സിസ്uലോഗ് സെർവറിൽ സംഭരിച്ചിരിക്കുന്ന ലോഗ് ഫയലുകളുടെ ഉള്ളടക്കം പരിശോധിച്ച് നിങ്ങൾക്ക് പ്രശ്നം അന്വേഷിക്കാൻ കഴിയും.