Artikulo Direktoryo
Usa ka pagbanaw sa dugo nga gipahinabo sa usa ka agianan sa socket
Ang istorya ingon ani.
Naa koy amigo nga nag-crash na pud ang server last month.
Miduol siya nako ug miingon nga ang monit sige og report og mga sayop, nga nag-ingon nga dili niini makit-an ang php-fpm socket file, ug unya ang serbisyo nagsugod sa pag-restart kanunay, ug ang load nagpadayon sa pagsaka. Alas tres sa kadlawon, gitawagan siya sa usa ka emergency call aron ayuhon ang server.
Giingnan ko ikaw nga ayaw kabalaka ug ipakita kanako ang mga monit log.
Pagtan-aw nako, naku, puno diay ni sa mga sayop:
sayop: Sayop sa koneksyon sa Unix socket /run/php/php8.4-fpm.sock — Walay ingon nga sayop sa file o direktoryo: 'php8.4-fpm' f ai led protocol test [DEFAULT] at /run/php/php8.4-fpm.sock — Dili makahimo og unix socket para sa /run/php/php8.4-fpm.sock
Nangutana ko niya, "Asa na man imong socket file karon?"
Niingon siya nga wala siya kabalo, mao nga gi-install ra nako gamit ang default settings.
Giingnan tika nga maghulat ka, susihon ra tika.
Unya nag-SSH ko ug nakita nako nga ang iyang tinuod nga socket file gitawag og... /run/php/php8.4-fpm-etufo.org.sock.
Niingon ko, bai, ang imong socket path duha ka managlahing butang, milagro gyud kon makakomunikar kini.
Karong adlawa akong ipatin-aw kini sa detalyado, ug mohatag usab og solusyon sa problema.
Abi nimog nanalipod nimo ang pagpaniid, pero ang tinuod makadaot diay ni nimo.
Magsugod kita pinaagi sa paghisgot bahin sa labing komon nga klase sa sayop sa mga monit log.
Kung makita nimo kini:
sayop: Sayop sa koneksyon sa Unix socket /run/php/php8.4-fpm.sock — Walay ingon nga file o direktoryo
Kini nagpakita nga ang monit naningkamot sa pag-detect sa php-fpm service pinaagi niining socket, apan dili niini makit-an ang file.
Ang sunod nga mahitabo mao nga ang monit mosulay sa pag-restart sa serbisyo, ug ang mga log magpakita:
impormasyon: 'php8.4-fpm' naningkamot sa pag-restart impormasyon: 'php8.4-fpm' stop: '/usr/sbin/service php8.4-fpm stop' impormasyon: 'php8.4-fpm' start: '/usr/sbin/service php8.4-fpm start'
Nindot tan-awon, di ba? Awtomatiko ra ni nga moayo sa iyang kaugalingon.
Apan ang problema kay kining kanunay nga pagsugod pag-usab mao ang tinuod nga katalagman.
Handurawa kini: kon ang php-fpm mo-restart, ang tanang kasamtangang giproseso nga mga hangyo mabalda, ang tanang sesyon mahimong mawala, ug ang tanang koneksyon kinahanglan nga ibalik. Kon kini balik-balik nga mo-restart ug mapakyas sulod sa mubo nga panahon, ang load sa server mosaka dayon.
Ang mga log magpadayag usab ug dugang nga impormasyon, sama niini:
sayop: 'et ufo .org' loadavg (15min) nga 8.8 ka tugma sa limitasyon sa kahinguhaan [loadavg (15min) > 8.0] sayop: 'et ufo .org' paggamit sa sistema sa cpu nga 33.9% ka tugma sa limitasyon sa kahinguhaan [paggamit sa sistema sa cpu > 30.0%]
Kusog na kaayo ang load sa server, apan balik-balik gihapon nga gi-restart sa monitoring system ang serbisyo. Wala kini nakapalong sa problema; nagdugang kini sa kagrabe sa problema.
Ang esensya sa problema: ang yawe ug ang kandado dili magkatugma.
Kon atong susihon pag-ayo, ang problema sayon ra kaayo.
Ang agianan sa socket nga gitino sa monit configuration file mao ang:/run/php/php8.4-fpm.sock
Apan, ang aktuwal nga socket path nga gigamit sa php-fpm mao ang:/run/php/php8.4-fpm-etufo.org.sock
Kon ang usa ka function gituyo aron makamatikod sa file A, apan ang usa mao gyud ang file B, ang pag-detect klaro nga mapakyas.
Kini sama sa usa ka butang.
Naa kay yawe, naka-lock sa laing kwarto.
Gigamit nimo ang imong yawi sa pag-abli sa pultahan kada adlaw, apan sa matag higayon nga imong makit-an nga dili kini moabli, unya moingon ka nga guba ang kandado.
Sa tinuod lang, wala man guba ang kandado; ang imong yawe lang kay wala motakdo sa kandado.
pagsulbadPagmonitor sa monitorAng konpigurasyon dili uyon sa PHP-FPM

Opsyon 1: Usba ang konpigurasyon sa monitor.
Kon gusto nimong ipadayon ang kasamtangang socket configuration sa php-fpm, usba ang monit configuration.
Pangitaa ang monit configuration file ug usba ang mosunod:
if failed unixsocket /run/php/php8.4-fpm.sock then restart
Usba kini sa:
if failed unixsocket /run/php/php8.4-fpm-chenweiliang.com.sock then restart
Dayon i-reload:
sudo monit reload
Mao ra na.
Opsyon 2: Usba ang php-fpm configuration.
Kon gusto nimong gamiton ang default path, usba ang pool configuration nga php-fpm.
编辑 /etc/php/8.4/fpm/pool.d/chenweiliang.com.confUsba ang sugo sa pagpamati ngadto sa:
listen = /run/php/php8.4-fpm.sock
Dayon i-restart ang php-fpm:
sudo systemctl restart php8.4-fpm
Mao ra na.
Ang duha ka solusyon makasulbad sa problema; ang imong pilion nagdepende sa imong piho nga mga kahimtang.
Pila ka mga site ang gi-host sa imong server? Ang matag site ba adunay independente nga socket? Kung usa ra ka site, mas sayon ang default path.
Tugoti ako nga mosulti gikan sa kasingkasing.
Nagtuo gyud ko nga kini nga mga matang sa isyu sa configuration mao ang labing dali nga mataligam-an apan labing makaapekto sa kalig-on sa server atol sa maintenance.
Kon ang socket path sayop nga nasulat, ang mga butang daw malinawon sa unang tan-aw, apan sa tinuod lang, ang monitoring system sige lang og hatag og sayop nga mga alarma, ang serbisyo sige lang og restart nga walay klarong hinungdan, ug ang load sige lang og kalit nga pagsaka.
Basin maghunahuna ka nga ang server karaan na kaayo ug kinahanglan nga i-upgrade, apan mahimo gyud nga ang path sa configuration file sayop.
Sama sa giingon sa usa ka senior nga kauban, "Ang katukma sa pagmonitor mao ang unang linya sa depensa aron masiguro ang kalig-on sa serbisyo."
Ang mga detalye ang nagtino sa kalampusan o kapakyasan, ug kini tinuod gyud sa usa ka palibot sa server.
Sugod karong adlawa, susiha ang imong monitoring configuration. Ayaw tugoti nga kining daw yano nga problema makaguba sa imong server.
Salamat sa pagbasa sa akong artikulo. Magkita ta sa sunod.
Hinaut nga ang artikulong "Solving the 'No such file or directory error' in Monit monitoring configuration and PHP-FPM" 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-34000.html
