Добрый вечер!
Подскажите, как лучше всего реализовать автозапуск служб в контейнере после его перезапуска. Пробовал установить systemd в контейнер, пытаюсь запустить
systemctl enable Zabbix-agent
Synchronizing state of zabbix-agent.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-agent
planc, меня не заббикс сервер интересен, а интересен Zabbix-agent, который будет контролировать доступность ресурса, и если в контейнере ресурс падает то должен он сообщать об этом на сервер, а сама Служба которая упала в автоматическом режиме перезапускаться.
Если вы планируете работать с докер - меняйте ваше представление о том, как все должно работать.
процесс = контейнер.
процесс падает = падает контейнер, докер демон его перезапускает.
заббикс(тоже контейнер) мониторит докер и репортит о перезапуске контейнера
Если надо заббиксом снимать с основного процесса какие то метрики - порт откуда запрашивать метрики выставляется из контейнера на хост
Если процесс пушит метрики в заббикс - так еще проще, выставляем заббиксовый эндпойнт на хост
Если не строить внутри контейнера связку сервисов - ваша жизнь будет сильно легче. Конфигурация приложения не должна зависеть от конфигурации мониторинга этого приложения, а вы именно это пытаетесь построить.
Однако же,иногда есть потребность в таком запуске(несколько процессов внутри контейнера).
Крайне рекомендую вам почитать официальную документацию как это делать https://docs.docker.com/config/containers/multi-se...
там нет никакой военной тайны
например в джава приложение AppDinamics внедряет инструменты которые переписывают класс во время выполнения и что угодно с ним делают (https://docs.appdynamics.com/display/PRO45/Install...
в частности считают заданные пользователем метрики и отправляют на свой сервер
ну и JMX конечно тоже имеется https://www.oracle.com/technetwork/articles/java/j...
а как с этим у забикс ? с не джава стеками приложений ?
то есть бизнес процесс не упал а про него уже все все знают к гадалке не ходи
Немного не понимаю как этот комментарий соотносится с изначальной постановкой вопроса =)
appdynamics - application monitoring
Zabbix - нет. Технически можно много чего наваять и с использованием zabbix то APM в нем, насколько я знаю, отсутствует.
Касательно вопроса изначального: заббикс, как правило, снимает метрики с известного эндпойнта.
Если приложение предоставляет такой эндпойнт или умеет само слать метрики в удаленную систему - то разделение контейнеров выглядит более чем логичным.
Если для снятия метрик с приложения через JMX есть Java API Gateway https://www.zabbix.com/documentation/current/ru/ma...
В случае описанном в статье на zabbix.com тоже достаточно пробросить JMX порт в локалхост