Настроить логирование и сбор логов (DEVOPS)
40 000 руб. за проект
Задача, которую надо решить, следующая. У нас есть N сервисов, они пишут логи. У этих сервисов есть инфраструктурная обвязка, она тоже пишет логи.
Нам нужно получить решение, которое позволит оперативно:
- узнавать о том, что в логах есть критичные события заданной severity (ошибки, варнинги)
- узнавать о том, в каком контексте произошли события, в каких сервисах и на каком окружении
- получать в явном виде детали из логов разных сервисов в одном timespan, с деталями в логах (собственно, сами детали)
Парк сервисов это:
- веб-приложения под docker, логи в stdout/stderr контейнера и в файлах логов приложения внутри контейнера
- инфраструктурные: nginx, fpm, fcgi и проч, которые пишут логи на хост-машины
Что сейчас есть :
- grafana и ряд exporters, которые собирают количественные метрики, включая rate ошибок по логам
- loki и loki datasource в графану, который собирает ряд логов (не все) в их стандартном формате, format-парсер в datasource и теги в логах не развешаны
- если loki покажется мало, можно взять альтернативы (sentry например), и завести в него детализацию - метрики ошибок сервисов в графане в каком-то приближении уже есть
Надо :
- собрать решение, которое явно в едином месте (напр.grafana или sentry web) позволит оперативно посмотреть детали логов в реальном времени
- завести в него все логи с деталями по цепочке обработки запроса веб-сервисами; напомню, какие-то логи заведены, а какие-то возможно придется переопределить для приложений, чтобы писалось в удобное предсказуемое место
- убедиться, что в решении явно собираются и читаются severity (что ошибка это ошибка), инстанс, окружение итп
Взаимодействовать с разработкой и опсятней придется: какие-то логи в неочевидных местах (обычно /var/log но возможны нюансики), какие-то имеет смысл пробросить из контейнера на хост (маунтом), каких-то вообще нет или пишутся в stdout (fpm) - это придется спросить, для каких-то логов поменять или продублировать формат, чтобы собиралка их читала.
Если что, есть кастомная сборка nginx 1.25 вместе с luajit, которая позволяет делать с логами nginx вообще что угодно (включая сквозной requestId и переменные окружения), развернута на dev. Но скорее всего и без нее можно обойтись, чисто форматами.
Нам нужно получить решение, которое позволит оперативно:
- узнавать о том, что в логах есть критичные события заданной severity (ошибки, варнинги)
- узнавать о том, в каком контексте произошли события, в каких сервисах и на каком окружении
- получать в явном виде детали из логов разных сервисов в одном timespan, с деталями в логах (собственно, сами детали)
Парк сервисов это:
- веб-приложения под docker, логи в stdout/stderr контейнера и в файлах логов приложения внутри контейнера
- инфраструктурные: nginx, fpm, fcgi и проч, которые пишут логи на хост-машины
Что сейчас есть :
- grafana и ряд exporters, которые собирают количественные метрики, включая rate ошибок по логам
- loki и loki datasource в графану, который собирает ряд логов (не все) в их стандартном формате, format-парсер в datasource и теги в логах не развешаны
- если loki покажется мало, можно взять альтернативы (sentry например), и завести в него детализацию - метрики ошибок сервисов в графане в каком-то приближении уже есть
Надо :
- собрать решение, которое явно в едином месте (напр.grafana или sentry web) позволит оперативно посмотреть детали логов в реальном времени
- завести в него все логи с деталями по цепочке обработки запроса веб-сервисами; напомню, какие-то логи заведены, а какие-то возможно придется переопределить для приложений, чтобы писалось в удобное предсказуемое место
- убедиться, что в решении явно собираются и читаются severity (что ошибка это ошибка), инстанс, окружение итп
Взаимодействовать с разработкой и опсятней придется: какие-то логи в неочевидных местах (обычно /var/log но возможны нюансики), какие-то имеет смысл пробросить из контейнера на хост (маунтом), каких-то вообще нет или пишутся в stdout (fpm) - это придется спросить, для каких-то логов поменять или продублировать формат, чтобы собиралка их читала.
Если что, есть кастомная сборка nginx 1.25 вместе с luajit, которая позволяет делать с логами nginx вообще что угодно (включая сквозной requestId и переменные окружения), развернута на dev. Но скорее всего и без нее можно обойтись, чисто форматами.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.