логи в докере

grigori

( ͡° ͜ʖ ͡°)
Команда форума
привет, как вы работаете с логами в докере?
вариантов достаточно много, и решения встречаются самые чудные
для dev, понятно, выводим в stdout - они красиво бегут в docker logs, а в проде?
каждый контейнер пишет свои логи, и надо их, как минимум, ротейтить, а можно даже аггрегировать
  • писать в файлы в shared folder, и все эти shared folder собраны в одном контейнере, в нем бегает log rotate - в целом, нормально, но получается spof, если все контейнеры зависят от одного
  • syslog в отдельном контейнере - сложнее посмотреть в логи
  • читал на хабре про аггрегацию в nosql+эластик - imho, писец котенку трахаться при изменениях форматов логов
  • оставить в stdout, только не помню что будет когда логов много
 

WMix

герр M:)ller
Партнер клуба
Монтирую папку и ничего не ротирую. Просто зипую раз на день. По надобности удаляю
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Просто сырые логи в шаред папки с ротацией. Какие-то полезные метрики льем в CloudWatch. Раньше еще в роллбар слали, сейчас забили.
 

fixxxer

К.О.
Партнер клуба
Мне как у Флоппика норм, но если вдруг станет логов очень много для сырых папок (так что ротацию придется делать достаточно часто, и уже возможно будет потерять важное), посмотрю в сторону ELK (https://logz.io/blog/docker-logging/) или подобного.

Еще в sentry шлю, но это уже на уровне приложений.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@флоппик, а ротацию кто у тебя делает - логротейт из базовой оси, или в отдельном контейнере?

ничего не ротирую. Просто зипую раз на день. По надобности удаляю
- ты рыбу ловишь?
- нет, я рыбу ловлю
- а, я-то думал, ты рыбу ловишь

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

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@fixxxer, держать Elasticsearch для логов - это прекрасно. Обязательно в 3х экземплярах для хотсвопа. Только непонятно как сами логи потом забрать себе локально для почитать.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
@флоппик, а ротацию кто у тебя делает - логротейт из базовой оси, или в отдельном контейнере?
Вообще из базовой оси, но это не осознанное решение, «так сложилось исторически» и теперь я задумываюсь, может и правда в контейнере надо?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Вообще из базовой оси, но это не осознанное решение, «так сложилось исторически» и теперь я задумываюсь, может и правда в контейнере надо?
если из внешней оси - немного теряется смысл контейнеров, так просто уже не развернуться, не переехать, одной командой кластер не поднять
 
  • Like
Реакции: Koc

grigori

( ͡° ͜ʖ ͡°)
Команда форума
и могу отредактировать вопрос чтоб он иначе звучал, и стереть инфу о том что редактировал, но выпендриться так, что аж самому приятно.
это кто-то балуется с правами модератора, редактирует чужие посты, или взломали чей-то акк?
 

fixxxer

К.О.
Партнер клуба
Только непонятно как сами логи потом забрать себе локально для почитать.
Про ELK я задумаюсь к тому моменту, когда "забрать локально почитать" будет нереально из-за объема этих самых логов. А до этого плейн текст ок.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@fixxxer, для меня это на уровне извращения в стиле моды на монго, сислог - промышленный стандарт для больших потоков
у сислога жестко с размером записи - до 32 кб, но запись в лог и не должна быть большой
 

fixxxer

К.О.
Партнер клуба
в стиле моды на монго
или в стиле моды на докер :D

что в сислог слать это понятно
вопрос что с ним делать дальше, если плейн текст уже не катит из-за объемов

правда, тут еще надо ответить на вопрос, зачем нужны логи (помимо очевидного)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
говоря предметно, вариантов довольно много
https://docs.docker.com/engine/admin/logging/overview/
и на фоне кучи специализированных профессиональных решений, ELK из эластика и палок выглядит ламерской придурью

разбираться с каким-нибудь graylog или syslog не хочу, а journald по отзывам в CentOS 7 еще сыроват (ситуацию с убунтой не изучал)

похоже, надо настроить json-file для каждого контейнера в отдельности, а в перспективе переходить на journald
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
зачем нужны логи: чтобы видеть что происходит в системе, и отследить ошибки, когда они возникают
 

fixxxer

К.О.
Партнер клуба
Вот да. :)

То есть, собственно, вопрос, как строятся метрики. Ну, то есть, понятно, что метрики строятся по событиям. Вопрос в том, являются ли записи в лог (хотя бы некоторые) событиями, или это две разные, независимые подсистемы.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
прямо щас мне метрики не нужны - их мне строит линода
 

флоппик

promotor fidei
Команда форума
Партнер клуба
прямо щас мне метрики не нужны - их мне строит линода
В смысле не по железу метрики же. Сырые логи перебирать во время уже случившихся проблем — это очень грустно, болезненно, и неэффективно.
 
Сверху