በሄስቲያሲፒ አማካኝነት የ Apache2 ተደጋጋሚ ብልሽቶች? አውቶማቲክ የክትትል እና የመላ ፍለጋ መመሪያን ይከታተሉ (ሙሉ ውቅር ያለው)

በሄስቲያሲፒ አካባቢዎች ውስጥ በተደጋጋሚ የApache2 ብልሽቶች ወይም የMonit ራስ-ሰር ዳግም ማስጀመሪያ ብልሽቶች? ይህ ጽሑፍ Apache2ን በMonit ሲከታተሉ የተለመዱ ወጥመዶችን ለማስወገድ ተግባራዊ መመሪያ ይሰጣል፣ እንደ PID መንገድ አለመመጣጠን እና የፈቃድ እገዳ ያሉ የተለመዱ ችግሮችን በጥልቀት ይተነትናል፣ እና የምርት ደረጃ የMonit አውቶሜሽን ውቅር ፋይሎችን ያቀርባል። አሁን ከፍተኛ የሚገኙ የአገልጋይ ጥገና ቴክኒኮችን ይለማመዱ እና ከውድቀቶች ሁለተኛ ደረጃ ራስ-ሰር መልሶ ማግኛን ያግኙ!

ሞኒትን Apache2ን ለመቆጣጠር ስጠቀም ያጋጠሙኝ ወጥመዶች

ባለፈው አርብ፣ አገልጋዩ እኩለ ሌሊት ላይ የሞኒት ማንቂያ ሰጠኝ።

ፓነሉን በድንጋጤ ተመለከትኩት፣ እና በ apache2 ሁኔታ አምድ ውስጥ ቀይ የጊዜ ማብቂያ ነበር።

በሄስቲያሲፒ አማካኝነት የ Apache2 ተደጋጋሚ ብልሽቶች? አውቶማቲክ የክትትል እና የመላ ፍለጋ መመሪያን ይከታተሉ (ሙሉ ውቅር ያለው)

ለተወሰነ ጊዜ አሰብኩት። በቀን ውስጥ የMonit ክትትልን ወደ አገልጋዩ ጨምሬያለሁ፣ እና ውቅርን ከኦንላይን አጋዥ ስልጠና ገልብጬ ለጥፌዋለሁ። ምንም አይነት ችግር ሊኖር አይገባም፣ አይደል?

በማግስቱ ጠዋት፣ ጊዜው እንደገና ቆመ። ለሶስተኛ ጊዜ ከቆየ በኋላ፣ ሞኒተር ተስፋ ቆረጠ፣ እና ፓነሉ "አይከታተልም" የሚል ምልክት አሳይቷል።

እኔ...

እስማማለሁ፣ መጀመሪያ ላይ በቁም ነገር አልወሰድኩትም። Apache2 ክትትል? በመስመር ላይ ብዙ የአብነት ውቅሮችን ማግኘት ይችላሉ፣ ገልብጠው ይለጥፉ። ግን ያ የመለጠፍ ሂደት በጣም አስቆጣኝ።

በሄስቲያሲፒ ነባሪ አርክቴክቸር እና በሞኒት ወደቦች መካከል ያለው ግጭት ዋና መንስኤ

መጀመሪያ ላይ ብዙ ችግር የፈጠረብኝን ውቅር ላሳይህ፣ ስለዚህ በትክክል ካየኸው ስሪት ጋር ተመሳሳይ መሆኑን ማየት ትችላለህ።

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

ጥሩ ይመስላል፣ አይደል? ወደብ 80ን ይፈትሻል፣ እና ከተበላሸ እንደገና ይጀምራል። ከ5 ዳግም ከተጀመረ በኋላም ቢሆን ከተበላሸ ጊዜው ያበቃል።

ችግሩ የእርስዎ Apache2 በፖርት 80 ላይ እንኳን እየሰራ አይደለም።

ይህ የሄስቲያሲፒ ወጥመድ እና ብዙ ሰዎች ወደ እሱ የመውደቅ ዋና ምክንያት ነው። የሄስቲያሲፒ ነባሪ አርክቴክቸር የኤንክስክስ + አፓቼ2 ተገላቢጦሽ ወኪል ሲሆን ንክስክስ ከፊት ለፊት 80 እና 443 ወደቦችን ይይዛል፣ እና Apache2 ደግሞ ከኋላ ባለው የአካባቢ ወደብ 8081 ላይ ይሰራል።

ሞኒትን በፖርት 80 ላይ ያለውን የ Apache2 ን ህያውነት እንዲመረምር ከጠየቁት፣ KFCን ለማግኘት ወደ ማክዶናልድ መሄድ ነው። አገልጋዩ ባዶ ሆኖ ይመለከትዎታል፣ እና ሁለታችሁም እርስ በርሳችሁ ትተያያላችሁ። በመጨረሻም ሞኒት እርስዎ እንደወደቁ ይወስናሉ እና በጭንቀት እንደገና መጀመር ይጀምራል።

