Kaip įdiegti ir nustatyti „Monit“ („Linux“ procesų ir paslaugų stebėjimo) programą


„Monit“ yra nemokamas atviro kodo ir labai naudingas įrankis, kuris automatiškai stebi ir valdo serverio procesą, failus, katalogus, kontrolines sumas, teises, failų sistemas ir paslaugas, tokias kaip „Apache“, „Nginx“, „MySQL“, FTP, SSH, „Sendmail“ ir pan. sistemos administratoriams suteikia puikią ir naudingą stebėjimo funkciją.

„Monit“ turi patogią žiniatinklio sąsają, kurioje galite tiesiogiai peržiūrėti sistemos būseną ir nustatyti sąrankos procesus naudodami vietinį HTTP (S) žiniatinklio serverį arba per komandinės eilutės sąsają. Tai reiškia, kad turite prieigą prie interneto monito sąsajos ir jos peržiūrą, kad jūsų sistemoje būtų įdiegtas žiniatinklio serveris, pvz., „Apache“ ar „Nginx“.

„Monit“ turi galimybę paleisti procesą, jei jis nevykdomas, paleisti procesą iš naujo, jei nereaguoja, ir sustabdyti procesą, jei naudoja daug išteklių. Be to, galite naudoti „Monit“, kad stebėtumėte failus, katalogus ir failų sistemas pakeitimams, kontrolinės sumos pakeitimams, failo dydžio ar laiko žymos pakeitimams. Su „Monit“ galite stebėti nuotolinio kompiuterio TCP/IP prievadą, serverio protokolus ir ping. „Monit“ saugo savo žurnalo failą ir įspėja apie visas kritinių klaidų sąlygas ir atkūrimo būseną.

Šis straipsnis yra parašytas aprašant paprastą „Monit“ diegimo ir konfigūravimo vadovą RHEL, „CentOS“, „Fedora“, „Ubuntu“, „Linux Mint“ ir „Debian Linux“ operacinėse sistemose, tačiau jis taip pat turėtų būti lengvai suderinamas su „Scientific Linux“.

1 žingsnis: „Monit“ diegimas

Pagal numatytuosius nustatymus „Monit“ įrankis nėra prieinamas sistemos bazinėse saugyklose. Turite pridėti ir įgalinti trečiųjų šalių „epel“ saugyklą, kad įdiegtumėte „monit“ paketą savo RHEL/CentOS sistemose. Pridėję epel saugyklą, įdiekite paketą vykdydami šią yum komandą. „Ubuntu“/„Debian“/„Linux Mint“ vartotojai gali lengvai įdiegti naudodami komandą apt-get, kaip parodyta.

# yum install monit
$ sudo apt-get install monit

2 žingsnis: „Monit“ konfigūravimas

„Monit“ yra labai lengva konfigūruoti, iš tikrųjų konfigūracijos failai yra sukurti taip, kad juos būtų galima lengvai perskaityti ir vartotojams lengviau suprasti. Jis skirtas stebėti veikiančias paslaugas kas 2 minutes ir saugo žurnalus „/ var/log/monit“.

„Monit“ turi interneto sąsają, veikiančią 2812 prievade, naudojant žiniatinklio serverį. Norėdami įjungti žiniatinklio sąsają, turite atlikti keitimo konfigūracijos failą. Pagrindinis „monit“ konfigūracijos failas, esantis aplanke /etc/monit.conf (RedHat/CentOS/Fedora) ir/etc/monit/monitrc failas (Ubuntu/Debian/Linux Mint). Atidarykite šį failą naudodami pasirinktą redaktorių.

# vi /etc/monit.conf
$ sudo vi /etc/monit/monitrc

Tada pašalinkite komentarą iš šio skyriaus ir pridėkite savo serverio IP adresą ar domeno pavadinimą, leiskite visiems prisijungti ir pakeisti monitro vartotoją ir slaptažodį arba galite naudoti numatytuosius.

 set httpd port 2812 and
     use address localhost  # only accept connection from localhost
     allow localhost        # 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

Sukonfigūravę, turite paleisti „monit“ paslaugą, kad iš naujo įkeltumėte naujus konfigūracijos nustatymus.

# /etc/init.d/monit start
$ sudo /etc/init.d/monit start

Dabar galėsite pasiekti įprastą žiniatinklio sąsają, eidami į „http:// localhost: 2812“ arba „http://example.com:2812“. Tada įveskite vartotojo vardą kaip „admin“ ir slaptažodį kaip „monit“. Turėtumėte gauti ekraną, panašų į žemiau pateiktą.

3 žingsnis: Stebėjimo paslaugų pridėjimas

Tinkamai sukonfigūravę interneto sąsają, pradėkite pridėti programas, kurias norite stebėti, į /etc/monit.conf (RedHat/CentOS/Fedora) ir/etc/monit/monitrc failą (Ubuntu/Debian/Linux Mint) adresu apačia.

Toliau pateikiami keli naudingi „monit“ konfigūracijos pavyzdžiai, kurie gali būti labai naudingi norint sužinoti, kaip veikia paslauga, kur ji palaiko failą ir kaip paleisti bei sustabdyti paslaugą ir pan.

check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/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 = "/etc/init.d/apache2 start" with timeout 60 seconds
stop program  = "/etc/init.d/apache2 stop"
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx start"
stop program = "/etc/init.d/nginx stop"
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/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 "/etc/init.d/sshd start"
stop program "/etc/init.d/sshd stop"
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

Sukonfigūravę visas programas stebėjimui, patikrinkite, ar nėra sintaksės klaidų. Jei radote klaidų, jas išspręsti nėra taip sunku suprasti, kas nutiko. Kai gausite pranešimą, pvz., „Valdymo failo sintaksė gerai“, arba jei nematote klaidų, galite tęsti.

# monit -t
$ sudo monit -t

Ištaisę visas galimas klaidas, galite įvesti šią komandą, kad paleistumėte „monit“ paslaugą.

# /etc/init.d/monit restart
$ sudo /etc/init.d/monit restart

Galite patikrinti, ar „monit“ paslauga paleista, patikrindami žurnalo failą.

# tail -f /var/log/monit
$ sudo tail -f /var/log/monit.log
[BDT Apr  3 03:06:04] info     : Starting monit HTTP server at [localhost:2812]
[BDT Apr  3 03:06:04] info     : monit HTTP server started
[BDT Apr  3 03:06:04] info     : 'linux-console.net' Monit started
[BDT Apr  3 03:06:04] error    : 'nginx' process is not running
[BDT Apr  3 03:06:04] info     : 'nginx' trying to restart
[BDT Apr  3 03:06:04] info     : 'nginx' start: /etc/init.d/nginx

Taip atrodo vienodai, pridėjus visą stebėjimo procesą.

Nuorodos nuorodos

  1. „Monit“ pagrindinis puslapis
  2. „Monit“ dokumentacija
  3. „Monit“ konfigūracijos pavyzdžiai