മോണിറ്റ് - ലിനക്സ് സിസ്റ്റങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിനും നിരീക്ഷിക്കുന്നതിനുമുള്ള ഒരു ഉപകരണം


മോണിറ്റ് ഒരു സ്വതന്ത്ര ഓപ്പൺ സോഴ്uസും വളരെ ഉപയോഗപ്രദവുമായ ടൂളാണ്, അത് പ്രോസസ്സുകൾ, ഫയലുകൾ, ഡയറക്uടറികൾ, ചെക്ക്uസം, പെർമിഷനുകൾ, ഫയൽ സിസ്റ്റങ്ങൾ, കൂടാതെ Apache, Nginx, MySQL, FTP, SSH, SMTP തുടങ്ങിയ സേവനങ്ങളും UNIX/Linux-ൽ സ്വയമേവ നിരീക്ഷിക്കുകയും നിയന്ത്രിക്കുകയും ചെയ്യുന്നു. സിസ്റ്റങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ളതും സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർമാർക്ക് മികച്ചതും സഹായകരവുമായ നിരീക്ഷണ പ്രവർത്തനം നൽകുന്നു.

മോണിറ്റിന് ഒരു ഉപയോക്തൃ-സൗഹൃദ വെബ് ഇന്റർഫേസ് ഉണ്ട്, അവിടെ നിങ്ങൾക്ക് ഒരു നേറ്റീവ് HTTP(S) വെബ് സെർവർ ഉപയോഗിച്ചോ കമാൻഡ് ലൈൻ ഇന്റർഫേസ് വഴിയോ സിസ്റ്റം സ്റ്റാറ്റസും സെറ്റപ്പ് പ്രോസസ്സുകളും നേരിട്ട് കാണാനാകും. മോണിറ്റ് വെബ് ഇന്റർഫേസ് ആക്സസ് ചെയ്യുന്നതിനും കാണുന്നതിനും നിങ്ങളുടെ സിസ്റ്റത്തിൽ Apache അല്ലെങ്കിൽ Nginx പോലുള്ള വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കണം എന്നാണ് ഇതിനർത്ഥം.

[നിങ്ങൾക്ക് ഇതും ഇഷ്ടപ്പെടാം: ലിനക്സ് പ്രകടനം നിരീക്ഷിക്കുന്നതിനുള്ള 20 കമാൻഡ് ലൈൻ ടൂളുകൾ ]

മോണിറ്റിന് ഒരു പ്രോസസ്സ് പ്രവർത്തിക്കുന്നില്ലെങ്കിൽ അത് ആരംഭിക്കാനും പ്രതികരിക്കുന്നില്ലെങ്കിൽ ഒരു പ്രോസസ്സ് പുനരാരംഭിക്കാനും ഉയർന്ന ഉറവിടങ്ങൾ ഉപയോഗിച്ചാൽ ഒരു പ്രക്രിയ നിർത്താനുമുള്ള കഴിവുണ്ട്. കൂടാതെ, മാറ്റങ്ങൾ, ചെക്ക്സം മാറ്റങ്ങൾ, ഫയൽ വലുപ്പം മാറ്റങ്ങൾ അല്ലെങ്കിൽ ടൈംസ്റ്റാമ്പ് മാറ്റങ്ങൾ എന്നിവയ്ക്കായി ഫയലുകൾ, ഡയറക്uടറികൾ, ഫയൽസിസ്റ്റം എന്നിവ നിരീക്ഷിക്കാൻ നിങ്ങൾക്ക് മോണിറ്റ് ഉപയോഗിക്കാം.

മോണിറ്റ് ഉപയോഗിച്ച്, നിങ്ങൾക്ക് റിമോട്ട് ഹോസ്റ്റുകളുടെ TCP/IP പോർട്ട്, സെർവർ പ്രോട്ടോക്കോളുകൾ, പിംഗ് എന്നിവ നിരീക്ഷിക്കാൻ കഴിയും. മോണിറ്റ് അതിന്റേതായ ലോഗ് ഫയലും ഏതെങ്കിലും ഗുരുതരമായ പിശക് അവസ്ഥകളെക്കുറിച്ചും വീണ്ടെടുക്കൽ നിലയെക്കുറിച്ചും മുന്നറിയിപ്പ് നൽകുന്നു.

ഡെബിയൻ അടിസ്ഥാനമാക്കിയുള്ള ലിനക്സ് വിതരണങ്ങളിലെ മോണിറ്റ് ഇൻസ്റ്റാളേഷനും കോൺഫിഗറേഷനും സംബന്ധിച്ച ഒരു ലളിതമായ ഗൈഡ് വിവരിക്കുന്നതിനാണ് ഈ ലേഖനം എഴുതിയിരിക്കുന്നത്.

ഘട്ടം 1: ലിനക്സിൽ മോണിറ്റ് ഇൻസ്റ്റാൾ ചെയ്യുന്നു