እንደገና ከተጀመረ በኋላ ወደቡ አሁንም 8081 ነው። ሞኒት ወደብ 80ን ለመመርመር ይሞክራል፣ እሱም እንዲሁ ይከሽፋል፣ ስለዚህ እንደገና ይጀምራል። ሞኒት መጠገን እንደማይችል እና ጊዜው እንደሚያልፍበት እስኪወስን ድረስ ይህ ዑደት ይደገማል።

ይህንን ለመጀመሪያ ጊዜ ሳገኘው በጣም ደነገጥኩ። ከአስር ትምህርቶች ውስጥ ዘጠኙን በኦንላይን ያገለገልኩበትን ወደብ 80 አግኝቻቸዋለሁ። እነሱን ከተከታተላችሁ ችግሩ ያለው ካንተ ጋር ሳይሆን የመረጃው ምንጭ ራሱ ነው።

በሄስቲያሲፒ አማካኝነት የ Apache2 ተደጋጋሚ ብልሽቶች? አውቶማቲክ የክትትል እና የመላ ፍለጋ መመሪያን ይከታተሉ (ሙሉ ውቅር ያለው)

የተበላሸ የ Apache2 PID ፋይል ሞኒት ሂደቱን በስህተት እንደሌለ እንዲለይ አድርጎታል።

ሞኒት ወደቡን ከ80 ወደ 8081 ከቀየረ በኋላ በንድፈ ሀሳብ ደረጃ መለየት መቻል አለበት፣ አይደል?

ሆኖም ግን፣ እንደ እውነቱ ከሆነ፣ አሁንም አልፎ አልፎ "ተግባሩ አልተሳካም " ሲል ዘግቧል።

ለረጅም ጊዜ ከታገልኩ በኋላ፣ በመጨረሻ ምክንያቱ ቀላል እንደሆነ ተገነዘብኩ፤ የPID ፋይል ተበላሽቷል።

እስቲ አስቡት፣ ሞኒት Apache2ን በጭንቀት እንደገና እየጀመረ ነበር፣ በእያንዳንዱ ጊዜ በኃይል እየገደለው እና እንደገና እየጀመረው፣ በተደጋጋሚ እየተመላለሰ። በዚህ ሂደት ውስጥ፣ /var/run/apache2/apache2.pid ፋይል 0 ባይት ሊሆን ይችላል።

በሌላ አነጋገር፣ ፋይሉ አሁንም አለ፣ ግን ባዶ ነው።

ሞኒት ይህንን ፋይል ሲያነብ ምንም አያገኝም። Apache2ዎን አይለይም፣ Apache2ዎ በጀርባ ውስጥ በጥሩ ሁኔታ እየሰራ ቢሆንም፤ ሞኒት ሂደቱ እንዳለ አያስብም።

ይህንን ሳየው፣ ለተወሰነ ጊዜ ዝም አልኩ።

ይህ የጊዜ ገደብ ነው። ሞኒት የ Apache 2 ምሳሌን ማግኘት አልቻለም፣ Apache2ን እንደገና ያስጀምራል፣ የPID ፋይሉን በዳግም ማስጀመሪያ ሂደቱ ውስጥ ያበላሻል፣ የሚቀጥለውን ማወቂያ አይሳካም፣ እና እንደገና ይጀምራል። ይህ ዑደት የጊዜ ማብቂያው እስኪከሰት ድረስ ይቀጥላል።

በሄስቲያሲፒ አካባቢ ውስጥ የ Apache2 ክትትልን በተመለከተ የመላ ፍለጋ እና የጥገና ደረጃዎች

እውነቱን ለመናገር የምርመራ ሂደቱ ውስብስብ አይደለም፣ ነገር ግን የትኛውን አቅጣጫ መመርመር እንዳለቦት ማወቅ ያስፈልግዎታል።

የመጀመሪያው እርምጃ Apache2ዎ በየትኛው ወደብ ላይ እያዳመጠ እንደሆነ መወሰን ነው። በቀላሉ በተርሚናል ውስጥ ትዕዛዝ ይተይቡ።

netstat -tulpn | grep apache2

በአማራጭ፣ የ`ss` ትዕዛዙን መጠቀም ይችላሉ፤ ውጤቱም ተመሳሳይ ነው።

ss -tulpn | grep apache2

ከዚህ ጋር ተመሳሳይ የሆነ ውጤት ታያለህ።

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

80 ሳይሆን 8081 መሆኑ ተረጋግጧል። የችግሩ መንስኤ ይህ ነው።

