Monit - Usa ka Himan alang sa Pagdumala ug Pag-monitor sa mga Sistema sa Linux


Ang Monit usa ka libre nga open source ug mapuslanon kaayo nga himan nga awtomatik nga nagmonitor ug nagdumala sa mga proseso, file, direktoryo, checksum, permiso, filesystem, ug serbisyo sama sa Apache, Nginx, MySQL, FTP, SSH, SMTP, ug uban pa sa UNIX/Linux. base sa mga sistema ug naghatag usa ka maayo ug makatabang nga pag-andar sa pag-monitor sa mga tagdumala sa sistema.

Ang monit adunay usa ka user-friendly nga web interface diin direkta nimo nga makita ang kahimtang sa sistema ug mga proseso sa pag-setup gamit ang lumad nga HTTP(S) web server o pinaagi sa command line interface. Kini nagpasabut nga kinahanglan nimo nga adunay web server sama sa Apache o Nginx nga na-install sa imong sistema aron ma-access ug makita ang interface sa monit web.

[ Tingali ganahan ka usab: 20 Command Line Tools sa Pag-monitor sa Performance sa Linux ]

Ang Monit adunay katakus sa pagsugod sa usa ka proseso kung wala kini nagdagan, pagsugod pag-usab sa usa ka proseso kung dili pagtubag, ug paghunong sa usa ka proseso kung mogamit mga taas nga kapanguhaan. Dugang pa, mahimo nimong gamiton ang Monit aron mamonitor ang mga file, direktoryo, ug filesystem alang sa mga pagbag-o, pagbag-o sa checksum, pagbag-o sa gidak-on sa file, o pagbag-o sa timestamp.

Uban sa Monit, mahimo nimong mabantayan ang TCP/IP port sa mga hilit nga host, mga protocol sa server, ug ping. Gitipigan sa Monit ang kaugalingon nga log file ug mga alerto bahin sa bisan unsang kritikal nga kahimtang sa sayup ug kahimtang sa pagkaayo.

Kini nga artikulo gisulat aron ihulagway ang usa ka yano nga giya sa pag-install ug pag-configure sa Monit sa mga distribusyon sa Linux nga nakabase sa Debian.

Lakang 1: Pag-instalar sa Monit sa Linux

Sa kasagaran, ang Monit monitoring program dili makuha gikan sa default system base repository, kinahanglan nimong idugang ug i-enable ang third-party epel repository aron ma-install ang monit package ubos sa RHEL-based distributions sama sa CentOS, Rocky Linux, ug AlmaLinux.

--------- 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

Sa higayon nga imong nadugang ang epel repository, i-install ang Monit package pinaagi sa pagpadagan sa mosunod nga yum command.

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

Alang sa tiggamit sa Ubuntu/Debian/Linux Mint dali nga ma-install gamit ang apt command sama sa gipakita.

$ sudo apt install monit

Lakang 2: Pag-configure sa Monit sa Linux

Ang Monit dali ra kaayo nga i-configure, sa tinuud, ang mga file sa pag-configure gimugna aron dali nga mabasa ug mas dali kini masabtan sa mga tiggamit. Gidisenyo kini aron mamonitor ang mga nagdagan nga serbisyo matag 2 minuto ug gitago ang mga troso sa /var/log/monit.

Ang Monit adunay web interface nga nagdagan sa port 2812 gamit ang web server. Aron mahimo ang web interface kinahanglan nimo nga magbag-o sa monit configuration file.

Ang nag-unang configuration file sa monit nahimutang sa /etc/monit.conf ubos sa (RedHat/CentOS/Fedora) ug /etc/monit/monitrc file para sa (Ubuntu/Debian/Linux Mint).

Ablihi kini nga file gamit ang imong gipili nga editor.

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

Sunod, uncomment ang mosunod nga seksyon ug idugang ang IP address o domain name sa imong server, tugoti ang bisan kinsa nga makonektar ug usbon ang monit user ug password o mahimo nimong gamiton ang mga default.

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

Kung na-configure na nimo kini, kinahanglan nimo nga sugdan, i-enable ug i-verify ang serbisyo sa monit aron ma-reload ang bag-ong mga setting sa pag-configure.

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

Karon, maka-access ka sa monit web interface pinaagi sa pag-navigate sa mosunod nga mga URL.

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

Dayon isulod ang user name isip admin ug password isip monit. Kinahanglan nga makakuha ka usa ka screen nga parehas sa usa sa ubos.

Lakang 3: Pagdugang sa Linux Services sa Monit Monitoring

Sa diha nga ang mga interface sa monit web husto nga gipahimutang, sugdi ang pagdugang sa mga programa nga gusto nimong bantayan ngadto sa /etc/monitrc ubos sa (RedHat/CentOS/Fedora) ug /etc/monit/monitrc file para sa (Ubuntu/Debian/Linux Mint) sa ubos.

Ang mosunod mao ang pipila ka mapuslanon nga mga panig-ingnan sa pag-configure alang sa monit, nga makatabang kaayo aron makita kung giunsa ang pagdagan sa usa ka serbisyo, kung diin gitipigan ang profile niini, kung giunsa pagsugod ug paghunong ang usa ka serbisyo, ug uban pa.

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

Kung na-configure na nimo ang tanan nga mga programa alang sa pag-monitor, susiha ang syntax sa monit kung adunay mga sayup. Kung nakit-an ang bisan unsang mga sayup nga ayohon kini, dili kaayo lisud nga mahibal-an kung unsa ang sayup. Kung makadawat ka usa ka mensahe sama sa Control file syntax OK, o kung wala ka makita nga mga sayup, mahimo ka magpadayon.

# monit -t
Or
$ sudo monit -t

Pagkahuman sa pag-ayo sa tanan nga posible nga mga sayup, mahimo nimong i-type ang mosunud nga mando aron masugdan ang serbisyo sa monit.

# systemctl monit restart
OR
$ sudo systemctl monit restart

Ingon niini ang hitsura sa monit pagkahuman idugang ang tanan nga serbisyo sa Linux alang sa pag-monitor.