Littafin Adireshi
Faɗuwar Apache2 akai-akai ko gazawar sake farawa ta atomatik na Monit a cikin yanayin HestiaCP ? Wannan labarin yana ba da jagora mai amfani don guje wa matsaloli na yau da kullun yayin sa ido kan Apache2 tare da Monit, yana yin nazari sosai kan batutuwan da aka saba kamar kuskuren hanyar PID da toshe izini, da kuma bayar da fayilolin daidaitawa na atomatik na Monit na matakin samarwa. Kware kan dabarun kula da sabar da ke akwai yanzu kuma cimma murmurewa ta atomatik na mataki na biyu daga gazawar!
Matsalolin da na fuskanta yayin amfani da Monit don saka idanu kan Apache2
A ranar Juma'ar da ta gabata, uwar garken ta ba ni sanarwar Monit a tsakiyar dare.
Na kalli allon cikin mamaki, kuma a cikin ginshiƙin yanayin apache2, akwai ja Timeout.

Na ɗan yi tunani a kai. Na ƙara sa ido kan Monit zuwa sabar da rana, kuma na kwafi kuma na liƙa tsarin daga wani koyaswar kan layi. Bai kamata a sami wata matsala ba, ko?
Washegari da safe, lokaci ya sake kurewa. Bayan karo na uku, Monitor ya daina, kuma allon ya nuna "Ba a kula da shi ba".
I...
Na yarda, ban ɗauki lamarin da muhimmanci ba da farko. Kula da Apache2? Za ku iya samun tarin tsare-tsaren samfura akan layi, kawai kwafa da liƙa. Amma wannan tsarin liƙa ya sa ni fushi sosai.
Tushen rikicin da ke tsakanin tsarin HestiaCP na asali da tashoshin Monit
Bari in fara nuna muku tsarin da ya haifar min da matsala sosai, don ku gani ko daidai yake da sigar da kuka gani.
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 timeoutDa alama lafiya lau, ko? Yana duba tashar jiragen ruwa ta 80, kuma idan ya faɗi, zai sake farawa. Idan har yanzu yana faɗuwa bayan sake kunnawa sau 5, zai ƙare.
Matsalar ita ce, Apache2 ɗinka ba ya aiki a tashar jiragen ruwa ta 80.
Wannan wani babban kuskure ne na HestiaCP, kuma shine babban dalilin da yasa mutane da yawa ke faɗawa cikinsa. Tsarin HestiaCP na asali shine wakilcin Nginx + Apache2, tare da Nginx suna mamaye tashoshin jiragen ruwa 80 da 443 a gaba, da Apache2 suna gudana akan tashar jiragen ruwa ta gida 8081 a baya.
Idan ka nemi Monit ya binciki rayuwar Apache2 a tashar jiragen ruwa ta 80, kamar zuwa McDonald's nemo KFC ne. Sabar tana kallonka ba tare da komai ba, sai ku biyu ku kalli juna. A ƙarshe, Monit ya gano cewa ka faɗi ƙasa kuma ya fara sake farawa cikin gaggawa.
Bayan sake kunnawa, tashar har yanzu tana 8081. Daga nan Monit ya yi ƙoƙarin bincika tashar 80, wanda shi ma ya gaza, don haka zai sake farawa. Wannan zagayen yana maimaitawa har sai Monit ya yanke shawarar cewa ba zai iya gyarawa ba kuma ya ƙare.
Lokacin da na fara fuskantar wannan, na yi mamaki kwarai da gaske. Koyarwa tara cikin goma da na samu a intanet da aka yi amfani da ita a tashar jiragen ruwa ta 80. Idan ka bi su, matsalar ba ta kai ba ce, amma daga tushen bayanin ne.

