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
я ж его перед этим заупусти
RE
>доступность каждого проверять смысла нет,
нe почему вы так решили? у меня есть смысл)
Artem
если не падает контейнер по тому как упало приложение в нем, то значит образ неправильно сделан и нужно пересмотреть микросервисность архитектуры
Artem
1 контейнер - 1 процесс, без всяких там супервизоров
Artem
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
Andrei
Хотя я сделал иначе, запихнул в каждый контейнер healthчеки, и написал утилиту, которая слушает docker events, собирает health стейты и пушит в sensu - это для мониторинга контейнеров. Для сервиса в целом - внешние проверки.
Bogdan (SirEdvin)
Andrei
Anonymous
Andrei
Я пока только радуюсь связке consul + consul-template вот уже как с того лета
Anonymous
Andrei
Anonymous
Нет
Anonymous
Но с arp тож были проблемы
Anonymous
Обычно он при неожиданном рестарте себя недыкватно ведёт
Anonymous
Если ноду рестарнуть, то с большой вероятностью он у нас покрашится
Anonymous
И ещё баги чинят ну очень долго
Andrei
Anonymous
Сервер
Anonymous
На клиентах все ок)
Andrei
У меня их примерно 60 штук, из них 10 ок - сервера. Чего только не было, все живо. Если совсем беда, то трёш его volume и он в бою. Я, видимо, везучей)))
Anonymous
Andrei
Ну баги есть везде, тут, главное, построить стэк так, чтобы такие вылеты ни на что в целом не влияли
Anonymous
Я уже даже подумал уйти на zk. Какой бы он страшный не был
Andrei
А etcd?
Anonymous
ну как вариант, но zk у нас есть и он насколько железный, что я в нем больше уверен
Artem
Roman
Может кто нибудь знает в каком формате docker ops передаются?
Roman
у меня тут все запущено, приходится docker cloud использовать который на своих нодах использует dockercloud-agent, который dockerd передает опции через конфиг https://github.com/docker/dockercloud-agent/blob/master/dockercloud-agent.conf
Roman
лол просто тупо —label role=whatever
Гайрат
Чем раньше - тем лучше
Sergey
Лучше на фаерволе вашей сети
Sergey
Если он есть
Sergey
Что бы запросы не долетали до сервака
Pavel
На хосте ессно
Pavel
Чем общее правило тем лучше и прощще
Pavel
Pavel
В иптаблес суешь и наслаждаешься
Pavel
Такую херню чорт пойми когда на петоне писал
Pavel
Да)
Гайрат
надо