ഡിഫോൾട്ടായി, മോണിറ്റ് മോണിറ്ററിംഗ് പ്രോഗ്രാം ഡിഫോൾട്ട് സിസ്റ്റം ബേസ് റിപ്പോസിറ്ററികളിൽ നിന്ന് ലഭ്യമല്ല, CentOS, Rocky Linux, AlmaLinux തുടങ്ങിയ RHEL-അധിഷ്ഠിത വിതരണങ്ങൾക്ക് കീഴിൽ മോണിറ്റ് പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് നിങ്ങൾ ഒരു മൂന്നാം കക്ഷി എപൽ ശേഖരം ചേർക്കുകയും പ്രവർത്തനക്ഷമമാക്കുകയും ചെയ്യേണ്ടതുണ്ട്.

--------- On RHEL 9 based Systems --------- 
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm 

--------- On RHEL 8 based Systems --------- 
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

--------- On RHEL 7 based Systems ---------
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

നിങ്ങൾ എപൽ റിപ്പോസിറ്ററി ചേർത്തുകഴിഞ്ഞാൽ, ഇനിപ്പറയുന്ന yum കമാൻഡ് പ്രവർത്തിപ്പിച്ച് മോണിറ്റ് പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക.

# yum install monit
OR
# dnf install monit  [On Fedora Linux]

ഉബുണ്ടു/ഡെബിയൻ/ലിനക്സ് മിന്റ് ഉപയോക്താക്കൾക്ക് കാണിച്ചിരിക്കുന്നതുപോലെ apt കമാൻഡ് ഉപയോഗിച്ച് എളുപ്പത്തിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും.

$ sudo apt install monit

ഘട്ടം 2: ലിനക്സിൽ മോണിറ്റ് കോൺഫിഗർ ചെയ്യുന്നു

മോണിറ്റ് കോൺഫിഗർ ചെയ്യാൻ വളരെ എളുപ്പമാണ്, വാസ്തവത്തിൽ, കോൺഫിഗറേഷൻ ഫയലുകൾ വളരെ എളുപ്പത്തിൽ വായിക്കാനും ഉപയോക്താക്കൾക്ക് മനസ്സിലാക്കാൻ എളുപ്പമാക്കാനുമാണ് സൃഷ്ടിച്ചിരിക്കുന്നത്. ഓരോ 2 മിനിറ്റിലും പ്രവർത്തിക്കുന്ന സേവനങ്ങൾ നിരീക്ഷിക്കുന്നതിനാണ് ഇത് രൂപകൽപ്പന ചെയ്uതിരിക്കുന്നത് കൂടാതെ ലോഗുകൾ /var/log/monit-ൽ സൂക്ഷിക്കുന്നു.

ഒരു വെബ് സെർവർ ഉപയോഗിച്ച് പോർട്ട് 2812-ൽ പ്രവർത്തിക്കുന്ന ഒരു വെബ് ഇന്റർഫേസ് മോണിറ്റിനുണ്ട്. വെബ് ഇന്റർഫേസ് പ്രവർത്തനക്ഷമമാക്കുന്നതിന് നിങ്ങൾ മോണിറ്റ് കോൺഫിഗറേഷൻ ഫയലിൽ മാറ്റങ്ങൾ വരുത്തേണ്ടതുണ്ട്.

മോണിറ്റിന്റെ പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ /etc/monit.conf (RedHat/CentOS/Fedora) എന്നതിലും (Ubuntu/Debian/Linux Mint) എന്നതിനായുള്ള /etc/monit/monitrc ഫയലിലും സ്ഥിതി ചെയ്യുന്നു.

നിങ്ങൾ തിരഞ്ഞെടുത്ത എഡിറ്റർ ഉപയോഗിച്ച് ഈ ഫയൽ തുറക്കുക.

# vi /etc/monitrc
Or
$ sudo nano /etc/monit/monitrc

അടുത്തതായി, ഇനിപ്പറയുന്ന വിഭാഗം അൺകമന്റ് ചെയ്uത് നിങ്ങളുടെ സെർവറിന്റെ IP വിലാസമോ ഡൊമെയ്uൻ നാമമോ ചേർക്കുക, മോണിറ്റ് ഉപയോക്താവും പാസ്uവേഡും ബന്ധിപ്പിക്കാനും മാറ്റാനും ആരെയും അനുവദിക്കുക അല്ലെങ്കിൽ നിങ്ങൾക്ക് സ്ഥിരസ്ഥിതിയുള്ളവ ഉപയോഗിക്കാം.

set httpd port 2812 and
     use address 0.0.0.0  # only accept connections from localhost
     allow 0.0.0.0/0        # allow localhost to connect to the server and
     allow admin:monit      # require user 'admin' with password 'monit'
     allow @monit           # allow users of group 'monit' to connect (rw)
     allow @users readonly  # allow users of group 'users' to connect readonly

