Artikulo Direktoryo
Kanunay nga pag-crash sa Apache2 o mga kapakyasan sa awtomatikong pag-restart sa Monit sa mga palibot sa HestiaCP ? Kini nga artikulo naghatag ug praktikal nga giya aron malikayan ang kasagarang mga lit-ag sa pagmonitor sa Apache2 gamit ang Monit, pag-analisar pag-ayo sa kasagarang mga isyu sama sa dili pag-uyon sa PID path ug pag-block sa permission, ug pagtanyag sa mga production-grade nga Monit automation configuration file. Pag-master sa mga teknik sa pagmentinar sa high-availability server karon ug pagkab-ot ang ikaduhang lebel nga awtomatik nga pagkaayo gikan sa mga kapakyasan!
Ang mga lit-ag nga akong nasugatan samtang naggamit sa Monit aron mabantayan ang Apache2
Niadtong Biyernes, gihatagan ko sa server og Monit alert sa tungang gabii.
Mitan-aw ko sa panel nga nalipong, ug sa kolum sa status sa apache2, naa'y pula nga Timeout.

Nahunahuna nako kini sa makadiyot. Gidugang nako ang Monit monitoring sa server sa tibuok adlaw, ug gikopya ug gi-paste nako ang configuration gikan sa online tutorial. Wala untay problema, di ba?
Pagkabuntag, ni-timeout na usab. Human sa ikatulong higayon, niundang na lang ang Monitor, ug ang panel nagpakita og "Not monitored".
Ako...
Moangkon ko, wala nako kini seryosoha sa sinugdanan. Pagmonitor sa Apache2? Daghan kaayong template configurations nga makita online, copy and paste lang. Apan ang proseso sa pag-paste nakapasuko gyud nako.
Ang gamot nga hinungdan sa panagbangi tali sa default nga arkitektura sa HestiaCP ug mga port sa Monit
Tugoti ako una nga ipakita kanimo ang configuration nga nakahatag kanako og dakong problema, aron imong makita kung parehas ba gyud kini sa bersyon nga imong nakita.
check process apache2 with pidfile /var/run/apache2/apache2.pid
start program = "/usr/sbin/service apache2 start"
stop program = "/usr/sbin/service apache2 stop"
if failed host 127.0.0.1 port 80 protocol http then restart
if 5 restarts within 5 cycles then timeoutMurag okay ra, di ba? Gisusi niini ang port 80, ug kung kini mag-crash, kini magsugod pag-usab. Kung kini mag-crash gihapon pagkahuman sa 5 ka pag-restart, kini matapos.
Ang problema kay, ang imong Apache2 wala gani nagdagan sa port 80.
Kini usa ka lit-ag sa HestiaCP, ug ang gamot sa daghang mga tawo nga nahulog niini. Ang default nga arkitektura sa HestiaCP usa ka reverse proxy sa Nginx + Apache2, diin ang Nginx nag-okupar sa mga port 80 ug 443 sa atubangan, ug ang Apache2 nagdagan sa lokal nga port 8081 sa likod.
Kon imong hangyoon si Monit nga susihon ang ka-aktibo sa Apache2 sa port 80, mura ra kag miadto sa McDonald's aron mangita og KFC. Ang server motan-aw nimo nga walay ekspresyon, ug kamo nga duha magtinan-away. Sa katapusan, nakita ni Monit nga down na ang imong computer ug nagsugod dayon sa pag-restart.
Human sa pag-restart, ang port kay 8081 gihapon. Gisulayan ni Monit nga susihon ang port 80, nga napakyas usab, mao nga kini nag-restart pag-usab. Kini nga siklo balik-balikon hangtod nga nakahukom si Monit nga dili na kini maayo ug na-time out na.
Sa dihang una nakong nasugatan kini, nahingangha gyud ko. Siyam sa napulo ka mga tutorial nga akong nakit-an online ang migamit og port 80. Kon imong gisunod kini, ang problema wala kanimo, kondili sa tinubdan sa impormasyon mismo.

