Ħabtiet frekwenti ta' Apache2 b'HestiaCP? Gwida awtomatizzata għall-monitoraġġ u s-soluzzjoni tal-problemi ta' Monit (b'konfigurazzjoni kompluta)

Ħabtiet frekwenti ta' Apache2 jew fallimenti ta' restart awtomatiku ta' Monit f'ambjenti HestiaCP ? Dan l-artiklu jipprovdi gwida prattika biex tevita nases komuni meta timmonitorja Apache2 b'Monit, janalizza fil-fond kwistjonijiet komuni bħal allinjament ħażin tal-mogħdija PID u imblukkar tal-permessi, u joffri fajls ta' konfigurazzjoni ta' awtomazzjoni Monit ta' grad ta' produzzjoni. Immaniġġja tekniki ta' manutenzjoni tas-server b'disponibbiltà għolja issa u ikseb irkupru awtomatiku tat-tieni livell minn fallimenti!

L-iżvantaġġi li ltqajt magħhom waqt li kont qed nuża Monit biex nissorvelja Apache2

Il-Ġimgħa li għaddiet, is-server tani twissija Monit f'nofs ta' lejl.

Tajt ħarsa lejn il-pannell b'ħalqi stordut, u fil-kolonna tal-istatus tal-apache2, kien hemm Timeout aħmar.

Ħabtiet frekwenti ta' Apache2 b'HestiaCP? Gwida awtomatizzata għall-monitoraġġ u s-soluzzjoni tal-problemi ta' Monit (b'konfigurazzjoni kompluta)

Ħsibt dwarha għal ftit. Żidt il-monitoraġġ ta' Monit mas-server matul il-ġurnata, u kkupjajt u waħħalt il-konfigurazzjoni minn tutorial online. M'għandux ikun hemm problemi, hux?

L-għada filgħodu, reġa’ skada t-timeout. Wara t-tielet darba, il-Monitor sempliċement ċeda, u l-pannell wera "Mhux monitorjat".

Jiena...

Nammetti, ma ħadtx bis-serjetà għall-ewwel. Monitoraġġ ta' Apache2? Tista' ssib tunnellati ta' konfigurazzjonijiet ta' mudelli online, ikkopja u waħħal biss. Imma dak il-proċess ta' waħħal verament irrabjatni.

Il-kawża ewlenija tal-kunflitt bejn l-arkitettura awtomatika ta' HestiaCP u l-portijiet Monit

L-ewwel ħa nurik il-konfigurazzjoni li kkawżatli tant problemi, ħalli tkun tista' tara jekk hijiex eżattament l-istess bħall-verżjoni li rajt.

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 timeout

Jidher tajjeb, hux? Jiċċekkja l-port 80, u jekk jiġġarraf, jerġa' jibda. Jekk xorta jiġġarraf wara 5 restarts, jiskadi l-ħin.

Il-problema hi li l-Apache2 tiegħek lanqas biss qed jaħdem fuq il-port 80.

Din hija nassa ta' HestiaCP, u l-kawża ewlenija għaliex ħafna nies jaqgħu fiha. L-arkitettura awtomatika ta' HestiaCP hija prokura inversa ta' Nginx + Apache2, b'Nginx jokkupa l-portijiet 80 u 443 fuq quddiem, u Apache2 jaħdem fuq il-port lokali 8081 fuq wara.

Jekk titlob lil Monit biex jiċċekkja jekk Apache2 huwiex attiv fuq il-port 80, ikun bħallikieku qed tmur McDonald's biex issib KFC. Is-server iħares lejk b'għajnejn vojta, u intom it-tnejn toqogħdu tħarsu lejn xulxin. Fl-aħħar, Monit jiddetermina li m'intix qed taħdem u jibda jerġa' jibda b'mod frenetiku.

Wara li terġa' tibda, il-port għadu 8081. Monit imbagħad jipprova jfittex il-port 80, li wkoll ifalli, u għalhekk terġa' tibda mill-ġdid. Dan iċ-ċiklu jirrepeti ruħu sakemm Monit jiddeċiedi li ma jistax jissewwa u jiskadi t-time-out.

Meta ltqajt ma' dan għall-ewwel darba, bqajt tassew ixxukkjat. Disgħa minn kull għaxar tutorials li sibt online użaw il-port 80. Jekk segwejthom, il-problema ma kinitx fik, iżda fis-sors tal-informazzjoni nnifisha.

Ħabtiet frekwenti ta' Apache2 b'HestiaCP? Gwida awtomatizzata għall-monitoraġġ u s-soluzzjoni tal-problemi ta' Monit (b'konfigurazzjoni kompluta)