Fayil ɗin Apache2 PID da ya lalace ya sa Monit ya gane cewa tsarin ba shi da matsala.
Bayan canza tashar jiragen ruwa daga 80 zuwa 8081, Monit yakamata a ka'ida ta iya gano ta, ko ba haka ba?
Duk da haka, a zahiri, har yanzu lokaci-lokaci yana ba da rahoton "aiwatar da aiki ba ta yi nasara ba ".
Bayan na daɗe ina fama da wannan matsalar, a ƙarshe na gano cewa dalili mai sauƙi ne: an lalata fayil ɗin PID.
Ka yi tunani a kai, Monit yana sake kunna Apache2 cikin gaggawa, a kowane lokaci yana kashewa da sake kunna shi da ƙarfi, yana komawa baya sau da yawa. A lokacin wannan tsari, fayil ɗin /var/run/apache2/apache2.pid na iya zama byte 0.
A wata ma'anar, fayil ɗin yana nan har yanzu, amma babu komai a ciki.
Idan Monit ya karanta wannan fayil ɗin, ba ya samun komai. Bai gane Apache2 ɗinka ba, koda Apache2 ɗinka yana aiki daidai a bango; Monit bai yi tunanin akwai tsarin ba.
Da na ga haka, sai na rasa magana na ɗan lokaci.
Wannan wani abu ne da ba za a iya tantancewa ba. Monit ya kasa gano misalin Apache 2, ya sake kunna Apache2, ya lalata fayil ɗin PID yayin aikin sake farawa, ya kasa ganowa na gaba, kuma ya sake farawa. Wannan zagayen yana ci gaba har sai lokacin ƙarewa ya faru.
Matakan Shirya Matsaloli da Gyara don Kula da Apache2 a cikin Muhalli na HestiaCP
Gaskiya ne, tsarin binciken ba shi da wahala, amma kuna buƙatar sanin wace hanya za ku bi don yin bincike.
Mataki na farko shine a tantance wace tashar Apache2 ɗinka ke sauraro. Kawai a rubuta umarni a cikin tashar.
netstat -tulpn | grep apache2A madadin haka, zaku iya amfani da umarnin `ss`; tasirin iri ɗaya ne.
ss -tulpn | grep apache2Za ku ga fitarwa makamancin haka.
tcp 0 0 127.0.0.1:8081 0.0.0.0:* LISTEN 2942372/apache2An tabbatar da cewa 8081 ne, ba 80 ba. Wannan shine tushen matsalar.
Mataki na biyu shine a gyara fayil ɗin PID da ya lalace. Wannan ya fi sauƙi.
monit unmonitor apache2
systemctl restart apache2
cat /var/run/apache2/apache2.pidDa farko, ka dakatar da sa ido kan Monit domin hana shi shiga tsakani yayin da kake gyara abubuwa. Sannan, sake kunna Apache2 don ba shi damar sake rubuta PID mai tsabta. A ƙarshe, yi amfani da `cat` don duba abubuwan da ke cikin fayil ɗin; ya kamata ya ƙunshi jerin lambobi, ba igiya mara komai ba.
Da zarar an kammala wannan matakin, matsalar za ta warware ta.

