Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Monit : Configurare & Install

Folosesc deja de multă vreme Nagios. Nagios este foarte util pentru notificări despre servicii pe diverse servere ce nu funcționează. Poate trimite notificări prin e-mail, SMS(având un SMS gateway conectat), poate vorbi în boxe(prin intermediul festival) sau poate destul de multe notificări.

Însă nagios face doar notificări. Rulează sub un user simplu, pentru anumite comenzi(ce nu pot fi rulat de sub un simplu user) face sudo (cu supraveghere atentă).

Până nu demult aveam întipărită bine în minte ideea că dacă vreau ceva care să verifice starea unui Program și să ia măsuri în anumite situații trebuie să fac un script, aveam în cap chiar și un exemplu (de la eggdrop, remember IRC?) care să îl pun să ruleze în cron.

Ieri m-a întrebat despre așa ceva, pe messenger, unul dintre cititorii acestui blog. I-am dat aceleași răspunsuri pe care le-am scris mai sus dar se pare că pe el nu l-a mulțumit. A tot căutat și el pe net până a dat de un tutorial pe care mi l-a pasat.
Software-ul pare a fi unul destul de matur, a ajuns la versiunea a 5-a(În repozitoarele Debian stable sau Ubuntu LTS e la versiunea 4.8.x). Are chiar și o interfață web pe care totuși nu v-aș recomanda să o porniți, iar dacă o porniți să nu o lăsați liberă publicului larg(în primul rând daemonul rulează sub userul root).

Monit este capabil ca în funcție de diverși parametrii ai aplicatiei, cum ar fi memoria RAM utilizată, nivelul de încărcare al procesorului, dispariția activității pe portul TCP sau UDP să ia anumite măsuri, adică să lanseze anumite comenzi de oprire/pornire/repornire a serviciilor sau chiar modificarea permisiunilor asupra fișierelor.

Dar gata cu vorba lungă, care contrar reclamelor de la TV, este sărăcia omului și să ne apucăm de treabă. Începem cu instalarea pachetului. Nu avem de făcut decât să rulăm ca root următoarea comandă:

apt-get install monit
yum install monit

Ce se îtâmplă?:

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
monit
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 254kB of archives.
After this operation, 680kB of additional disk space will be used.
Get:1 http://ftp.nb.lug.ro hardy/universe monit 1:4.8.1-2.1 [254kB]
Fetched 254kB in 0s (1966kB/s)
Selecting previously deselected package monit.
(Reading database ... 79286 files and directories currently installed.)
Unpacking monit (from .../monit_1%3a4.8.1-2.1_i386.deb) ...
Setting up monit (1:4.8.1-2.1) ...
Starting daemon monitor: -e monit won't be started/stopped
unless it it's configured
please configure monit and then edit /etc/default/monit
and set the "startup" variable to 1 in order to allow
monit to start

Edităm ulterior fișierul /etc/default/monit

startup=1
CHECK_INTERVALS=180


Edităm /etc/monit/monitrc

set alert [email protected] #adresa de e-mail validă unde se vor trimite notificările
include /etc/monit.d/*

Creem directorul /etc/monit.d și creem câte un fișier de configurare pentru diversele servicii ce urmează să le monitorizăm.

mkdir /etc/monit.d
cd /etc/monit.d/

Iată câtvea exemple:

apache2:

check process apache2 with pidfile /var/run/apache2.pid
start program = "/etc/init.d/apache2 start"
stop program  = "/etc/init.d/apache2 stop"
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if totalmem > 1.5 GB for 5 cycles then restart
if children > 50 then restart
if loadavg(5min) greater than 10 for 8 cycles then stop
group lamp

bind9:

check process named with pidfile /var/run/bind/run/named.pid
start program = "/etc/init.d/bind9 start"
stop program  = "/etc/init.d/bind9 stop"
if failed host 127.0.0.1 port 53 type tcp protocol dns then alert
if failed host 127.0.0.1 port 53 type udp protocol dns then alert
if 5 restarts within 5 cycles then timeout
group dns

dovecot:

check process dovecot with pidfile /var/run/dovecot/master.pid
group mail
start program = "/etc/init.d/dovecot start"
stop  program = "/etc/init.d/dovecot stop"
if 5 restarts within 5 cycles then timeout
if failed port 110 type TCP protocol POP then restart
if failed port 143 type TCP protocol IMAP then restart

mysql:

check process mysqld with pidfile /var/run/mysqld/mysqld.pid
start program = "/etc/init.d/mysql start"
stop program  = "/etc/init.d/mysql stop"
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if totalmem > 1.0 GB for 5 cycles then restart
if children > 50 then restart
if failed host 127.0.0.1 port 3306 protocol mysql then restart
if 5 restarts within 5 cycles then timeout
if loadavg(5min) greater than 10 for 8 cycles then stop
group lamp

postfix:

check process postfix with pidfile /var/spool/postfix/pid/master.pid
group mail
start program = "/etc/init.d/postfix start"
stop  program = "/etc/init.d/postfix stop"
if failed port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout

proftpd:

check process proftpd with pidfile /var/run/proftpd.pid
start program = "/etc/init.d/proftpd start"
stop program  = "/etc/init.d/proftpd stop"
if failed port 21 protocol ftp then restart
if 5 restarts within 5 cycles then timeout
group lamp

ssh:

check process sshd with pidfile /var/run/sshd.pid
start program = "/etc/init.d/ssh start"
stop program  = "/etc/init.d/ssh stop"
if failed port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout
group ssh

webmin:

check process webmin with pidfile /var/webmin/miniserv.pid
group webmin
start program = "/etc/init.d/webmin start"
stop  program = "/etc/init.d/webmin stop"
if failed host 127.0.0.1 port 8080 then restart
if 5 restarts within 5 cycles then timeout

check file webmin_rc with path /etc/init.d/webmin
group webmin
if failed checksum then unmonitor
if failed permission 755 then unmonitor
if failed uid root then unmonitor
if failed gid root then unmonitor


În final pornim serviciul de monitorizare

/etc/init.d/monit start
Starting daemon monitor: monit.



This post first appeared on Tutoriale Linux | Linux Pedia, please read the originial post: here

Share the post

Monit : Configurare & Install

×

Subscribe to Tutoriale Linux | Linux Pedia

Get updates delivered right to your inbox!

Thank you for your subscription

×