
Artem
17.08.2017
16:03:57
И рестартует до победного то, что зависит от чего то, пока оно само не поднимется


Zlokot
17.08.2017
16:43:25
камрады привет. вопрос - кто юзал прометей для мониторинга докера - возможно ли мониторить не сам докер контейнер, а именно апликейшин в нем, допустим который экспозит порт сервиса наружу. хотя бы на уровне - живой порт или нет.
дока докера пишет что пока апликейшины нельзя мониторить, только метрики самого контейнера
https://docs.docker.com/engine/admin/prometheus/
Currently, you can only monitor Docker itself. You cannot currently monitor your application using the Docker target.
у меня есть десяток контейнеров рассыпаных по серверам. докер стек. каждый контрейнер экспозит в оверлейную сеть порт своего микросервиса. мне надо както мониторить - живой сервис или нет.
пока не было оверлея - я забиксом проверял порты.
а счас забикс не видит же - все внутри сетки оверлейной
мне для начала надо просто знать - живой сервис или нет
и из-за того, что этот сервис внутри оверлейно сетки докера - я не могу достучаться к нему из сети хоста.

Гайрат
17.08.2017
17:02:20


Zlokot
17.08.2017
17:03:11
думал об этом, и потом опрашивать каждый докер контейнер в сетке пассивным способом?

Google

Zlokot
17.08.2017
17:04:52
но как настроить этот забикс прокси сервер? ведь в забиксе это делается через веб - создать хосты, применить темплейты.
и потом если рестартануть этот контейнер с забиксом - все настройки же удаляться, если база будет внутри контейнеа.
или городить базу на хосте для этого забикса?

Гайрат
17.08.2017
17:16:08

zigmund
17.08.2017
17:16:14
Если самописные сервисы, то можно добавить поддержку Прометея

Гайрат
17.08.2017
17:17:14
Но это если у тебя сервисы не динамичные, а создал - и какое-то время будут жить
Хотя можешь задать период хранения неподдерживаемых элементов, тогда элементы данных, триггеры, графики будут сами удаляться

zigmund
17.08.2017
17:17:32
С Заббиксом одна проблема - он не для динамичных сред. Если контейнеры сотнями и тысячами появляются - все плохо.

Гайрат
17.08.2017
17:17:50

zigmund
17.08.2017
17:18:22
Заббикс из коробки умеет удалять пропавшие метрики минимум через сутки

Zlokot
17.08.2017
17:19:29

zigmund
17.08.2017
17:19:42
У нас иной раз сервисы в сварме по несколько раз на дню обновляются. Пробовал Заббиксом - печалька получается.

Zlokot
17.08.2017
17:20:12
обновляются, но не новые же создаются.

zigmund
17.08.2017
17:21:04

Гайрат
17.08.2017
17:21:24

Google

Zlokot
17.08.2017
17:21:39
у нас фиксированное кол-во докер контейнеров и следовательно - микросервисов. воти надо просто для начала видеть - живой сервис или нет.
потом уже метрики буду читать с них

Гайрат
17.08.2017
17:23:01

zigmund
17.08.2017
17:23:37

Zlokot
17.08.2017
17:24:06
не хватило времени сокрее всего. куча новых тасок.
камрады - так резюмируя - может прометей делать то что мне надо или нет? если да - я продожку копать его, если нет - уж потрачу время на забикс прокси в оверленой сети

Гайрат
17.08.2017
17:25:20
Я с прометеем не работал, а на заббиксе не сложно поднять систему
Тебе надо чекать порты просто на живучесть?

Zlokot
17.08.2017
17:25:33
да

Гайрат
17.08.2017
17:25:52
Не сложно тогда

Zlokot
17.08.2017
17:26:00
типа net.tcp.service[tcp,, номер порта]
забикс уже есть. просто он ослеп, так как живет на хост сети
просто в случае прокси хз как без автодискавери настраивать проверки для сервисов.
если прометей умеет проверят порты как мне надо - то он же через конфиг файл настраивается - его проще было бы внедрить в оверленую сеть

V
17.08.2017
18:02:59
да
лучше для сетевика observium
имхо

