TCP-мониторинг — бұл HTTP-сұрау орнына нақты порттың TCP арқылы қолжетімділігін тексеру. Tracker.ru көрсетілген host:port жұбына TCP қосылу ашады және handshake сәтті өткенін тіркейді. Қосылым орнатылмаса — порт жабық, сервис тыңдамайды немесе желі қолжетімсіз — URL down күйіне ауысады, хабарламалар жіберіледі.
HTTP-мониторингтен айырмашылығы — мұнда статус-код те, жауап денесі де жоқ: біз «қосылым өтті / өтпеді» деген екілік жауап аламыз. Бұл фондық мәліметтер базасы, хабар кезегі немесе SMTP-сервері шынында да кіретін қосылымдарды қабылдайтынын растаудың ең тікелей тәсілі.
TCP-ні HTTP орнына қашан таңдау керек
TCP-мониторинг HTTP-тексеру не артық, не мүлдем жұмыс істемейтін есептер класын жабады:
- Дерекқор HTTP бермейді. MySQL — 3306-да, PostgreSQL — 5432-де, Redis — 6379-да, MongoDB — 27017-де. Олардың өздерінің бинарлы протоколдары бар. Бұл порттарға HTTP-чек әрқашан қате қайтарады, TCP-чек шындықты айтады.
- Кезектер мен брокерлер. RabbitMQ (5672), NATS (4222) — сол ой. Health-чек брокердің портты тыңдап тұрғанын растауы керек.
- gRPC және кастом TCP-сервистер. TCP үстіндегі кез келген бинарлы протокол дәл осылай тексеріледі, HTTP-жауапты талдаусыз.
- Пошта сервистері. SMTP (25, 587), IMAP (993), POP3 (995) — TCP-чек пошта серверінің көтеріліп, тиісті портты тыңдап тұрғанын растайды.
- Басқару порттарының қолжетімділігі. SSH (22), FTP (21), DNS (53). Әсіресе көшіру, firewall жаңарту немесе бұлттағы инстанстарды ауыстырғаннан кейін пайдалы.
- Шеткі сценарий: HTTPS пен SSH қатарлас. Бір сервер веб-ті де (443), SSH-ты да (22) қызмет ететін болса, 22-ге TCP-чек — сайт әлі жауап беріп тұрғанда админдік қолжетімділіктің жоғалғанын байқаудың жалғыз жолы.
Жұртшылыққа арналған веб-сайт немесе REST API туралы сөз болса — HTTP-мониторингте қалыңыз: ол көп ақпарат береді (status, headers, body-дегі keyword, скриншот).
Қолдау көрсетілетін порттар
UI және API-да Url::TCP_PRESETS ішіндегі 16 пресет қолдау көрсетіледі — TCP-бақылау нақты мағынаға ие ең жиі кездесетін порттар. Олардың кез келгенін бір шертумен таңдауға болады, не 1-ден 65535-ке дейінгі еркін нөмірді енгізуге болады.
| Порт | Сервис |
|---|---|
| 21 | FTP |
| 22 | SSH |
| 25 | SMTP |
| 53 | DNS |
| 80 | HTTP |
| 443 | HTTPS |
| 587 | SMTP (TLS) |
| 993 | IMAP (SSL) |
| 995 | POP3 (SSL) |
| 3306 | MySQL |
| 4222 | NATS |
| 5432 | PostgreSQL |
| 5672 | RabbitMQ |
| 6379 | Redis |
| 8080 | HTTP Alt |
| 27017 | MongoDB |
80, 443, 8080 порттары тізімде әдейі тұр: кейде толыққанды HTTP-сұраусыз тек TCP-чек қажет (мысалы, рестарттан кейін nginx 443-ті тыңдап тұрғанын тексеру).
Қалай баптау керек
Жеке кабинетте «URL қосу» басып, мониторинг түрін TCP-ға ауыстырыңыз. Формада host пен port өрістері пайда болады — hostname-ді протоколсыз (db.example.com) және портты енгізіңіз. Тексеру кезеңі мен хабарлама арналары HTTP сияқты бапталады.
API арқылы:
curl -X POST https://tracker.ru/api/v1/urls \
-H "Authorization: Bearer <api_token>" \
-H "Content-Type: application/json" \
-d '{
"url": "db.example.com",
"monitor_type": "tcp",
"port": 3306,
"period": 60,
"notify_telegram": true
}'
TCP-мониторлар үшін port өрісі міндетті (required|integer|min:1|max:65535); protocol өрісі — міндетті емес. http_method және expected_keyword өрістері TCP типі үшін еленбейді, оларды null ретінде беруге не түсіріп тастауға болады.
Тариф лимиттері HTTP-мониторингтегідей жұмыс істейді: TCP-чек әдеттегі URL ретінде есептеледі және тарифтің max_urls лимитін жұмсайды. Минималды кезеңді тариф анықтайды.
Не тексеріледі
Чекер TCP-қосылым ашады және handshake аяқталуын күтеді. Үш ықтимал нәтиже бар:
- OK — handshake өтті, қосылым орнатылды. URL
upкүйінде. tcp_refused— порт жабық (RSTнемесеconnection refusedалынды). Көбіне сервис құлағанын немесе портты тыңдамайтынын білдіреді.timeout— handshake таймаутқа сыймады (әдепкі бойынша 60 секунд,custom_timeoutарқылы реттеуге болады). Желілік блоктау, маршруттау мәселесі немесе қатты жүктелген сервер.host_not_found— DNS hostname-ді шеше алмады. Қате жазу, жойылған DNS-жазба немесе резолвер мәселесі.
Бұл кодтардың әрқайсысы check_log.error_status-қа түседі және хабарламаларды құрастыруда және URL журналында қолданылады.
HTTP-тен айырмашылығы
TCP-мониторинг HTTP-тен әдейі қарапайым. TCP типі үшін қол жетпейтін:
- HTTP-статус жоқ. Хабарламада «Status: 500» орнына TCP-қателіктің себебі көрсетіледі (
tcp_refused,timeout,host_not_found). - Body жоқ. Сәйкесінше, keyword тексеру жоқ —
expected_keywordөрісі TCP үшін еленбейді. - Скриншоттар жоқ. Скриншотты chromedp HTTP-URL бойынша жасайды, TCP-сервистің рендерленетін «беті» жоқ.
- SSL-валидация жоқ. TCP handshake TLS-сертификатты ашпайды. SSL тексерулері (мерзімі, тізбектің жарамдылығы) тек HTTP/HTTPS-чектер үшін автоматты түрде орындалады. MySQL/Postgres сертификатын бақылау керек болса — сол сервердің ашық API-ы бойынша жеке HTTPS-мониторды қосыңыз.
Орнына TCP-чек:
- Жылдамырақ. HTTP жіберусіз және парсингсіз бір SYN/SYN-ACK/ACK.
- Стандартты емес протоколдар үшін сенімдірек. Жауапты түсіндіруге тырыспайды — «HTTP емес» payload себебінен жалған сигнал болмайды.
- Сервис үшін арзанырақ. Тексерілетін серверге толыққанды HTTP-сұрауға қарағанда жүктеме аз.
Хабарламалар
TCP-мониторлар HTTP-пен бірдей арналар мен үлгілерді қолданады: Telegram, MAX, Email, Webhook. Алерт пішімі TCP ерекшелігін есептейді — хабарламада HTTP-кодтың орнына TCP-қателік коды мен мәтіндік сипаттамасы басылады:
Сайт қолжетімсіз! db.example.com:3306
Қателік: TCP connection refused
Қолжетімсіз 2026-05-01 19:15:09 бастап
Webhook-payload-да error_status өрісі tcp_refused, timeout, host_not_found мәндерін қабылдайды — бұл оркестрация жүйелерінде (PagerDuty, Opsgenie) алерттерді бағыттауға ыңғайлы. Қызмет көрсету терезелері және қалпына келу хабарламалары HTTP-мониторингтегідей жұмыс істейді.
Байланысты мақалалар
- /docs/features/keyword-check?lang=kk — HTTP-мониторлар үшін HTML-жауапта түйін сөзді тексеру.
- /docs/features/maintenance-windows?lang=kk — қызмет көрсету терезелері: жоспарлы ТҚ кезінде алерттерді тыныштандыру.
- /docs/notifications/telegram?lang=kk — Telegram хабарламаларын баптау.
- /docs/notifications/webhooks?lang=kk — HMAC-SHA256 қолтаңбасымен webhook.