Usa ka nadaot nga Apache2 PID file ang hinungdan nga nasayop si Monit sa pag-ila sa proseso nga wala maglungtad.
Human sa pag-ilis sa port gikan sa 80 ngadto sa 8081, sa teorya, ang Monit makamatikod na niini, di ba?
Apan, sa tinuod lang, usahay kini motaho gihapon nga " Napakyas ang pagpatuman ".
Human sa dugay nga pakigbisog, akong nadiskobrehan sa katapusan nga yano ra ang hinungdan: nadaot ang PID file.
Hunahunaa, si Monit sige'g balik-balik sa pag-restart sa Apache2, matag higayon pugson niya kini nga patyon ug i-restart, balik-balikon sa makadaghang higayon. Atol niini nga proseso, ang file nga /var/run/apache2/apache2.pid mahimong 0 bytes.
Sa ato pa, naa pa gihapon ang file, pero walay sulod.
Kon basahon sa Monit kini nga file, wala kini makit-an. Dili niini mailhan ang imong Apache2, bisan kon ang imong Apache2 nagdagan nga maayo sa background; wala maghunahuna ang Monit nga naglungtad ang proseso.
Pagkakita nako niini, nawad-an kog ikasulti sa makadiyot.
Kini usa ka deadlock. Ang Monit mapakyas sa pag-detect sa Apache 2 instance, i-restart ang Apache2, madaot ang PID file atol sa proseso sa pag-restart, mapakyas sa sunod nga pag-detect, ug i-restart pag-usab. Kini nga siklo magpadayon hangtod nga mahitabo ang timeout.
Mga Lakang sa Pag-troubleshoot ug Pag-ayo para sa Apache2 Monitoring sa HestiaCP Environment
Sa tinuod lang, ang proseso sa imbestigasyon dili komplikado, apan kinahanglan nimong mahibal-an kung asa nga direksyon ang imbestigahan.
Ang unang lakang mao ang pagtino kung unsang port ang gipaminawan sa imong Apache2. I-type lang ang usa ka sugo sa terminal.
netstat -tulpn | grep apache2O, mahimo nimong gamiton ang `ss` nga sugo; parehas ra ang epekto.
ss -tulpn | grep apache2Makakita ka og output nga susama niini.
tcp 0 0 127.0.0.1:8081 0.0.0.0:* LISTEN 2942372/apache2Nakumpirma nga 8081 diay, dili 80. Mao nay gamot sa problema.
Ang ikaduhang lakang mao ang pag-ayo sa nadaot nga PID file. Mas sayon kini.
monit unmonitor apache2
systemctl restart apache2
cat /var/run/apache2/apache2.pidUna, ihunong ang Monit monitoring aron malikayan ang pagpanghilabot samtang nag-ayo ka. Dayon, i-restart ang Apache2 aron tugotan kini sa pagsulat pag-usab sa usa ka limpyo nga PID. Sa katapusan, gamita ang `cat` aron susihon ang sulud sa file; kinahanglan kini adunay sulud nga mga numero, dili usa ka walay sulod nga string.
Kung nahuman na kini nga lakang, ang problema sa panguna masulbad na.

