Начните с ленты событий в карточке проверки. По ней видно, приходили ли пинги и какие алерты ушли.
Почему проверка висит в статусе «новый»?
Статус «новый» значит, что от задачи ещё не пришло ни одного пинга. Steadrun при этом уже ждёт её по расписанию. Когда срок выйдет, проверка перейдёт в «не отвечает» и придёт алерт.
Если задача должна была уже отработать, значит, пинг до Steadrun не дошёл. Что проверить, описано в следующем разделе.
Почему пинг не доходит до Steadrun?
Сначала отправьте пинг вручную с того же сервера, где работает задача:
curl -fsS -m 10 https://steadrun.ru/ping/ВАШ-UUID
Если команда завершилась без вывода, пинг дошёл. Обновите карточку проверки, в ленте событий он появится.
Если curl вернул ошибку:
- 404 — опечатка в UUID или проверку удалили. Скопируйте адрес из карточки заново;
- ошибка соединения или таймаут — сервер не может выйти в интернет по порту 443. Проверьте файрвол,
прокси и DNS:
curl -v https://steadrun.ruпокажет, на каком шаге всё останавливается; - 429 — больше 120 пингов в минуту на одну проверку. Скорее всего, пинг попал внутрь цикла.
Если вручную пинг доходит, а из cron нет, дело в самом cron:
- запускается ли cron вообще:
systemctl status cron(на CentOS и AlmaLinux сервис называетсяcrond); - есть ли строка в crontab нужного пользователя:
crontab -l. Задачи из crontab пользователяrootне видны вcrontab -lуdeploy, и наоборот; - у cron свой короткий
PATH, иcurlможет не найтись. Укажите полный путь, его покажетwhich curl; - в команде есть
%. В crontab он означает перевод строки, его нужно экранировать:\%; - пинг стоит после
&&, а задача завершается с ошибкой. Тогда пинга не будет, и это правильно: Steadrun сообщит о сбое. Посмотрите, почему падает задача.
Вывод задачи и ошибки cron обычно видны в journalctl -u cron (или -u crond) и в /var/log/syslog.
Почему приходят алерты, хотя задача работает?
Самые частые причины:
- Часовой пояс. В проверке указан один часовой пояс, а cron на сервере работает в другом. Тогда
Steadrun ждёт пинг не в то время. Сравните вывод
dateна сервере с часовым поясом в карточке проверки. - Grace-период меньше времени работы задачи. Пинг отправляется в конце, и если задача идёт дольше запаса, алерт приходит раньше пинга. Посмотрите время выполнения в ленте событий или p95 в карточке и поставьте grace-период больше.
- Расписание в проверке отличается от crontab. Например, в crontab
*/10, а в проверке*/5. - Пинг не дошёл из-за сети. Добавьте к curl
--retry 3, тогда короткий сбой сети не даст ложного алерта. - Две задачи пингуют одну проверку, и одна из них сломалась. Заводите на каждую задачу свою проверку.
Подробнее о том, как Steadrun считает срок, написано на странице «Как это работает».
Почему алерт не пришёл в Telegram?
Проверьте по порядку:
- В профиле, в блоке «Каналы алертов», у Telegram стоит «Привязан». Если нет, привяжите заново.
- Вы не заблокировали бота @steadrun_bot и не удалили чат с ним. Если удалили, в профиле нажмите «Отвязать», а потом «Привязать Telegram».
- Если Вы участник команды, на странице «Команда» у Вас включены алерты.
- Проверка не стоит на паузе.
- Проверка действительно упала. Алерт приходит только при смене статуса на «не отвечает» и потом раз в час как напоминание. Пока проверка лежит, новых алертов о падении нет.
Если всё в порядке, а алерта нет, посмотрите ленту событий в карточке. Там видно, через какие каналы ушли алерты.
Почему письма с алертами попадают в спам?
Почтовые сервисы иногда отправляют в спам письма с незнакомых адресов. Добавьте noreply@steadrun.ru в
контакты и отметьте письмо как «Не спам». Подробнее в разделе об алертах.
Почему HTTP-проверка падает, а сайт открывается?
Сначала посмотрите причину в алерте или в ленте событий. Обычно это одно из следующего:
- Защита от ботов или файрвол отвечает Steadrun кодом 403 или страницей с капчей. Разрешите запросы с
User-Agent
Steadrun-Monitor/1.0, подробности на странице /bot. - Другой код ответа. Steadrun проходит редиректы и сравнивает код конечной страницы. Если главная перенаправляет на страницу входа, а та отвечает 401, укажите в проверке адрес, который отвечает 200.
- Ключевое слово не найдено. Регистр букв важен, а текст должен быть в HTML страницы. Если его рисует JavaScript в браузере, Steadrun его не увидит.
- Сайт отвечает дольше 10 секунд или страница больше 2 МБ, а в проверке задано ключевое слово.
- Сайт открыт только для определённых IP, например для офиса. Запросы Steadrun до него не дойдут.
Почему пришёл SSL-алерт, хотя в браузере всё в порядке?
Частая причина — неполная цепочка сертификатов. Браузер умеет сам докачать промежуточный сертификат, а Steadrun, как и многие программы, проверяет то, что отдаёт сервер. Проверить можно так:
openssl s_client -connect example.com:443 -servername example.com < /dev/null
Если в выводе есть unable to get local issuer certificate, добавьте промежуточный сертификат в настройки
веб-сервера. Обычно это файл fullchain.pem вместо cert.pem.
Ещё одна причина — сертификат скоро истекает. Алерт приходит заранее, за столько дней, сколько указано в проверке, хотя сейчас сертификат ещё действует. Причина будет в тексте алерта.
Почему не пришло сообщение о восстановлении?
«Восстановлен» приходит после первого успешного пинга или успешной проверки сайта. Если задачу починили, но ещё не запускали, сообщения не будет до её следующего запуска. Чтобы не ждать, запустите задачу вручную или отправьте пинг командой curl.
Если ничего не помогло
Напишите на support@steadrun.ru. Укажите название проверки и что Вы уже попробовали, так мы разберёмся быстрее.