Моей первой мыслью был Monit, который я использую для мониторинга других процессов.
Есть ли другой способ сделать это во вселенной Docker?
Я хочу отслеживать как демон Docker, так и определенные контейнеры.
Специально для контейнеров есть --restart
флаг для run
команда: https://docs.docker.com/engine/reference/commandline/run/#restart-policies-restart.
В более современных дистрибутивах Linux (таких как CoreOS и Ubuntu) вы получаете systemd и Upstart, управляющие демонами.
Например, в Ubuntu конфигурация Upstart по умолчанию для Docker имеет respawn
строфа (http://upstart.ubuntu.com/cookbook/#respawn) включен по умолчанию.
В мире systemd в CoreOS есть что-то вроде этого для запуска демона Docker: https://github.com/coreos/coreos-overlay/blob/bed6ea27913a1d9595b62e05174ac4a841c7fabb/app-emulation/docker/files/docker.service. Вы можете настроить (https://coreos.com/os/docs/latest/customizing-docker.html) единицы systemd, которые используются и используют Restart=
вариант (http://www.freedesktop.org/software/systemd/man/systemd.service.html#Restart=) для достижения аналогичной функциональности.
Однако оба эти варианта не выполняют никаких встроенных предупреждений или сообщений. Хотя вы, вероятно, могли бы настроить какой-то «почтовый» модуль, который запускает OnFailure=
модуля Docker systemd. Но я бы назвал это выходящим за рамки Docker и систем инициализации.