🏳️ Phil
А не
Magistr
но зачем в контейнере
а почему бы и нет ?
Anonymous
А как логировать в контейнере?
есть драйверы логов в самом докере, так что можно писать в stdout
Magistr
либо учить приложение писать в логшиппер
🏳️ Phil
Рестарт сислога на хосте сломает все
Ты меня заставил задуматься. Я хотел так mysql.soсk раскидывать
Anonymous
либо учить приложение писать в логшиппер
пусть пишет в stdout, докер сам отправит
Anonymous
либо писать логи на диск, внешний logrotate
Anonymous
а у вас log level не в самой строке лога?
Anonymous
ну есть много вариантов, можно просто смонтировать диск и пусть пишет туда
Roman
Если держать там сислог
Anonymous
а не надо держать там сислог
Anonymous
у нас, например, пишет на диск, оттуда другой контейнер делает logrotate и отправляет в S3
Anonymous
дальше мы разбираемся уже оттуда
Anonymous
насчет сислога: зачем захламлять свой контейнер сислогом, если докер сам умеет туда писать
Roman
у нас, например, пишет на диск, оттуда другой контейнер делает logrotate и отправляет в S3
Это хорошо, но диск не резиновый и даже часто не локальный. Для логов есть логхост
Anonymous
это дискуссионный вопрос, и сильно зависит от ситуации
🏳️ Phil
@pragus погодь, а он разве пересоздаёт /dev/log?
🏳️ Phil
Кстати https://hub.docker.com/r/blacklabelops/rsyslogd/
Anonymous
а он через tcp работает?
Anonymous
просто интересно
🏳️ Phil
да
Ну тогда —volume-from вполне ок
🏳️ Phil
https://github.com/helderco/docker-rsyslogЕщё кстати смотри
🏳️ Phil
Запускай сислог с нестандартным сокетом, делай -v, а в контейнере делай ln -s
Roman
ты поменял конфиг сислога, рестартуешь
🏳️ Phil
ты поменял конфиг сислога, рестартуешь
это. делай сислогу /var/myoqwnsyslogsocket/dev/log . монтируй -v /var/myoqwnsyslogsocket/dev/log, внутри сделай симлинк с /var/myoqwnsyslogsocket/dev/log на /dev/log
🏳️ Phil
ещё проще -v /dev:/var/blyadskyisyslogdev, а внутри симлинк ln -s /dev:/var/blyadskyisyslogdev/log /dev/log
amdmax
используем syslog контейнер стартует с опциями log_driver: syslog log_options: tag: "{{ image_name }}"
amdmax
template( name="docker-tmpl" type="string" string="/var/log/docker/%programname%.log" ) # debug messages # *.* /var/log/rsyslog-debug;RSYSLOG_DebugFormat # default docker logs to /var/log/docker/daemon.log if $programname == "dockerd" then { action( type="omfile" file="/var/log/docker/daemon.log" ) stop } # docker containers logs if $programname startswith "MyAppName" then { action( type="omfile" dynaFile="docker-tmpl" fileCreateMode="0664" dirCreateMode="0775" ) stop } конфиг сислога
amdmax
ExecStart=/usr/bin/dockerd --log-driver=syslog \ --log-opt syslog-facility=local0 --log-opt tag={{.Name}}
amdmax
вот так
🏳️ Phil
ExecStart=/usr/bin/dockerd --log-driver=syslog \ --log-opt syslog-facility=local0 --log-opt tag={{.Name}}
внутри контейнера /dev/log есть? если туда писать - это удет попадать в драйвер?
amdmax
приложение в stdout пишет просто
amdmax
кто-нибудь ansible использует для деплоя?
Anton
я, но деплою не докер им
amdmax
- name: Stop current container docker_container: name: "{{ old_container_name }}" state: stopped when: result.stdout != "" вот это приводит к FAILED! => {"changed": false, "failed": true, "msg": "Error creating container: 400 Client Error: Bad Request (\"No command specified\")"} и в результате контейнер удаляется. ((
Anton
докер пока мало используется, так что пока руками
amdmax
докер пока мало используется, так что пока руками
у меня баш-скрипты были написаны. но их поддерживать не оч. Решили привести к стандарту - и получили бяку (
Anton
ansible хорош, но тут не подскажу, тк не сталкивался
Roman
приложение в stdout пишет просто
я же говорю, при таком подходе теряются facility и log level, а хочется фильтровать в логах info/warn/error/debug
Roman
это путь камикадзе
🏳️ Phil
это путь камикадзе
Хорошо, тогда усложнённый вариант с запуском инстанса сислога как для named в чруте лет 10 назад
Roman
вообще, мне в голову пришёл потенциальный вариант со специальным каталогом где лежит только syslog.sock и прокидыванием каталога внуть контейнера + симлинк.
Roman
но это как ректально что ли...
BratKondrat
Лог
🏳️ Phil
говорю же, ректально это )
ну bind так запускают по сей день. не вижу собственно проблемы. кроме симлинка
🏳️ Phil
Теоретически можно volume driver кстати написать
🏳️ Phil
который будет типа отслеживать
Vir
ребята, что по докеру почитать, такому нубу как я. желательно на русском. а то никак не проникнусь идеологией
Andrey
man
🏳️ Phil
ребята, что по докеру почитать, такому нубу как я. желательно на русском. а то никак не проникнусь идеологией
Библию. Это единственное, что можно будет читать скоро человеку, знающему только русский язык
Evgeny
Дэн же просил тут не разжигать
🏳️ Phil
Но это правда. Я английский так себе знаю, и то у меня к некоторым утилиткам нет русского ридми
Vir
но если серьёзно, просто я пока не проникся, меня и вагрант устраивал. а тут решили спрыгнуть с него
🏳️ Phil
Тогда тем более вопрос непонятен. Может ты перепутал язык, на котором надо почитать?
Vir
повторю
Alexey
зачем уходить с инструмента, который тебя устраивает?
Vir
ребята, что по докеру почитать, такому нубу как я. желательно на русском. а то никак не проникнусь идеологией
🏳️ Phil
На самом деле - просто спроси чего неясно. Может мы тут опишем своими словами
Vir
это всё виндузятники