Binciken Kwatantawa na Tsarin Kariya na Monit na Gargajiya Mai Sauƙi da Tsanani
Koyarwar kan layi kan daidaita Apache2 tare da Monit gabaɗaya sun kasu kashi biyu.
Nau'i ɗaya shine "nau'in daidaitawa na gargajiya," wanda ke amfani da umarnin 'service` don sarrafa ayyuka da duba tashoshin jiragen ruwa na gida ba tare da ƙara ƙuntatawa masu rikitarwa da yawa ba. Ana iya amfani da wannan tsari akan HestiaCP ta hanyar canza tashar jiragen ruwa kawai, kuma yana da kwanciyar hankali.
Wata hanyar kuma ita ce hanyar "kariya mai tsanani", wadda ke amfani da systemctl don sarrafa ayyuka, ƙara ƙuntatawa kan tsarin yara, kuma tana amfani da dabarun gano abubuwa masu tsauri. Yana da kyau, amma yana da lahani mai kisa: umarnin dakatarwa da aka yi amfani da shi shine 'killall -9'.
Me ake nufi da 'killall -9'? Yana nufin a kashe na'urar da ƙarfi ba tare da la'akari da abin da take yi ba. Wannan aikin ƙarfi mara kyau zai iya barin fayilolin PID da suka lalace cikin sauƙi, wanda shine matsalar da na ambata.
Abin da na sani shi ne, iyakance adadin tsarin yara a cikin tsari mai tsauri yana da amfani. Lokacin da Apache2 ɗinku ya sha wahala da harin CC, iyakance adadin tsarin yara na iya hana uwar garken ya ƙare da ƙwaƙwalwa. Duk da haka, hanyar 'killall -9' ba ta da amfani sosai.
Don haka a ƙarshe na yi sulhu kuma na haɗa fa'idodin duka tsare-tsaren biyu.
Mafi kyawun Tsarin Aiki na HestiaCP Apache2 Monit
Gyara fayil ɗin /etc/monit/conf.d/apache2 tare da abubuwan da ke ƙasa.
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 timeoutBari in yi bayani a takaice game da manufar da ke bayan waɗannan layukan tsari kaɗan.
Rubuta tashar jiragen ruwa 8081 don daidaita tsarin wakilcin HestiaCP daidai; daina rubuta tashar jiragen ruwa 80 cikin wauta.
Yi amfani da umarnin `systemctl stop` maimakon `killall -9` don dakatar da fayil ɗin PID, don kada a lalata shi.
An ƙara iyaka ga tsarin yara: idan adadin yara ya wuce 120, tsarin zai sake farawa bayan zagaye biyu a jere don hana hare-haren CC, amma ba shi da ƙarfi sosai.
An gyara dabarar gano kurakurai don amfani da hanyar "don zagaye 2", ma'ana sake kunnawa yana faruwa ne kawai bayan gazawa sau biyu a jere, wanda ke rage alamun ƙarya. Tsarin da ya gabata, wanda ya sake farawa bayan ganowa sau ɗaya kawai, a gaskiya yana da ɗan saurin fahimta.
An rage ƙa'idar ƙarshen lokacin ƙarewa zuwa sake kunnawa sau 5 a cikin zagayowar 10, wanda ke barin isasshen haƙurin kuskure.
HestiaCP Kulawa da saka idanuTakaitaccen Bayani game da Shirya Matsalolin Saitawa da Rabawa Kwarewa
Bayan na yi canje-canje a cikin saitunan, na sa ido kan apache2, kuma a ƙarshe kwamitin ya nuna alamar kore "OK".
Ta yaya zan bayyana yadda nake ji a lokacin? Kamar na shafe kwana biyu ina fama da matsalar kwaro, sai kawai na gano dalilin hakan sai na ga layin tsari guda ɗaya da ya yi kuskure. Abin ya ba ni haushi kuma abin dariya ne.
Monit abu ne mai kyau a cikin kansa, kuma lura da aljanu abu ne da ya kamata kowace sabar ta yi. Amma matsalar ita ce yawancin koyaswar kan layi sun dogara ne akan zato cewa "Apache2 yana amfani da tashar jiragen ruwa ta 80 kawai," yayin da HestiaCP ke amfani da wakili mai juyawa, wanda ke nufin wannan zato bai yi daidai ba.
Idan ka bi umarnin, matsalar ba kai ba ce; amma dai koyaswar ta shafi wani yanayi daban da naka.
Don haka idan kuna amfani da HestiaCP kuma kuna yin mu'amala da Monit don sa ido kan Apache2, kawai ku tuna da abubuwa biyu: Canza tashar jiragen ruwa zuwa 8081, kuma ku yi amfani da umarnin 'systemctl` don dakatar da shi, ba 'killall -9' ba. Idan kun yi waɗannan abubuwa biyu, ya kamata ku iya guje wa wasu matsaloli.
Tunda ka karanta wannan labarin, idan ka ga yana da amfani, don Allah ka yi like sannan ka raba shi. Idan kana son samun sabbin bayanai da farko, za ka iya bi na!
Na gode da karanta labarina. Sai mun haɗu a karo na gaba.
Da fatan, labarin "HestiaCP Apache2 Frequent Crashes? Monit Automatic Monitoring and Disorder Guide (tare da Cikakken Saiti)" wanda aka raba a shafin yanar gizon Chen Weiliang ( https://www.chenweiliang.com/ ) zai taimaka muku.
Ku ji daɗin raba wannan labarin ta hanyar haɗin yanar gizo: https://www.chenweiliang.com/cwl-34457.html