Zlokot
17.08.2017
18:25:46
это чтото вроде munin

Artem
17.08.2017
20:22:50
Так а не проще приложению самому отдавать метрику своего статуса, тогда все в Прометее будет

Сергей
17.08.2017
20:24:30
Не проще, а правильнее

Artem
17.08.2017
20:24:31
Тем более если у контейнера несколько реплик, то он чекать будет каждую реплику? И что тогда считать доступность апликейшена а данном случае?

Google

Сергей
17.08.2017
20:24:52
Любые метрики из вне приложения это костыль

Artem
17.08.2017
20:25:07
Ну лучше сразу нормально делать, чем городить костыли и потом биться об грабли

Сергей
17.08.2017
20:25:27
Дай я тебя обниму

Yuri
17.08.2017
21:24:13
https://github.com/deslum/pyrabbit2

Zlokot
18.08.2017
05:24:16
Я пока про метрики не говорю. А просто спрашиваю как Прометей может проверить доступность порта

Yevhen
18.08.2017
05:28:12
https://github.com/prometheus/blackbox_exporter
https://www.robustperception.io/checking-if-ssh-is-responding-with-prometheus/

Artem
18.08.2017
06:33:02
Кроме доступности экспортеров

Zlokot
18.08.2017
06:59:56
просто connect на порт сделать он не умеет простым способом?
я еще не ставил его поэтому не знаю как он конфигурится.
пока читаю и чтото не оч пойму - похоже весь конфиг у него в одно файле ямл и там все добы прописаны которые он делает.
не так как в забиксе конечно, где практически все в гуях и мышкой делается.
поэтому мне пока сложновато переключиться на новую тему

Nico
18.08.2017
07:22:59
label-schema.org кто-то использует? и кто в чате пользует метаданные в образах? подскажите свои кейсы плз, для саморазвития интересуюсь

Artem
18.08.2017
07:38:12
не не пингует, не коннектится по ssh не чекает порты
все делает экспортеры, а он только берет метрики с них
https://prometheus.io/docs/introduction/overview/
экспортеры можно писать и самому, если напишите тот который будет опрашивать порты (если такого еще нет) то он будет знать о доступности портов
но выглядеть это будет типо http_port_access=1
в виде метрики
поэтому если хотите чтобы все было по взрослому, то добавляйте в приложение метрики которые можно будет собирать и выводите туда хоть всю инфу о приложении, вплоть до среднего количества обращений и времени отклика.

Google

Гайрат
18.08.2017
07:48:51
/spam

Yaroslav
18.08.2017
07:51:25
Привет!Кто сможет подсказать, докер если запускаю такой командой
sudo docker run -i -t -d —env-file /home/users/onlyoffice_env onlyoffice/documentserver
То образ запускается в процессах висит но через 80 порт не подключается.
Если делаю перенаправление на порт 8080
docker run -i -t -d -p 8080:80 onlyoffice/documentserver Тогда через браузер открывает.Если добавляю 8080
порт 80 открытый

Admin
ERROR: S client not available

Artem
18.08.2017
07:52:13
так если хочешь на 80 порт повесить то и прокидывай на 80
-p 80:80
если он чем то другим не занят, то будеть открываться приложение
и?
где проброс то?
expose абсолютно ничего не значит и по нему не достучишься если не прописал. -p 80:80

