Keyword check — HTTP-мониторларға қосымша тексеру: статус-кодты бақылаумен қатар Tracker.ru жауаптың денесінде берілген подстрингті іздейді және URL-ды подстринг табылған кезде ғана жұмысқа жарамды деп санайды. Бет 200 OK қайтарған, бірақ күтілген сөз жоғалған болса — URL down күйіне ауысады және хабарламалар жіберіледі. Мұндай тексеру 200 коды болса да сәтсіз деп есептеледі: ол uptime пен Apdex-ті төмендетеді және статус-бетте көрінеді.
Бұл сервер техникалық тірі болғанда, ал контент бұзылған бір топ инциденттерді жабады: бос шаблон, деплойдан кейінгі ақ бет, reverse-proxy-ден заглушка, дефейс немесе істемейтін feature-flag панелі. Keyword check-сіз мұндай жағдайлар HTTP-мониторингтен үнсіз өтіп кетеді.
Keyword check қашан керек
- Anti-deface. Подстринг — сайтта әрқашан болуға тиіс ерекше мәтіннің фрагменті (мысалы, подвалдағы copyright). Шабуылшы басты бетті ауыстырса — keyword табылмайды, алерт кетеді.
- Feature-flag SLO. Бетте
Feature: enabledсияқты маркер бар. Feature flag сынғанда және бет маркерсіз200қайтарғанда — мониторинг регрессияны ұстайды. 200-де шаблонды бақылау. Кэш ескірген HTML берді, фронтенд сынды, бірақ статус әлі 200 — күтілетін блоктағы keyword (пайдаланушы аты, нав-меню, нақты тақырып) бірден бір нәрсе дұрыс емес екенін айтады.- Status page. Жұртшылыққа арналған status-page-те «All systems operational» сияқты сөз тіркесі болады. Осы тіркес бойынша keyword-check оны «бәрі дұрыс па» мониторына айналдырады.
- Деплой нұсқасының маркері. Footer-де немесе meta-тегте нұсқа нөмірі (
v1.42.0). Деплой өтпей кетсе — нұсқа жаңартылмаса — алерт.
Қалай баптау керек
URL өңдеу формасында «Keyword» өрісін толтырыңыз. 255 таңбаға дейін кез келген подстрингті енгізуге болады: фраза, HTML-разметка фрагменті, footer-дан мәтін, CSS класының аты — күтілетін бетте міндетті түрде кездесетін кез келген нәрсе.
API арқылы:
curl -X POST https://tracker.ru/api/v1/urls \
-H "Authorization: Bearer <api_token>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/status",
"monitor_type": "http",
"period": 60,
"expected_keyword": "All systems operational"
}'
Ұзындық лимиті — 255 таңба. Бұл ерекше фрагмент үшін жеткілікті; бүкіл HTML-ды өріске тықпаңыз — фронтендіңіз жұмыс істеп тұрған нұсқада көрсетуге кепілдік беретін минималды-жеткілікті подстрингті сақтаңыз.
Іске қосылу логикасы
Түйін сөз берілген әрбір HTTP-тексеру схема бойынша өңделеді:
- Чекер HTTP-сұрау жасайды.
- Жауапты алады, денесін оқиды (төмендегі шектеулерді ескере отырып).
- Денеде подстрингті іздейді — case-insensitive substring match.
- Подстринг табылмаса — тексеру «Түйін сөз табылмады» себебімен сәтсіз деп белгіленеді. URL
downкүйіне ауысады, ал тексерудің өзі uptime пен Apdex-ті төмендетеді және статус-бетте көрінеді. - Подстринг қайта пайда болғанда — URL қалпына келеді, қалпына келу хабарламасы жіберіледі.
Тексерулер журналында мұндай тексерудің астында Expected keyword not found: <сіздің сөзіңіз> қате мәтіні шығады — осы жол арқылы URL жауап коды бойынша емес, сөз жоғалғандықтан құлағанын көруге болады.
Техникалық нюанстар
- HEAD → GET автоматты ауысу. Әдепкі бойынша Tracker.ru
HEADHTTP-әдісін қолданады — ол тексерілетін сайт үшін жылдамырақ және арзанырақ. Бірақ HEAD-жауапта body жоқ, онда keyword іздейтін ештеңе жоқ. Сондықтан түйін сөз берілсе, чекер әдісті автоматты түрдеGET-ке ауыстырады. Пайдаланушы жағында ешқандай баптау қажет емес. Формада HEAD айқын таңдалса — ол еленбейді және осы URL үшін GET-пен ауыстырылады. - Case-insensitive. Іздеу регистрге сезімтал емес. Екі жағы — keyword пен жауап денесі — салыстыру алдында кіші регистрге келтіріледі. Яғни
Operational,operational,OPERATIONAL— бір нәрсе. Ыңғайлы: тақырып регистрін кездейсоқ ауыстырғанда сынбайды. - Plain substring, regex емес. Өрістің мәні — қарапайым жол. Метасимволдар, топтар, якорлар жоқ. Подстрингтің әріпті көрінісі ізделеді. Regex қажет болса — keyword-check сізге сай емес, кастом webhook-чекерлерге не health-эндпоинтке қараңыз.
- Body 1 MB лимиті. Чекер жауаптың тек алғашқы мегабайтын оқиды. Keyword іздеу осы мегабайтта ғана жүреді. HTML-ыңыз 1 MB-тан үлкен болса — күтілетін сөзді бет басына жақын қойыңыз (
<head>-те немесе<body>-дан кейін бірден), әйтпесе ол лимиттен тыс болып, URL үнемі жалған «түйін сөз табылмады» алертін береді. Іс жүзінде 1 MB — бір бет үшін өте көп, мәселе сирек туындайды. - UTF-8. Кириллица, қытайдың иероглифтері, эмоджи keyword-те қолдау табады — салыстырылатын екі байт ағыны UTF-8 жолы ретінде өңделеді. Keyword ұзындығының лимиті таңбамен өлшенеді (көп байттық таңбаларды қоса), байтпен емес. Көптеген практикалық сценарийлер үшін 255 таңба жеткілікті.
- TCP-мониторингпен үйлесімділік. «Keyword» өрісі тек HTTP-мониторлар үшін қолжетімді. TCP-чектер үшін еленбейді — TCP-да body жоқ, іздейтін жер жоқ. Толығырақ — /docs/features/tcp-monitoring?lang=kk.
Хабарламалар
Keyword жоғалғанда таңдалған арналарға себебін айқын көрсететін хабарлама кетеді — ол әдеттегі «status 5xx» алертінен ерекшеленеді. Хабарламалар интерфейс тіліне қарамастан орыс тілінде жіберіледі; Telegram-дағы хабарлама осылай көрінеді (аударма):
🚨Қателік! https://example.com/status
Қателік: Түйін сөз табылмады
Қолжетімсіз 2026-05-01 19:15:09 бастап
url.down оқиғасының webhook-payload-ында error_type өрісі keyword_not_found мәнін қабылдайды — бұл инцидент-flow-ды бөлуге ыңғайлы: keyword-құлаулар көбіне 5xx-тен басқа реакция түрін талап етеді (мысалы, SRE емес, фронтенд командасын шақыру).
Қалпына келгенде (keyword жауапқа қайтып келгенде) downtime ұзақтығын көрсететін әдеттегі recovery-хабарлама келеді.
Байланысты мақалалар
- /docs/features/tcp-monitoring?lang=kk — HTTP-сіз порттар үшін TCP-мониторинг.
- /docs/features/maintenance-windows?lang=kk — қызмет көрсету терезелері: жоспарлы ТҚ кезінде keyword-алерттерін тыныштандыру.
- /docs/notifications/telegram?lang=kk — Telegram хабарламаларын баптау.
- /docs/notifications/webhooks?lang=kk — HMAC-SHA256 қолтаңбасымен webhook.