Artem
и?
Artem
где проброс то?
Artem
expose абсолютно ничего не значит и по нему не достучишься если не прописал. -p 80:80
Yaroslav
expose абсолютно ничего не значит и по нему не достучишься если не прописал. -p 80:80
docker run -i -t -d -p 80:80 -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice onlyoffice/documentserver Вот такой командой сделал запуск контейнера и монтированных директорий и потом для 443 docker run -i -t -d -p 443:443 -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data Доступ из браузера есть только для 443, по 80 все же не хочет С докером несколько дней разбираюсь((
RE
поэтому если хотите чтобы все было по взрослому, то добавляйте в приложение метрики которые можно будет собирать и выводите туда хоть всю инфу о приложении, вплоть до среднего количества обращений и времени отклика.
спасибо за внятное объяснение. все же переспрошу - так вот этот самописный или уже готовый експортер для чека доступности портов - это что? отдельный агент-демон-процесс на целевой машине или конфиг файл на сервере прометея? и опять повторюсь - мне не надо по взрослому - мне надо както мониторить доступность портов на контейнерах где запущены микросервисы. они живут в оверлейной сетке докер стека - поэтому снаружи к ним доступа нет. все усложняется еще тем, что эти контейнеры не в одной реплике, а их по три штуки на сервис - то есть оно балансируется средствами докера, но мне НАДО знать о доступности КАЖДОГО. пока я использовал докер сварм и экспозил эти порты в физ сетку - я мог забиксом проверять каждый хост с этими кнтенерами и видел все что надо. а теперь на этих хостах они не висят в LISTENING на физ интерфейсе вот и ищу варианты как к ним достучаться
Artem
docker run -i -t -d -p 80:80 -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data вот так пробовал?
Artem
еще в конце естественно должно быть название имаджа
Artem
спасибо за внятное объяснение. все же переспрошу - так вот этот самописный или уже готовый експортер для чека доступности портов - это что? отдельный агент-демон-процесс на целевой машине или конфиг файл на сервере прометея? и опять повторюсь - мне не надо по взрослому - мне надо както мониторить доступность портов на контейнерах где запущены микросервисы. они живут в оверлейной сетке докер стека - поэтому снаружи к ним доступа нет. все усложняется еще тем, что эти контейнеры не в одной реплике, а их по три штуки на сервис - то есть оно балансируется средствами докера, но мне НАДО знать о доступности КАЖДОГО. пока я использовал докер сварм и экспозил эти порты в физ сетку - я мог забиксом проверять каждый хост с этими кнтенерами и видел все что надо. а теперь на этих хостах они не висят в LISTENING на физ интерфейсе вот и ищу варианты как к ним достучаться
Во первых, если у тебя правильно используется докер (1 реплика = 1 процесс/апликейшн) то доступность каждого проверять смысла нет, т.к. если реплика работает, то приложение доступно, если оно будет недоступно/крашнулось , то реплика просто падает. Соответственно проверять нужно только через балансировщик сервиса сворма, а это как раз таки лучше делать через реплики отдаваемы приложением. Экспортер это контейнер который крутится рядом с приложением и который шлет собираемые ими данные на прометеус который в свою очеред может быть вообще за пределами хоста на внешнем ip, главное что экспортер рядом со свормом Вот примеры экспортеров можно глянуть https://prometheus.io/docs/instrumenting/exporters/
Yaroslav
docker run -i -t -d -p 80:80 -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data вот так пробовал?
пишит занят docker: Error response from daemon: driver failed programming external connectivity on endpoint gallant_mahavira (0f7ce8c3f128fc159f9424042e4d0e5cbda0d1243e5255d7b93f3832239aab12): Bind for 0.0.0.0:80 failed: port is already allocated.
Yaroslav
я ж его перед этим заупусти
RE
>доступность каждого проверять смысла нет, нe почему вы так решили? у меня есть смысл)
Artem
если не падает контейнер по тому как упало приложение в нем, то значит образ неправильно сделан и нужно пересмотреть микросервисность архитектуры
Artem
1 контейнер - 1 процесс, без всяких там супервизоров
Artem
чтобы пробросить 2 порта достаточно указать их оба в пробросах
RE
да причем тут это) извините, но я не об этом спрашиваю. у меня то как раз все ровно - 1 контейнер на хосте - 1 приложение. на другом хосте такое же, на третьем - тоже. они все вместе - это сворм. упало на одном хосте - работают осталные два
RE
не в этом МОЯ ЗАДАЧА.
RE
>Экспортер это контейнер который крутится рядом с приложением значит если у меня десяток приложений в контейнерах на одном хосте, каждое со своим портом, то чтобы мониторить эти порты надо еще 10 контейнеров с експортерами? по одному на каждое приложение?
Artem
можно одним экспортером собирать кучу метрик
Artem
это просто промежуточное звено для доставки их в прометеус
Artem
я просто не понимаю зачем чекать реплики сворма, если нужна доступность приложения
Artem
сворм уже сам разрулит ситуацию по репликам за вас
Artem
конечная цел доступность приложения по вебу насколько я понял, а то рестартуются ли реплики или нет уже видно по мониторингу самого сворма
RE
с точки зрения обычного подхода - да, вы правы. чекаем само приложение, а доступность реплик чекаем проверкой сворма.
RE
но у нас есть некая специфика, долго писать. заточено все было под заббикс и счас хочется повторить.
Artem
ну тогда костыляйте на здоровье)
Artem
там уже сложно подсказать не работая с вашей спецификой)
RE
можно одним экспортером собирать кучу метрик
то есть к существующим докер контейнерам с микросервисами на каждом хосте, достаточно добавить только ОДИН с експортером, который умеет чекать всех "соседей" получается основная проблема тут - научить этот експортер делать такие проверки. вот это как делается - если експортер это такое же приложение в контексте докера - то как его конфигурить? >Экспортер это контейнер который крутится рядом с приложением и который шлет собираемые ими данные на прометеус который в свою очеред может быть вообще за пределами хоста на внешнем ip, главное что экспортер рядом со свормом все что я пока читал про установку прометея - это то, что его ставят тоже в сворме в виде контейнера.
Artem
то как пилить свои экспортеры тоже есть в доке
Artem
https://prometheus.io/docs/instrumenting/writing_exporters/
Artem
там уже кто на чем горазд писать
RE
спасибо... то есть это уже почти программирование а не конфигурирование
Artem
ну если нет готовых экспортеров которые подойдут которые уже кто-то написал, то да
RE
спасибо за советы!
Yaroslav
Кто сталкивался с онлиофис в докере ? Waiting for connection to the ubsrv host on port 5432 nc: getaddrinfo: Name or service not known это в docker logs телнетом на этот хост и порт подключаюсь .
Denis
https://thenewstack.io/docker-enterprise-edition-expands-legacy-systems/
Sergey
Докер идёт в большой интерпрайз
Sergey
Предсказуемо
Andrei
камрады привет. вопрос - кто юзал прометей для мониторинга докера - возможно ли мониторить не сам докер контейнер, а именно апликейшин в нем, допустим который экспозит порт сервиса наружу. хотя бы на уровне - живой порт или нет. дока докера пишет что пока апликейшины нельзя мониторить, только метрики самого контейнера https://docs.docker.com/engine/admin/prometheus/ Currently, you can only monitor Docker itself. You cannot currently monitor your application using the Docker target. у меня есть десяток контейнеров рассыпаных по серверам. докер стек. каждый контрейнер экспозит в оверлейную сеть порт своего микросервиса. мне надо както мониторить - живой сервис или нет. пока не было оверлея - я забиксом проверял порты. а счас забикс не видит же - все внутри сетки оверлейной мне для начала надо просто знать - живой сервис или нет и из-за того, что этот сервис внутри оверлейно сетки докера - я не могу достучаться к нему из сети хоста.
Тебе нужен не пром, а связка из consul, consul healthchecks и gliderlabs/registrator
Andrei
Хотя я сделал иначе, запихнул в каждый контейнер healthчеки, и написал утилиту, которая слушает docker events, собирает health стейты и пушит в sensu - это для мониторинга контейнеров. Для сервиса в целом - внешние проверки.
Bogdan (SirEdvin)
Andrei
Andrei
Консул гавно ж
Главное, конструктивно)))
Anonymous
Главное, конструктивно)))
Ну я с ним много проблем имею
Andrei
Ну я с ним много проблем имею
Я, видимо, пропустил обсуждение. А какого плана проблемы?
Andrei
Я пока только радуюсь связке consul + consul-template вот уже как с того лета
Anonymous
Нет
Anonymous
Но с arp тож были проблемы
Anonymous
Обычно он при неожиданном рестарте себя недыкватно ведёт
Anonymous
Если ноду рестарнуть, то с большой вероятностью он у нас покрашится
Anonymous
И ещё баги чинят ну очень долго
Anonymous
Сервер
Anonymous
На клиентах все ок)
Andrei
У меня их примерно 60 штук, из них 10 ок - сервера. Чего только не было, все живо. Если совсем беда, то трёш его volume и он в бою. Я, видимо, везучей)))
Andrei
Ну баги есть везде, тут, главное, построить стэк так, чтобы такие вылеты ни на что в целом не влияли
Anonymous
Я уже даже подумал уйти на zk. Какой бы он страшный не был
Andrei
А etcd?
Anonymous
ну как вариант, но zk у нас есть и он насколько железный, что я в нем больше уверен
Andrei
Prometheus + cadvisor собирает прекрасно инфу по всем контейнерам)
Что он собирает инфу - это понятно, я cadvisor давно пробовал. Он разве умеет healthчеки обрабатывать?
Roman
Может кто нибудь знает в каком формате docker ops передаются?
Roman
у меня тут все запущено, приходится docker cloud использовать который на своих нодах использует dockercloud-agent, который dockerd передает опции через конфиг https://github.com/docker/dockercloud-agent/blob/master/dockercloud-agent.conf
Roman
лол просто тупо —label role=whatever
Bogdan (SirEdvin)
Что он собирает инфу - это понятно, я cadvisor давно пробовал. Он разве умеет healthчеки обрабатывать?
Это если ваше приложение умеет в healthчеки. А так инфа про статус контейнера (поднят или лежит) + blackbox
Гайрат
Чем раньше - тем лучше
Sergey
Лучше на фаерволе вашей сети
Sergey
Если он есть
Sergey
Что бы запросы не долетали до сервака
Pavel
На хосте ессно
Pavel
Чем общее правило тем лучше и прощще
Pavel
В иптаблес суешь и наслаждаешься
Pavel
Такую херню чорт пойми когда на петоне писал
Pavel
Да)
Гайрат
надо