ሁለተኛው እርምጃ የተበላሸውን የPID ፋይል መጠገን ነው። ይህ ቀላል ነው።

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

በመጀመሪያ፣ ነገሮችን እያስተካከሉ እያለ ጣልቃ እንዳይገባ ለመከላከል የMonit ክትትልን ለአፍታ ያቁሙ። ከዚያም፣ ንጹህ PID እንደገና እንዲጽፍ Apache2ን እንደገና ያስጀምሩት። በመጨረሻም፣ የፋይሉን ይዘት ለመፈተሽ `cat` ይጠቀሙ፤ ባዶ ሕብረቁምፊ ሳይሆን የቁጥሮች ሕብረቁምፊ መያዝ አለበት።

ይህ ደረጃ ከተጠናቀቀ በኋላ ችግሩ በመሠረቱ ይፈታል።

በሄስቲያሲፒ አማካኝነት የ Apache2 ተደጋጋሚ ብልሽቶች? አውቶማቲክ የክትትል እና የመላ ፍለጋ መመሪያን ይከታተሉ (ሙሉ ውቅር ያለው)

የሞኒት ባህላዊ አዳፕቲቭ እና ጠበኛ የመከላከያ ውቅሮች ንፅፅር ትንተና

Apache2ን ከMonit ጋር ስለማዋቀር የመስመር ላይ አጋዥ ስልጠናዎች በአጠቃላይ በሁለት ምድቦች ይከፈላሉ።

አንደኛው ዓይነት "ባህላዊ የማላመድ አይነት" ሲሆን ይህም አገልግሎቶችን ለማስተዳደር እና ብዙ ውስብስብ ገደቦችን ሳይጨምር የአካባቢ ወደቦችን ለመፈተሽ የ'አገልግሎት' ትዕዛዝን ይጠቀማል። ይህ ውቅር በሄስቲያሲፒ ላይ ወደቡን በመቀየር ብቻ ጥቅም ላይ ሊውል ይችላል፣ እና በአንጻራዊነት የተረጋጋ ነው።

ሌላው አካሄድ "አጋላጭ መከላከያ" ዘዴ ሲሆን አገልግሎቶችን ለማስተዳደር systemctl የሚጠቀም፣ የህፃናት ሂደት ገደቦችን የሚያክል እና ጥብቅ የሆነ የፍተሻ አመክንዮ የሚጠቀም ነው። በጣም ጥሩ ይመስላል፣ ግን ገዳይ የሆነ ጉድለት አለው፡ ጥቅም ላይ የዋለው የማቆሚያ ትዕዛዝ 'killall -9' ነው።

«killall -9» ማለት ምን ማለት ነው? መሣሪያው ምንም ይሁን ምን በኃይል መግደል ማለት ነው። ይህ የጭካኔ ኃይል አሠራር የተበላሹ የPID ፋይሎችን በቀላሉ ሊተው ይችላል፣ ይህም አሁን የጠቀስኩት ችግር ነው።

የግል ተሞክሮዬ እንደሚያሳየው የሕፃናት ሂደቶችን ቁጥር በኃይለኛ ውቅር መገደብ በእርግጥም ጠቃሚ ነው። የእርስዎ Apache2 በCC ጥቃት ሲዋጥ፣ የሕፃናት ሂደቶችን ቁጥር መገደብ አገልጋዩ ማህደረ ትውስታ እንዳያልቅበት ሊያግደው ይችላል። ሆኖም ግን፣ የ'killall -9' አቀራረብ በእውነት ጥቅም ላይ የማይውል ነው።

ስለዚህ በመጨረሻ የሁለቱም ውቅሮች ጥቅሞችን አጣምሬያለሁ።

HestiaCP Apache2 Monit ምርጥ የተግባር ውቅር

የሚከተለውን ይዘት በመጠቀም /etc/monit/conf.d/apache2 የተባለውን ፋይል ያሻሽሉ።

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

የእነዚህን ጥቂት የውቅር መስመሮች በስተጀርባ ያለውን አመክንዮ በአጭሩ ላብራራ።

የሄስቲያሲፒን የተገላቢጦሽ ተኪ አርክቴክቸር በትክክል ለማዛመድ ወደብ 8081 ይፃፉ፤ ወደብ 80ን በሞኝነት መጻፍ ያቁሙ።

የPID ፋይሉን እንዳያበላሹት ለማስቆም ከ'killall -9' ይልቅ 'systemctl stop' የሚለውን ትዕዛዝ ይጠቀሙ።

የሕፃናት የሂደት ገደብ ተጨምሯል፡ የሕፃናት ቁጥር ከ120 በላይ ከሆነ፣ የCC ጥቃቶችን ለመከላከል ሂደቱ ከሁለት ተከታታይ ዑደቶች በኋላ እንደገና ይጀምራል፣ ነገር ግን በጣም ኃይለኛ አይደለም።