Yaroslav
18.08.2017
08:33:07
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 все же не хочет
С докером несколько дней разбираюсь((


Zlokot
18.08.2017
08:35:46
поэтому если хотите чтобы все было по взрослому, то добавляйте в приложение метрики которые можно будет собирать и выводите туда хоть всю инфу о приложении, вплоть до среднего количества обращений и времени отклика.
спасибо за внятное объяснение.
все же переспрошу - так вот этот самописный или уже готовый експортер для чека доступности портов - это что? отдельный агент-демон-процесс на целевой машине или конфиг файл на сервере прометея?
и опять повторюсь - мне не надо по взрослому - мне надо както мониторить доступность портов на контейнерах где запущены микросервисы. они живут в оверлейной сетке докер стека - поэтому снаружи к ним доступа нет. все усложняется еще тем, что эти контейнеры не в одной реплике, а их по три штуки на сервис - то есть оно балансируется средствами докера, но мне НАДО знать о доступности КАЖДОГО.
пока я использовал докер сварм и экспозил эти порты в физ сетку - я мог забиксом проверять каждый хост с этими кнтенерами и видел все что надо.
а теперь на этих хостах они не висят в LISTENING на физ интерфейсе
вот и ищу варианты как к ним достучаться


Artem
18.08.2017
08:35:52
docker run -i -t -d -p 80:80 -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data
вот так пробовал?
еще в конце естественно должно быть название имаджа
спасибо за внятное объяснение.
все же переспрошу - так вот этот самописный или уже готовый експортер для чека доступности портов - это что? отдельный агент-демон-процесс на целевой машине или конфиг файл на сервере прометея?
и опять повторюсь - мне не надо по взрослому - мне надо както мониторить доступность портов на контейнерах где запущены микросервисы. они живут в оверлейной сетке докер стека - поэтому снаружи к ним доступа нет. все усложняется еще тем, что эти контейнеры не в одной реплике, а их по три штуки на сервис - то есть оно балансируется средствами докера, но мне НАДО знать о доступности КАЖДОГО.
пока я использовал докер сварм и экспозил эти порты в физ сетку - я мог забиксом проверять каждый хост с этими кнтенерами и видел все что надо.
а теперь на этих хостах они не висят в LISTENING на физ интерфейсе
вот и ищу варианты как к ним достучаться
Во первых, если у тебя правильно используется докер (1 реплика = 1 процесс/апликейшн) то доступность каждого проверять смысла нет, т.к. если реплика работает, то приложение доступно, если оно будет недоступно/крашнулось , то реплика просто падает.
Соответственно проверять нужно только через балансировщик сервиса сворма, а это как раз таки лучше делать через реплики отдаваемы приложением.
Экспортер это контейнер который крутится рядом с приложением и который шлет собираемые ими данные на прометеус который в свою очеред может быть вообще за пределами хоста на внешнем ip, главное что экспортер рядом со свормом
Вот примеры экспортеров можно глянуть https://prometheus.io/docs/instrumenting/exporters/


Yaroslav
18.08.2017
08:40:19
я ж его перед этим заупусти

Zlokot
18.08.2017
08:41:02
>доступность каждого проверять смысла нет,
нe почему вы так решили? у меня есть смысл)

Artem
18.08.2017
08:42:35
если не падает контейнер по тому как упало приложение в нем, то значит образ неправильно сделан и нужно пересмотреть микросервисность архитектуры
1 контейнер - 1 процесс, без всяких там супервизоров

Google

Artem
18.08.2017
08:43:12
чтобы пробросить 2 порта достаточно указать их оба в пробросах

Zlokot
18.08.2017
08:44:02
да причем тут это) извините, но я не об этом спрашиваю. у меня то как раз все ровно - 1 контейнер на хосте - 1 приложение. на другом хосте такое же, на третьем - тоже.
они все вместе - это сворм.
упало на одном хосте - работают осталные два
не в этом МОЯ ЗАДАЧА.
>Экспортер это контейнер который крутится рядом с приложением
значит если у меня десяток приложений в контейнерах на одном хосте, каждое со своим портом, то чтобы мониторить эти порты надо еще 10 контейнеров с експортерами? по одному на каждое приложение?

Artem
18.08.2017
08:45:49
можно одним экспортером собирать кучу метрик
это просто промежуточное звено для доставки их в прометеус
я просто не понимаю зачем чекать реплики сворма, если нужна доступность приложения
сворм уже сам разрулит ситуацию по репликам за вас
конечная цел доступность приложения по вебу насколько я понял, а то рестартуются ли реплики или нет уже видно по мониторингу самого сворма

Zlokot
18.08.2017
08:51:03
с точки зрения обычного подхода - да, вы правы. чекаем само приложение, а доступность реплик чекаем проверкой сворма.
но у нас есть некая специфика, долго писать. заточено все было под заббикс и счас хочется повторить.