നിങ്ങൾ ഇത് കോൺഫിഗർ ചെയ്തുകഴിഞ്ഞാൽ, പുതിയ കോൺഫിഗറേഷൻ ക്രമീകരണങ്ങൾ വീണ്ടും ലോഡുചെയ്യുന്നതിന് മോണിറ്റ് സേവനം ആരംഭിക്കുകയും പ്രവർത്തനക്ഷമമാക്കുകയും സ്ഥിരീകരിക്കുകയും ചെയ്യേണ്ടതുണ്ട്.

# systemctl start monit
# systemctl enable monit
# systemctl status monit

ഇപ്പോൾ, ഇനിപ്പറയുന്ന URL-കളിലേക്ക് നാവിഗേറ്റ് ചെയ്യുന്നതിലൂടെ നിങ്ങൾക്ക് മോണിറ്റ് വെബ് ഇന്റർഫേസ് ആക്സസ് ചെയ്യാൻ കഴിയും.

http://localhost:2812
OR
http://ip-address:2812
Or
http://example.com:2812

തുടർന്ന് ഉപയോക്തൃ നാമം “അഡ്മിൻ” എന്നും പാസ്uവേഡ് “monit” എന്നും നൽകുക. ചുവടെയുള്ളതിന് സമാനമായ ഒരു സ്uക്രീൻ നിങ്ങൾക്ക് ലഭിക്കണം.

ഘട്ടം 3: മോണിറ്റ് മോണിറ്ററിംഗിലേക്ക് Linux സേവനങ്ങൾ ചേർക്കുന്നു

മോണിറ്റ് വെബ് ഇന്റർഫേസുകൾ ശരിയായി സജ്ജീകരിച്ചുകഴിഞ്ഞാൽ, (RedHat/CentOS/Fedora) കീഴിലുള്ള /etc/monitrc, (Ubuntu/Debian/Linux Mint) എന്നതിനായുള്ള /etc/monit/monitrc ഫയലിലേക്ക് നിങ്ങൾ നിരീക്ഷിക്കാൻ ആഗ്രഹിക്കുന്ന പ്രോഗ്രാമുകൾ ചേർക്കാൻ ആരംഭിക്കുക താഴെ.

മോണിറ്റിനായുള്ള ചില ഉപയോഗപ്രദമായ കോൺഫിഗറേഷൻ ഉദാഹരണങ്ങൾ താഴെ കൊടുക്കുന്നു, ഒരു സേവനം എങ്ങനെ പ്രവർത്തിക്കുന്നു, അതിന്റെ പ്രൊഫൈൽ എവിടെ സൂക്ഷിക്കുന്നു, ഒരു സേവനം എങ്ങനെ ആരംഭിക്കാം, നിർത്താം തുടങ്ങിയവ കാണാൻ ഇത് വളരെ സഹായകമാകും.

check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/usr/bin/systemctl httpd start"
stop program = "/usr/bin/systemctl httpd stop"
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
check process apache with pidfile /run/apache2.pid
start program = "/usr/bin/systemctl apache2 start" with timeout 60 seconds
stop program  = "/usr/bin/systemctl apache2 stop"
check process nginx with pidfile /var/run/nginx.pid
start program = "/usr/bin/systemctl nginx start"
stop program = "/usr/bin/systemctl nginx stop"
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/usr/bin/systemctl mysqld start"
stop program = "/usr/bin/systemctl mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
check process sshd with pidfile /var/run/sshd.pid
start program "/usr/bin/systemctl sshd start"
stop program "/usr/bin/systemctl sshd stop"
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

നിരീക്ഷണത്തിനായി എല്ലാ പ്രോഗ്രാമുകളും ക്രമീകരിച്ചുകഴിഞ്ഞാൽ, പിശകുകൾക്കായി മോണിറ്റ് വാക്യഘടന പരിശോധിക്കുക. എന്തെങ്കിലും പിശകുകൾ കണ്ടെത്തിയാൽ അവ പരിഹരിക്കുക, എന്താണ് തെറ്റ് സംഭവിച്ചതെന്ന് കണ്ടെത്തുന്നത് അത്ര ബുദ്ധിമുട്ടുള്ള കാര്യമല്ല. നിങ്ങൾക്ക് കൺട്രോൾ ഫയൽ വാക്യഘടന ശരി പോലെയുള്ള ഒരു സന്ദേശം ലഭിക്കുമ്പോൾ, അല്ലെങ്കിൽ പിശകുകളൊന്നും കാണുന്നില്ലെങ്കിലോ, നിങ്ങൾക്ക് മുന്നോട്ട് പോകാം.

# monit -t
Or
$ sudo monit -t

സാധ്യമായ എല്ലാ പിശകുകളും പരിഹരിച്ച ശേഷം, മോണിറ്റ് സേവനം ആരംഭിക്കുന്നതിന് നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന കമാൻഡ് ടൈപ്പ് ചെയ്യാം.

# systemctl monit restart
OR
$ sudo systemctl monit restart

നിരീക്ഷണത്തിനായി എല്ലാ Linux സേവനങ്ങളും ചേർത്തതിന് ശേഷം നിരീക്ഷിക്കുന്നത് ഇങ്ങനെയാണ്.