Fajl Apache2 PID korrott wassal biex Monit jidentifika bi żball il-proċess bħala ineżistenti.

Wara li nbiddel il-port minn 80 għal 8081, Monit teoretikament għandu jkun kapaċi jiskoprih, hux?

Madankollu, fir-realtà, xorta kultant jirrapporta "L-eżekuzzjoni falliet ".

Wara li tħabatt għal żmien twil, fl-aħħar skoprejt li r-raġuni kienet sempliċi: il-fajl PID kien korrott.

Aħseb ftit, Monit kien qed jerġa' jibda Apache2 b'mod frenetiku, kull darba kien joqtlu u jerġa' jibda bil-forza, u kien imur 'il quddiem u lura diversi drabi. Matul dan il-proċess, il-fajl /var/run/apache2/apache2.pid jista' jsir 0 bytes.

Fi kliem ieħor, il-fajl għadu hemm, iżda huwa vojt.

Meta Monit jaqra dan il-fajl, ma jsib xejn. Ma jagħrafx l-Apache2 tiegħek, anke jekk l-Apache2 tiegħek qed jaħdem perfettament fl-isfond; Monit ma jaħsibx li l-proċess jeżisti.

Meta rajt dan, bqajt bla kliem għal mument.

Dan huwa deadlock. Monit jonqos milli jiskopri l-istanza ta' Apache 2, jerġa' jibda Apache2, jikkorrompi l-fajl PID waqt il-proċess ta' restart, ifalli d-detezzjoni li jmiss, u jerġa' jibda mill-ġdid. Dan iċ-ċiklu jkompli sakemm iseħħ it-timeout.

Passi għas-Soluzzjoni tal-Problemi u t-Tiswija għall-Monitoraġġ ta' Apache2 fl-Ambjent HestiaCP

Biex inkun onest, il-proċess ta' investigazzjoni mhuwiex ikkumplikat, imma trid tkun taf f'liema direzzjoni għandek tinvestiga.

L-ewwel pass huwa li tiddetermina fuq liema port qed jisma' l-Apache2 tiegħek. Sempliċement ittajpja kmand fit-terminal.

netstat -tulpn | grep apache2

Inkella, tista' tuża l-kmand `ss`; l-effett huwa l-istess.

ss -tulpn | grep apache2

Se tara output simili għal dan.

tcp  0  0 127.0.0.1:8081       0.0.0.0:*  LISTEN  2942372/apache2

Ġie kkonfermat li huwa 8081, mhux 80. Dik hija l-għerq tal-problema.

It-tieni pass huwa li tissewwa l-fajl PID korrott. Dan huwa aktar sempliċi.

monit unmonitor apache2
systemctl restart apache2
cat /var/run/apache2/apache2.pid

L-ewwel, waqqaf il-monitoraġġ ta' Monit biex tevita li jinterferixxi waqt li tkun qed tirranġa l-affarijiet. Imbagħad, erġa' ibda Apache2 biex tħallih jerġa' jikteb PID nadif. Fl-aħħar, uża `cat` biex tivverifika l-kontenut tal-fajl; għandu jkun fih sekwenza ta' numri, mhux sekwenza vojta.

Ladarba jitlesta dan il-pass, il-problema tkun bażikament solvuta.

Ħabtiet frekwenti ta' Apache2 b'HestiaCP? Gwida awtomatizzata għall-monitoraġġ u s-soluzzjoni tal-problemi ta' Monit (b'konfigurazzjoni kompluta)

Analiżi Komparattiva tal-Konfigurazzjonijiet Protettivi Adattivi u Aggressivi Tradizzjonali ta' Monit

It-tutorjali online dwar il-konfigurazzjoni ta' Apache2 b'Monit ġeneralment jaqgħu f'żewġ kategoriji.

Tip wieħed huwa t-"tip ta' adattament tradizzjonali," li juża l-kmand `service` biex jimmaniġġja s-servizzi u jiċċekkja l-portijiet lokali mingħajr ma jżid wisq restrizzjonijiet ikkumplikati. Din il-konfigurazzjoni tista' tintuża fuq HestiaCP sempliċement billi tbiddel il-port, u hija relattivament stabbli.

Approċċ ieħor huwa l-metodu ta' "protezzjoni aggressiva", li juża systemctl biex jimmaniġġja s-servizzi, iżid restrizzjonijiet fuq il-proċess tat-tfal, u juża loġika ta' skoperta aktar stretta. Jidher tajjeb ħafna, iżda għandu difett fatali: il-kmand ta' waqfien użat huwa `killall -9`.