Pagtandi sa Pag-analisar sa Monit Tradisyonal nga Adaptive ug Agresibo nga Protective Configurations
Ang mga online tutorial sa pag-configure sa Apache2 gamit ang Monit kasagarang gibahin sa duha ka kategorya.
Usa ka klase mao ang "traditional adaptation type," nga naggamit sa sugo nga `service` aron pagdumala sa mga serbisyo ug pagsusi sa mga lokal nga pantalan nga dili magdugang og daghang komplikado nga mga pagdili. Kini nga konpigurasyon magamit sa HestiaCP pinaagi lang sa pag-ilis sa pantalan, ug kini medyo lig-on.
Laing pamaagi mao ang pamaagi nga "agresibo nga proteksyon", nga naggamit sa systemctl aron pagdumala sa mga serbisyo, nagdugang og mga pagdili sa proseso sa bata, ug naggamit og mas estrikto nga lohika sa pag-ila. Nindot tan-awon, apan aduna kini makamatay nga depekto: ang gigamit nga stop command mao ang `killall -9`.
Unsay buot ipasabot sa `killall -9`? Kini nagpasabot sa pagpugos sa pagpatay sa device bisan unsa pa ang gibuhat niini. Kining brute-force nga operasyon dali ra kaayong makabilin og mga nadaot nga PID file, nga mao ang problema nga akong nahisgutan.
Ang akong personal nga kasinatian mao nga ang paglimita sa gidaghanon sa mga child process sa usa ka agresibo nga configuration mapuslanon gyud. Kung ang imong Apache2 maapektuhan sa usa ka CC attack, ang paglimita sa gidaghanon sa mga child process makapugong sa server nga mahutdan og memorya. Bisan pa, ang pamaagi nga `killall -9` dili gyud magamit.
Mao nga sa katapusan akong gikompromiso ug gihiusa ang mga bentaha sa duha ka mga configuration.
HestiaCP Apache2 Monit Labing Maayong Pagpraktis sa Pag-configure
Usba ang file nga /etc/monit/conf.d/apache2 gamit ang mosunod nga sulod.
check process apache2 with pidfile /var/run/apache2/apache2.pid
start program = "/bin/systemctl start apache2"
stop program = "/bin/systemctl stop apache2"
if children > 120 for 2 cycles then restart
if failed host 127.0.0.1 port 8081 protocol http for 2 cycles then restart
if 5 restarts within 10 cycles then timeoutTugoti ako nga ipasabut sa mubo ang lohika luyo niining pipila ka linya sa pag-configure.
Isulat ang port 8081 aron mohaom gyud sa reverse proxy architecture sa HestiaCP; hunong na sa binuang nga pagsulat sa port 80.
Gamita ang sugo nga `systemctl stop` imbes nga `killall -9` aron pahunongon ang PID file, aron dili kini madaot.
Usa ka limitasyon sa proseso sa bata ang gidugang: kung ang gidaghanon sa mga bata molapas sa 120, ang proseso magsugod pag-usab pagkahuman sa duha ka sunod-sunod nga siklo aron mapugngan ang mga pag-atake sa CC, apan dili kini kaayo agresibo.
Ang lohika sa pag-detect sa mga kapakyasan giusab aron mogamit og pamaagi nga "para sa 2 ka siklo", nga nagpasabot nga ang pag-restart ma-trigger lang human sa duha ka sunod-sunod nga kapakyasan, nga makapakunhod sa mga sayop nga positibo. Ang miaging configuration, nga nag-restart human lang sa usa ka detection, prangka nga medyo sensitibo kaayo.
Ang katapusang timeout threshold giluagan ngadto sa 5 ka pag-restart sulod sa 10 ka siklo, nga nagbilin ug igong fault tolerance.
HestiaCP Pagmonitor sa monitorSumaryo sa Pag-troubleshoot sa Konpigurasyon ug Pagpaambit sa Kasinatian
Human sa paghimo sa mga pagbag-o sa configuration, akong gimonitor ang apache2, ug ang panel sa katapusan nagpakita og berde nga "OK" indicator.
Unsaon nako paghulagway ang akong gibati niadtong panahona? Murag naglisod ko og duha ka adlaw sa usa ka bug, unya usa ra diay ka linya sa configuration ang sayop, mao diay nga ang hinungdan. Makapaluya ug kataw-anan.
Maayo na lang ang Monit sa iyang kaugalingon, ug ang pagmonitor sa mga daemon usa ka butang nga angay buhaton sa matag server. Apan ang problema kay daghang online tutorials ang gibase sa pangagpas nga "Ang Apache2 eksklusibong naggamit sa port 80," samtang ang HestiaCP naggamit og reverse proxy, nga nagpasabot nga kini nga pangagpas dili tinuod.
Kon imong sundon ang mga instruksyon, ang problema dili ikaw; kini kay ang tutorial magamit sa lahi nga sitwasyon kaysa sa imoha.
Busa kon mogamit ka usab og HestiaCP ug mogamit sa Monit aron ma-monitor ang Apache2, hinumdomi lang ang duha ka butang: Usba ang port ngadto sa 8081, ug gamita ang sugo nga `systemctl` aron mapahunong kini, dili ang `killall -9`. Kon buhaton nimo kining duha ka butang, malikayan nimo ang dugang nga mga problema.
Tungod kay nabasa na nimo hangtod dinhi, kung nakita nimo nga makatabang kini, palihug i-like ug i-share. Kung gusto nimo makadawat una og mga update, mahimo ka usab nga mag-follow kanako!
Salamat sa pagbasa sa akong artikulo. Magkita ta sa sunod.
Hinaut nga ang artikulong "HestiaCP Apache2 Frequent Crashes? Monit Automated Monitoring and Troubleshooting Guide (with Complete Configuration)" nga gipaambit sa blog ni Chen Weiliang ( https://www.chenweiliang.com/ ) makatabang kanimo.
Ayaw pagpanuko sa pagpaambit niini nga link sa artikulo: https://www.chenweiliang.com/cwl-34457.html
