Метка: мониторинг

  • Sentry для отлова ошибок

    Sentry для отлова ошибок

    Пользователи жалуются, что на сайте возникает ошибка. У разработчика “всё работает”. В команде разработки никто ошибку не может воспроизвести ни на одном устройстве. Бывает, что в логах нет ничего, потому что ошибка произошла на фронте. Или записи не информативны. А пользователи продолжают жаловаться…

    Чтобы разбираться с этими случаями, в нашей веб-студии мы подключаем к проектам Sentry. Это мониторинг ошибок и производительности приложения. В отличие от обычных логов, Sentry показывает гораздо больше информации об ошибке:
    – новая ли это ошибка
    – сколько таких ошибок возникло за последние дни
    – весь стек вызова
    – чему были равны переменные окружения
    – какие библиотеки были подключены
    – какой браузер и устройство у пользователя
    – информацию о пользователе
    – содержимое запроса
    – что делал пользователь до ошибки
    – версию, релиз и коммит

    Это всё позволяет очень быстро найти реальную причину возникшей проблемы.

    Мы подключаем Sentry на фронт, это также просто, как установка обычного счётчика или npm-пакета. И подключаем отдельно на бэк — Sentry умеет интегрироваться с любым языком и фреймворком за счёт готовых SDK.

    Раньше мы пользовались SaaS-версией, но некоторое время назад всех РФ-пользователей попросили завершить обслуживание. Так что, я развернул бесплатную self-hosted версию на своей VDS. Система прожорливая, Docker Compose запускает три десятка контейнеров, поэтому требуется достаточно мощный сервер. Такой сервер у нас выходит на 4000 рублей в месяц, зато обслуживает десятки небольших проектов.

    Sentry — инструмент для быстрого поиска ошибок разработчиками. Не заменяет потоки логов и мониторинг инфраструктуры. Рекомендую всем, кому нужно ловить баги в продакшине.

  • Как агентству зарабатывать дополнительные деньги

    Как агентству зарабатывать дополнительные деньги

    Агентство выбирает и подключает в проекты клиента множество сервисов:
    – Хостинг и домены
    – Эквайринг
    – CRM или складские системы
    – Телефонию
    – Колл-трекинг и сквозная аналитика
    – E-mail-рассылки
    – SMS-рассылки
    – Мониторинг сайта
    – Пополнение рекламных кабинетов

    Агентство всё равно будет подключать все эти сервисы во время работы, поэтому стоит найти у сервиса партнёрскую программу и заключить договор. Клиенту нужно прямо и честно сказать о наличии статуса партнёра. Это только укрепит доверие к агентству.

    Клиенту выгодно прислушаться к агентству:
    – именно с этим сервисом сотрудники агентства умеют работать, а значит будет меньше ошибок и быстрее работа
    – партнёрская программа зачастую даст выделенную техническую поддержку, а значит более внимательное отношение и решение проблем
    – возможно, что будут дополнительные бонусы, специальные предложения или особые тарифы
    – партнёрская комиссия уже заложена в бизнес-модели сервиса, а значит цена для клиента не изменится
    – агентство больше любит и ценит клиентов, подключающихся через него к сервисам

    Все станут богаче, если клиенты будут подключать все сервисы через агентство.

  • Расходы на хостинг Open Source приложений на опыте веб-студии

    Расходы на хостинг Open Source приложений на опыте веб-студии

    В посте с таблицей Open Source решений не указано, сколько стоит их содержать. Рассказываю о своём опыте.

    Минимальный тариф на VDS будет стоить примерно 300 рублей в месяц. Этого хватит, чтобы развернуть и использовать большинство приложений из таблицы.
    Хостинг для тяжеловесного мониторинга ошибок Sentry стоит мне около 4000 рублей в месяц — это пока рекорд. Gitlab CE на всю команду выходит 1700 рублей.

    Если размещаем много приложений, не обязательно брать под каждое новый VDS. У меня есть сервер с установленным Portainer (удобная альтернатива Kubernetes), который позволяет просто запускать множество приложений. Я плачу за него 1500 рублей, а на нём работают 14 контейнеров с n8n, zammad и чат-ботами. Подозреваю, что там ещё что-то поместится.
    Современные виртуальные серверы позволяют увеличивать мощность и место на сервере постепенно, по мере потребности.

    Open source инфраструктура для современной веб-студии до 50 человек обходится примерно в 10 тысяч рублей в месяц.
    Если у вас свой офис, то можно все эти приложения развернуть на своём сервере и не платить за аренду VDS.

    Чтобы обслуживать серверы и устанавливать приложения, будут нужны услуги системного администратора. Задачи с разворачиванием приложений — базовые и не требуют повышенной квалификации. Можно взять исполнителя на сдельную работу, штатный сисадмин для этого скорее всего не нужен.

  • Безопасность веб-сервера

    Безопасность веб-сервера

    Безопасность сайта начинается с уменьшения площади возможной атаки.

    Чеклист, который выработал и применяю у себя:
    – IP-адрес реального сервера никогда не был прописан в DNS домена. В DNS попадает proxy или балансер — от Cloudflare, Fortes, Qrator или вашего другого сервера.
    – Отключена возможность зайти под root пользователем. Вначале сделали нового пользователя, дали ему sudo-права, потом запретили вход из-под root.
    – SSH-логин возможен только по ключу, пароли отключены совсем.
    – SSH работает на нестандартном порте — 22-й слишком очевиден, меняем.
    – Стоит и настроен firewall. Закрыты все порты, кроме нужных: 80 и 443 для сайта, порт для SSH, порт под метрики для мониторинга. Мой выбор ufw, его вполне хватает всё перекрыть.
    – Установлен fail2ban — чтобы не донимали сервер брутфорсом.
    – Операционная система и системные программы периодически обновляются.
    – На сервере отключена возможность отправки почты. Совсем. Если взломают — сервер не станет рассадником спама и не нужно будет его IP вычищать из блеклистов. Вся почта отправляется через внешний SMTP.
    – Не ставим или удаляем FTP — протокол устаревший и через него часто ломают серверы.
    – Во всех папках для загрузки файлов через сайт стоит запрет на выполнение кода. В nginx и apache прописывается запрет. WordPress и Битрикс чаще всего ломают именно так — заливают исполняемый PHP-файл в загрузки и запускают по прямой ссылке.
    – PHP позволяет запретить вызов некоторых функций. Вам точно нужен eval()?
    – В идеале — код движка размещён выше корня веб-сервера. Так сделано во всех “взрослых” фреймворках. WP и Битрикс требуют ухищрений, но тоже можно кое-что сделать.
    – Движок обновлён до свежей версии. Тут у клиентов зачастую беда, потому что поддержкой не занимаются.
    – Код сайта в git. Всегда можно посмотреть и откатить любые заражения за одну минуту. git reset --hard и всё почистили.
    – Минимум раз в сутки делается бэкап базы данных и загруженных файлов.
    – На сервере установлены и периодически запускаются руткит-сканеры.

    Это базовые действия. Опытные сисадмины добавят ещё пару десятков пунктов.
    У меня большая часть этих действий происходит автоматически, потому что прописана в ansible-плейбуке. Но и руками делается тоже быстро.

    А что я забыл и вы бы добавили в этот чеклист?

  • Self-hosted

    Много раз за последние три года блокировали разные сервисы. То сами сервисы, то доступ к ним, то оплату, то поддержку. Самая странная блокировка – запрет принимать участие в приватных репозиториях на GitHub.

    Мы пошли другим путем: находим продукты с открытым кодом и ставим на свой сервер вместо платного SaaS.

    Что мы используем в работе:
    Gitlab CE – репозитории на нашем сервере. Переезжали с Bitbucket. Используем активно CI/CD.

    Sentry – сборщик логов с запущенных приложений. Очень полезный сервис – мы видим ошибки у реальных пользователей, сгрупированные по типу и с полным стеком вызова (браузер, устройство, окружение). Система прожорливая – ест CPU и RAM.

    Grafana – Конструктор дашбордов с графиками. Мы используем для мониторинга серверов (БД Prometheus в качестве источника). Видел у коллег дашборды с продуктовыми метриками, но у нас до этого руки пока не дошли.

    Plausible – простая веб-аналитика. Достаточно, чтобы изучить посещаемость лендинга или корп сайта, посмотреть источники и конверсии.

    PostHog – мощная аналитика. Расстановка своих событий (как в метрике и ga), воронки, срезы, полная информация о визитах, возвратах и т.д. Под капотом Clickhouse, Kafka и все 33 удовольствия для работы. Как и Sentry, очень прожорливая система.

    Ollgram – tg-боты для поддержки. Очень удобно – делаем бота, указываем его контакты в канал. Бот пересылает сообщения пользователей в секретную группу, а мы общаемся от имени бота. Не связано с CRM, но для получения обратной связи или старта – то что нужно. Код open source – поставили к себе.

    Сейчас присматриваюсь к новым кандидатам
    Affine для документации вместо Miro и Notion
    Zammad – автоматизация службы поддержки. Helpdesk вместо ZenDesk/CarrotQuest
    Twenty в качестве CRM

    Мы пока не смогли заменить трекер задач с учетом времени. Попробовал Taiga (вроде все ок, но не гибко, не хватает фич). Многообещающий Plane перекосило в урезание функционала бесплатной версии. Концептуально понравился LeanTime.

    А пользуетесь ли вы self-hosted и чем?