Каталог артыкулаў
🚀 Калі дынамічная старонка на вэб-сайце раптам мае код стану, не 200, як PHP8.3-FPM можа самастойна аднавіцца за лічаныя секунды?
🔥 Канфігурацыя PHP90-FPM, якая выратавала жыццё, пра якую не ведаюць 8.3% аператараў! Практычнае навучанне сістэме самааднаўлення дынамічных старонак Monit.
Як вы думаеце, ці дастаткова сачыць за працаздольнасцю працэсу PHP-FPM? Зусім няправільна!
Калі PHP-FPM на серверы раптоўна выходзіць з ладу, проста паглядзець на выжывальнасць працэсу — гэта як вымераць рак тэрмометрам — ён зусім не выяўляе фатальнай праблемы.
Я бачыў занадта шмат людзей, якія ахоўваліphp-fpm.sockМаніторынг быў самаздаволеным, і ў выніку вэб-сайт даўно ператварыўся ў могілкі 404. Сёння я хачу разбурыць гэтую ілюзію эксплуатацыі і абслугоўвання і паказаць вам праўду: жывы працэс ≠ звычайная паслуга.
🌪️ Дэструктыўны сцэнар: сокет падключаны, але сайт не працуе
пэўныЭлектронная камерцыяМаніторынг вэб-сайта паказаў, што працэс PHP-FPM працуе нармальна, але карыстальнікі скардзяцца на збоі з плацяжамі.
Пасля доўгіх пошукаў я выявіў, што ўцечка памяці ў старонніх бібліятэках прывяла да таго, што працэс PHP быў жывы, але цалкам не мог апрацоўваць запыты.
У цяперашні час спадзявацца выключна на выяўленне разеткі — гэта як правяраць пульс зомбі — мозг наогул не знайсці.смерць.
💥 Рашэнне для маніторынгу з падвойным знішчэннем, якое падрывае кагнітыўныя здольнасці
Выкіньце гэты састарэлы аднамерны маніторынг! Найлепшыя эксперты выкарыстоўваюць стратэгію падвойнага ўдушэння: працэсны ўзровень + бізнес-ўзровень.

Наступная канфігурацыя дазволіць вашаму серверу аднавіцца хутчэй, чым персанал па абслугоўванні можа ўстаць з ложка, калі ўзнікнуць праблемы:
check process php8.3-fpm with pidfile /run/php/php8.3-fpm.pid
start program = "/usr/sbin/service php8.3-fpm start"
stop program = "/usr/sbin/service php8.3-fpm stop"
if failed unixsocket /run/php/php8.3-fpm.sock then restart
if failed
host www.chenweiliang.com
port 443
protocol https
request "/wp-login.php"
status = 200
hostheader www.chenweiliang.com
for 3 cycles
then restart
if 5 restarts within 5 cycles then exec "/usr/bin/systemctl restart hestia"
🔍 Фатальныя дэталі, схаваныя ў параметрах
• hostheaderПараметры — гэта выратавальныя талісманы ў сцэнарах CDN/балансавання нагрузкі. Без іх гэта як шукаць стэлс-знішчальнік з акулярамі начнога бачання — вы не можаце злавіць падвешаны стан, выкліканы адсутнасцю загалоўка Host.
• for 3 cyclesТакая канструкцыя буфернага перыяду выдатна пазбягае ілжывых спрацоўванняў, выкліканых ваганнямі сеткі. Гэта як усталяваць амартызатар на сістэму назірання, каб прадухіліць дрыжанне рук ад спрацоўвання ядзернай кнопкі.
• Апошніexec "/usr/bin/systemctl restart hestia"Гэта найлепшы забойчы ўдар. Калі PHP-FPM не ўдалося ўваскрэсіць 5 разоў запар, я перавярнуў стол і перазапусціў усю панэль хостынгу. Гэты прыём я скраў з механізму выключальніка гандлёвай сістэмы Уол-стрыт.
🚨 Урокі болю і пакут: 3 пасткі, якія могуць прывесці да няўдачы
- Махлярства з SSL-сертыфікатам: пасля абнаўлення,
protocol httpsКалі гэтага не запісваць, маніторынг заўсёды няправільна ацэньвае гэта як нармальнае. Пазней я даведаўся, што старая версія Monit не правярала сертыфікат па змаўчанні, з-за чаго я страціў свой бонус у канцы года. - Пастка 401 на старонцы ўваходу: забываем дадаць пры маніторынгу старонкі ўваходу
Basic AuthenticationУ выніку кожны тэст запускае перазапуск. Гэта як паліваць сад пажарным гідрантам — дастаткова моцна, але зусім няправільна - Чорная дзірка ў лаг: адзін раз
/var/log/monit.logКалі памер рэзка ўзляцеў да 50 ГБ, мы выявілі, што нейкі ідыёт усталяваў перыяд выяўлення на 1 секунду. Памятайце, што сам журнал маніторынгу — гэта аб'ект, які трэба кантраляваць!
💡 Этапы праверкі і адладкі
- Праверка сінтаксісу канфігурацыі:
monit -t - Канфігурацыя перагрузкі:
monit reload
Заключны тэст
- Тэст на самагубства: прамы
kill -9Завяршыце працэс PHP-FPM і паглядзіце запісы аб адраджэнні ў журнале маніторынгу. Гэта як глядзець фільм пра зомбі! - Ін'екцыя атруты: наўмысна змяніце старонку ўваходу, каб яна вяртала код стану 503, і прасачыце, ці можа сістэма маніторынгу дакладна атакаваць. Я называю гэты метад «лічбавай вакцынай» — загадзя ўводжу невялікую колькасць віруса ў сістэму, каб выціснуць імунную рэакцыю сістэмы маніторынгу. Калі сігналізацыя будзе дзіка міргаць, а службы аднаўляцца, вы ўбачыце, як гарыць самая сэксуальная воля да выжывання ў свеце кода!
Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ ) Артыкул, якім падзяліўся Monit, пра маніторынг дынамічнай старонкі вэб-сайта, які выяўляе, што код стану не 200 і аўтаматычна перазапускае php8.3-fpm, можа быць карысным для вас.
Запрашаем падзяліцца спасылкай на гэты артыкул:https://www.chenweiliang.com/cwl-32764.html
Каб адкрыць больш схаваных хітрасцяў🔑, далучайцеся да нашага канала ў Telegram!
Падзяліцеся і пастаўце лайкі, калі вам гэта падабаецца! Вашы акцыі і лайкі - наша пастаянная матывацыя!