Anonymous
🏳️ Phil
🏳️ Phil
А не
Magistr
Magistr
либо учить приложение писать в логшиппер
Roman
Anonymous
либо писать логи на диск, внешний logrotate
Roman
Anonymous
а у вас log level не в самой строке лога?
Roman
Anonymous
ну есть много вариантов, можно просто смонтировать диск и пусть пишет туда
Roman
Anonymous
Roman
Если держать там сислог
Anonymous
а не надо держать там сислог
Anonymous
у нас, например, пишет на диск, оттуда другой контейнер делает logrotate и отправляет в S3
Anonymous
дальше мы разбираемся уже оттуда
Anonymous
насчет сислога: зачем захламлять свой контейнер сислогом, если докер сам умеет туда писать
Roman
Roman
Anonymous
это дискуссионный вопрос, и сильно зависит от ситуации
🏳️ Phil
@pragus погодь, а он разве пересоздаёт /dev/log?
🏳️ Phil
Кстати https://hub.docker.com/r/blacklabelops/rsyslogd/
Anonymous
а он через tcp работает?
Anonymous
просто интересно
Roman
🏳️ Phil
да
Ну тогда —volume-from вполне ок
Roman
🏳️ Phil
https://github.com/helderco/docker-rsyslogЕщё кстати смотри
🏳️ Phil
Запускай сислог с нестандартным сокетом, делай -v, а в контейнере делай ln -s
Roman
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
}
конфиг сислога
🏳️ Phil
amdmax
ExecStart=/usr/bin/dockerd --log-driver=syslog \
--log-opt syslog-facility=local0 --log-opt tag={{.Name}}
amdmax
вот так
🏳️ Phil
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\")"}
и в результате контейнер удаляется. ((
amdmax
Anton
докер пока мало используется, так что пока руками
Anton
ansible хорош, но тут не подскажу, тк не сталкивался
🏳️ Phil
Roman
Roman
это путь камикадзе
🏳️ Phil
это путь камикадзе
Хорошо, тогда усложнённый вариант с запуском инстанса сислога как для named в чруте лет 10 назад
Roman
вообще, мне в голову пришёл потенциальный вариант со специальным каталогом где лежит только syslog.sock и прокидыванием каталога внуть контейнера + симлинк.
Roman
но это как ректально что ли...
BratKondrat
Лог
🏳️ Phil
🏳️ Phil
Roman
🏳️ Phil
Теоретически можно volume driver кстати написать
🏳️ Phil
который будет типа отслеживать
Vir
ребята, что по докеру почитать, такому нубу как я. желательно на русском. а то никак не проникнусь идеологией
Andrey
man
🏳️ Phil
Evgeny
Дэн же просил тут не разжигать
🏳️ Phil
Но это правда. Я английский так себе знаю, и то у меня к некоторым утилиткам нет русского ридми
Vir
Vir
Vir
но если серьёзно, просто я пока не проникся, меня и вагрант устраивал. а тут решили спрыгнуть с него
🏳️ Phil
Тогда тем более вопрос непонятен. Может ты перепутал язык, на котором надо почитать?
Vir
повторю
Alexey
зачем уходить с инструмента, который тебя устраивает?
Vir
ребята, что по докеру почитать, такому нубу как я. желательно на русском. а то никак не проникнусь идеологией
🏳️ Phil
На самом деле - просто спроси чего неясно. Может мы тут опишем своими словами
Vir
Vir
это всё виндузятники