Xi tfisser `killall -9`? Tfisser li toqtol l-apparat bil-forza irrispettivament minn dak li jkun qed jagħmel. Din l-operazzjoni ta' forza bruta tista' faċilment tħalli warajha fajls PID korrotti, li hija l-problema li għadni kif semmejt.

L-esperjenza personali tiegħi hija li l-limitazzjoni tan-numru ta' proċessi sekondarji f'konfigurazzjoni aggressiva hija tassew utli. Meta l-Apache2 tiegħek ikun megħlub minn attakk CC, il-limitazzjoni tan-numru ta' proċessi sekondarji tista' tipprevjeni lis-server milli jispiċċalu l-memorja. Madankollu, l-approċċ `killall -9` huwa tassew inutilizzabbli.

Għalhekk fl-aħħar għamilt kompromess u għaqqadt il-vantaġġi taż-żewġ konfigurazzjonijiet.

Konfigurazzjoni tal-Aħjar Prattika tal-Monitorizzazzjoni tal-HestiaCP Apache2

Immodifika l-fajl /etc/monit/conf.d/apache2 bil-kontenut li ġej.

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 timeout

Ħa nispjega fil-qosor il-loġika wara dawn il-ftit linji ta' konfigurazzjoni.

Ikteb il-port 8081 biex jaqbel preċiżament mal-arkitettura tar-reverse proxy ta' HestiaCP; ieqaf tikteb bla sens il-port 80.

Uża l-kmand `systemctl stop` minflok `killall -9` biex twaqqaf il-fajl PID, sabiex ma tikkorrompihx.

Ġie miżjud limitu għall-proċess tat-tfal: jekk in-numru ta' tfal jaqbeż il-120, il-proċess jerġa' jibda wara żewġ ċikli konsekuttivi biex jipprevjeni attakki tas-CC, iżda mhux aggressiv wisq.

Il-loġika għall-iskoperta ta' fallimenti ġiet modifikata biex tuża approċċ ta' "għal żewġ ċikli", li jfisser li bidu mill-ġdid jiġi attivat biss wara żewġ fallimenti konsekuttivi, u b'hekk jitnaqqsu l-pożittivi foloz. Il-konfigurazzjoni preċedenti, li kienet terġa' tibda wara skoperta waħda biss, kienet franchement daqsxejn sensittiva żżejjed.

Il-limitu finali tat-timeout huwa rilassat għal 5 restarts fi żmien 10 ċikli, u b'hekk jibqa' tolleranza suffiċjenti għall-ħsarat.

HestiaCP Monitoraġġ ta' monitoraġġSommarju tas-Soluzzjoni ... tal-Konfigurazzjoni u Kondiviżjoni tal-Esperjenza

Wara li għamilt il-bidliet fil-konfigurazzjoni, immonitorjajt apache2, u l-pannell fl-aħħar wera indikatur aħdar "OK".

Kif niddeskrivi s-sentimenti tiegħi dak iż-żmien? Kien bħallikieku qattajt jumejn nitħabat ma' bug, biex imbagħad niskopri li l-kawża kienet linja waħda ta' konfigurazzjoni li kienet żbaljata. Kien kemm frustranti kif ukoll redikoli.

Monit hija ħaġa tajba fiha nnifisha, u l-monitoraġġ tad-daemons huwa xi ħaġa li kull server għandu jagħmel. Iżda l-problema hi li ħafna tutorials online huma bbażati fuq is-suppożizzjoni li "Apache2 juża esklussivament il-port 80," filwaqt li HestiaCP juża reverse proxy, li jfisser li din is-suppożizzjoni mhijiex vera.

Jekk issegwi l-istruzzjonijiet, il-problema mhix int; hija li t-tutorja hija applikabbli għal xenarju differenti minn tiegħek.

Mela jekk qed tuża wkoll HestiaCP u qed tilgħab b'Monit biex timmonitorja Apache2, ftakar biss żewġ affarijiet: Ibdel il-port għal 8081, u uża l-kmand `systemctl` biex twaqqfu, mhux `killall -9`. Jekk tagħmel dawn iż-żewġ affarijiet, għandek tkun tista' tevita aktar problemi.


Ladarba qrajt s'hawn, jekk sibtha utli, jekk jogħġbok agħti like u aqsamha. Jekk trid tirċievi aġġornamenti l-ewwel, tista' wkoll issegwini!

Grazzi talli qrajt l-artiklu tiegħi. Narak id-darba li jmiss.

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Skrollja Top