Можно ли запустить приложение для мониторинга ресурсов (например, netdata) внутри контейнера Docker, в котором размещеноLinux

Ответить
Anonymous
 Можно ли запустить приложение для мониторинга ресурсов (например, netdata) внутри контейнера Docker, в котором размещено

Сообщение Anonymous »

Я понимаю, что это немного левый вопрос, поскольку предполагаемое использование Docker-контейнера заключается в том, чтобы предоставить среду для запуска одного процесса, а не более чем одного процесса.
Я запускаю приложение Python внутри контейнера Docker. Он периодически загружает некоторые данные с помощью кадра данных Pandas. Примерно раз в месяц контейнер выходит из строя с ошибкой нехватки памяти.
Я не уверен, происходит ли это из-за утечки памяти, которая постепенно поглощает системную память, пока контейнер, наконец, не будет полностью уничтожен. убит, или если поведение является более случайным, так что иногда оно запускается и потребляет гораздо больше памяти, чем обычно.
Я не заметил, чтобы использование системной памяти становилось все выше в течение месяца, что заставляет меня думать, что проблема, вероятно, в последнем, а не в постепенном воспоминании. утечка.
Я подумал, что смогу использовать netdata для мониторинга использования памяти контейнера.
Примечание: существует два возможных способа: может использовать Netdata для мониторинга контейнеров Docker:
  • Обычный способ — использовать Netdata для мониторинга контейнеров, запустив его на узле контейнера. Хостом в данном случае является система Debian 12. Версия netdata, доступная через apt, — v1.37.1. Похоже, это сильно устарело, поскольку текущая версия — версия 2... Я не вижу в веб-интерфейсе ничего, что выглядело бы как диаграмма, отслеживающая использование памяти контейнерами Docker. Поэтому я подозреваю, что моя версия слишком старая.
  • «Странный» и совсем не рекомендуемый способ, который я пытаюсь сделать, — это установить Netdata внутри самого целевого контейнера Docker. .
На данный момент мне удалось установить Netdata, добавив команду Docker RUN apt update && apt install netdata -y в соответствующий Dockerfile.
Контейнер CMD по-прежнему имеет значение `CMD [.venv/bin/python3", "myPythonApp.py"].
Когда я запускаю контейнере Netdata (что неудивительно) не работает. Я могу запустить его вручную, запустив

Код: Выделить всё

docker exec -it MY_CONTAINER_NAME bash
/usr/sbin/netdata -D
Однако это неправильный путь. Обычно он запускается с использованием systemctl, но он не установлен в этом контейнере.
Даже если я запускаю его таким образом, при подключении к netdata экземпляре, работающем внутри контейнера, я обнаружил, что у него есть только одна диаграмма, предназначенная для некоторого измерения джиттера.
Диаграммы, связанные с памятью, отсутствуют.
Подводя итог:
  • То, что я пытаюсь здесь сделать, на самом деле неправильный подход.
  • Однако, возможно, это можно заставить работать, даже если это немного хак
  • li>
    Хотя мне удалось установить Netdata внутри Docker-контейнера, я не знаю, как его запустить, поскольку у Контейнера нет systemctl. Есть ли способ запустить процесс netdata при запуске контейнера? Если да, то как это сделать?
  • Если я запущу netdata вручную, я обнаружу, что нет ни одной из обычных ожидаемых диаграмм, и, что наиболее важно, нет диаграмм мониторинга использования памяти. . Это говорит о том, что какая-то зависимость отсутствует, однако процессы контейнера должны иметь доступ к файлу /proc/meminfo. (Я проверил, есть ли этот файл.)
Я подозреваю, что моя версия netdata устарела, но ее недостаточно для создания новый сервер и установка чего-то вроде последнего сервера Ubuntu вместо Debian, я не знаю, как это исправить. На самом деле я не хочу вручную устанавливать более позднюю версию netdata, вместо того чтобы управлять ею с помощью apt.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ata-inside
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»