hostmit
https://docs.docker.com/config/containers/logging/journald/
inqfen
Хоть через json, хоть через journald, хоть через syslog
hostmit
меня устраивает брать с диска и траслировать куда мне нужно... у меня нет идей как я из сервиса, подхвачу нужные мне файлы соседних сервисов
inqfen
У тебя туда все равно байтики идут, вне зависимости от того, какой процесс их делает
inqfen
Плюс в том, что если накрылась система логирования, проблемы с сетью и прочее - логи никуда не денутся
hostmit
это на глобал скейл. я хочу логгин сервис впихнуть как сервис внутрь докер компоуза.
hostmit
можно сохранять в самом логин-сервисе на вольюм, помимо стриминга в веб... но докер логс перестает работать так или иначе, как только уходишь от файловой системы... еще и локейшн указать я сам не могу, в логгин драйвере...
George
расскажу
George
https://github.com/goharbor/harbor
George
у них докер компоуз
George
выглядит так
George
version: '2.3' services: log: image: goharbor/harbor-log:v1.9.1 container_name: harbor-log restart: always dns_search: . cap_drop: - ALL cap_add: - CHOWN - DAC_OVERRIDE - SETGID - SETUID volumes: - /var/log/harbor/:/var/log/docker/:z - ./common/config/log/logrotate.conf:/etc/logrotate.d/logrotate.conf:z - ./common/config/log/rsyslog_docker.conf:/etc/rsyslog.d/rsyslog_docker.conf:z ports: - 127.0.0.1:1514:10514 networks: - harbor ....
George
а в остальных службах
George
registry: image: goharbor/registry-photon:v2.7.1-patch-2819-2553-v1.9.1 container_name: registry restart: always cap_drop: - ALL cap_add: - CHOWN - SETGID - SETUID volumes: - /raid/data/registry:/storage:z - ./common/config/registry/:/etc/registry/:z - type: bind source: /raid/data/secret/registry/root.crt target: /etc/registry/root.crt networks: - harbor dns_search: . depends_on: - log logging: driver: "syslog" options: syslog-address: "tcp://127.0.0.1:1514" tag: "registry"
George
важно вот эта вот последняя колбаса
George
@hostmit
hostmit
спасибо. уже и сам созрел с идеей. Логин сервис по тегу (в него кстати можно передать айди контейнера), и сохраняет его в нужный файл + делает что нужно... вот только вроде logs работать все одно не будет. Файл то лежит там где нужно
hostmit
но как только мы указали внешний логгин драйвер
hostmit
я думаю оно будет писать ошибку Error response from daemon: configured logging driver does not support reading
hostmit
Сейчас проверим
hostmit
Не, не пашет
hostmit
root@Ubuntu-1604-xenial-64-minimal /var/lib/docker/containers/119a94f01955935844e1bb0e406cbaf3bcbad1fb79ab078cabe1b19d858577d7 # docker logs 119a94f01955 Error response from daemon: configured logging driver does not support reading root@Ubuntu-1604-xenial-64-minimal /var/lib/docker/containers/119a94f01955935844e1bb0e406cbaf3bcbad1fb79ab078cabe1b19d858577d7 # docker inspect 119a94f01955|head -n 3 [ { "Id": "119a94f01955935844e1bb0e406cbaf3bcbad1fb79ab078cabe1b19d858577d7", root@Ubuntu-1604-xenial-64-minimal /var/lib/docker/containers/119a94f01955935844e1bb0e406cbaf3bcbad1fb79ab078cabe1b19d858577d7 # ls -la|grep "119a94f01955935844e1bb0e406cbaf3bcbad1fb79ab078cabe1b19d858577d7" -rw-r----- 1 root root 1273 Oct 28 08:13 119a94f01955935844e1bb0e406cbaf3bcbad1fb79ab078cabe1b19d858577d7-json.log root@Ubuntu-1604-xenial-64-minimal /var/lib/docker/containers/119a94f01955935844e1bb0e406cbaf3bcbad1fb79ab078cabe1b19d858577d7 #
hostmit
запустил я его так docker run -p 1001:80 -d --log-driver syslog --log-opt syslog-address=udp://192.168.88.1:1111 nginx
hostmit
подсунул ему в папку JSON, с правильным именем
George
L - Logic
hostmit
L - Logic
Я что-то упустил?
George
я вижу для тебя вариант написать свой докер логгинг драйвер
George
это будет проще всего
hostmit
не поможет :))) не даром они энтерпрайз продают. как только ты слезаешь с их дефолтного локал - docker logs не пашет
hostmit
ну или купить энтерпрайз
inqfen
Делай лог локально, контейнер с файлбитом в тот композ
inqfen
Он собирает логи и отправляет как тебе надо в контейнер с интерфейсом
inqfen
Тогда и там и там будет
inqfen
Только придётся filebeat делать привелигированным
hostmit
каким образом контейнер с файлбитом найдет айдишники других контейнеров?
George
для чего?
hostmit
мне же нужно скормить ему логи не все, а только и тех сервисов, которые внутри этого компоуза
hostmit
докер кладет логи в /var/lib/docker/container/{{CONTAINER_ID}}/{{CONTAINER_ID}}-json.log
inqfen
каким образом контейнер с файлбитом найдет айдишники других контейнеров?
А для этого и нужен привелигированный режим, чтобы подключить его к сокету докера
inqfen
Он это наивно умеет
hostmit
да? не знал... т.е. подберет нужные контейнеры?
hostmit
для ro доступа к сокету не нужны привелегии
inqfen
да? не знал... т.е. подберет нужные контейнеры?
А это тебе надо будет уже в конфиге написать
inqfen
По дефолту соберёт логи со всех, а тебе надо будет оставить только с определёнными тегами
inqfen
Имя контейнера тоже один из тегов
hostmit
ух ты! автодискавер по лейблам умеет?
hostmit
ми лав ю. Спасибо. То что нужно.
inqfen
Ну и лейблы в теги попадут
hostmit
не знал. спасибо!
inqfen
https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-docker.html Вот отсюда начни читать
hostmit
да да, уже читают референс, спасибо.
inqfen
Там в доках и про обогащение тегами из докера и прочее есть
hostmit
А веб? Кибана тяжело? Что-то легче?
inqfen
Гейлог легче elk
hostmit
Спасибо. Буду рыть.
inqfen
Есть ещё loki
inqfen
Это такая графана, но не для метрик, а для логов
rambling
каким образом контейнер с файлбитом найдет айдишники других контейнеров?
зачем если есть драйвер логирование в докере нативный- указываешь эндпойнт, драйвер и готово
hostmit
локи пользовался, но там плагин нужно.... :( к докер демону
rambling
тот же gelf все что надо шлет в логстэш, а ведь есть еще для fluentd
hostmit
тот же gelf все что надо шлет в логстэш, а ведь есть еще для fluentd
специфика проекта, мне нужно сохранить docker logs штатный функционал
rambling
э, т.е. чтобы он в стдаут кидал и чтобы его файлбит отдельно забирал файлом?
hostmit
Да. Оно не в стдаут кидает, выше глянь. Оно в файл кидает, а от туда берет уже docker logs команда файлбит пока выглядит более привлекательным. при том он легкий.
hostmit
имеется ввиду штатный драйвер логов докера -локал, он в файл пилит. а команда логс просто берет из него данные. причем подсунуть ему другой файл самостоятельно нельзя. если ты сказал что лог драйвер другой, все , докер логс не пашет
hostmit
Вопрос закрыт пока, спасибо парни, есть инфа, буду рыть.
rambling
вообще зависит от драйвера, но тащемта это норм практика что контейнер отдает свои логи наружу через драйвер в концентратор который их по полочкам складывает в бд.
rambling
но специфика есть спицифика, хоть я такой специфики вообще не понимат
Ins
Всем добрый день! Подскажите, пожалуйста, где можно взять Toad for Oracle версия 9.7 и выше в Docker для Centos 7?
maks
Всем добрый день! Подскажите, пожалуйста, где можно взять Toad for Oracle версия 9.7 и выше в Docker для Centos 7?
программа для win запакована в контейнер и запускается на сервере?
Ins
Я хочу на своей рабочей машине поставить Centos7. Но часть программ, которые мне нужны работают только на win. Хочется решить вопрос установки ПО с помощью контейнеризации
maks
ставь sql developer или TOra
maks
docker не про это
Roman Karas`
Roman Karas`
https://alternativeto.net/software/toad-for-oracle/?platform=linux
Ins
Спасибо.
maks
или wine попробуй.
Roman Karas`
Спасибо.
или wine можно ...
Roman Karas`
это запуск виндовых прог под линухой