ውድቀቶችን ለመለየት የሚረዳው አመክንዮ "ለሁለት ዑደቶች" አቀራረብን ለመጠቀም ተቀይሯል፣ ይህ ማለት ዳግም ማስጀመር የሚቀሰቀሰው ከሁለት ተከታታይ ውድቀቶች በኋላ ብቻ ሲሆን ይህም የተሳሳቱ አወንታዊዎችን ይቀንሳል። አንድ ጊዜ ብቻ ከተገኘ በኋላ እንደገና የተጀመረው ቀዳሚው ውቅር በግልጽ ትንሽ ከመጠን በላይ ስሜታዊ ነበር።

የመጨረሻው የጊዜ ማብቂያ ገደብ በ10 ዑደቶች ውስጥ ወደ 5 ዳግም ማስጀመሪያዎች ተዘርግቷል፣ ይህም በቂ የስህተት መቻቻል ይሰጣል።

HestiaCP መከታተልየውቅር መላ ፍለጋ ማጠቃለያ እና የልምድ ማጋራት

የውቅረት ለውጦችን ካደረግኩ በኋላ፣ apache2ን ተከታተልኩ፣ እና ፓነሉ በመጨረሻ አረንጓዴ "እሺ" የሚል አመልካች አሳይቷል።

በወቅቱ ስሜቴን እንዴት መግለጽ እችላለሁ? ለሁለት ቀናት ከሳንካ ጋር እንደመታገል ነበር፣ ምክንያቱን ያገኘሁት የተሳሳተ የውቅር መስመር ብቻ ነበር። ሁለቱም የሚያበሳጭ እና የሚያስቅ ነበር።

ሞኒት በራሱ ጥሩ ነገር ነው፣ እና አጋንንትን መከታተል እያንዳንዱ አገልጋይ ማድረግ ያለበት ነገር ነው። ነገር ግን ችግሩ ብዙ የመስመር ላይ አጋዥ ስልጠናዎች የተመሰረቱት "Apache2 ወደብ 80ን ብቻ ይጠቀማል" በሚለው ግምት ላይ ሲሆን፣ HestiaCP ደግሞ የተገላቢጦሽ ፕሮክሲ ይጠቀማል፣ ይህም ማለት ይህ ግምት እውነት አይደለም ማለት ነው።

መመሪያዎቹን ከተከተሉ፣ ችግሩ እርስዎ አይደሉም፤ አጋዥ ስልጠናው ከእርስዎ የተለየ ሁኔታ ጋር የሚተገበር መሆኑ ነው።

ስለዚህ HestiaCP ን እየተጠቀሙ እና Apache2ን ለመከታተል Monitን እየተሳሳቱ ከሆነ፣ ሁለት ነገሮችን ያስታውሱ፡ ወደቡን ወደ 8081 ይቀይሩት እና ለማስቆም የ'systemctl' ትዕዛዝን ይጠቀሙ፣ 'killall -9' አይደለም። እነዚህን ሁለት ነገሮች ካደረጉ፣ ተጨማሪ ችግሮችን ማስወገድ ይችላሉ።


እስካሁን ድረስ ስላነበቡት፣ ጠቃሚ ሆኖ ካገኙት፣ እባክዎን ላይክ እና ሼር ያድርጉ። መጀመሪያ ዝማኔዎችን መቀበል ከፈለጉ፣ እኔንም መከተል ይችላሉ!

ጽሑፌን ስላነበባችሁልኝ አመሰግናለሁ። በሚቀጥለው ጊዜ እንገናኝ።

በቼን ዌይሊያንግ ጦማር ( https://www.chenweiliang.com/ ) ላይ የተጋራው "HestiaCP Apache2 Frequent Crashes? Monit Automatic Monitoring and Troubleshooting Guide (ከሙሉ ውቅር ጋር)" የሚለው ጽሑፍ ለእርስዎ ጠቃሚ እንደሚሆን ተስፋ እናደርጋለን።

የዚህን ጽሑፍ ሊንክ ለማጋራት ነፃነት ይሰማዎ፦ https://www.chenweiliang.com/cwl-34457.html

ተጨማሪ ድብቅ ዘዴዎችን ለመክፈት የቴሌግራም ቻናላችንን እንኳን በደህና መጡ።

ከወደዳችሁት ሼር እና ላይክ አድርጉ! የእርስዎ ማጋራቶች እና መውደዶች የእኛ ቀጣይ ተነሳሽነት ናቸው!

 

评论ሺ评论评论评论 ፡፡

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

ወደ ላይ ሸብልል