We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Развёртывание и конфигурация распределённой системы мониторинга (Prometheus + Grafana) на мобильном устройстве под Termux

Полевой мониторинг на мобильных устройствах становится всё более востребованным: быстро развернуть метрики, собрать телеметрию с нескольких источников и визуализировать её в понятных дашбордах. В этой статье Денис Евгеньевич, ведущий эксперт РыбинскЛАБ, покажет практический подход к развёртыванию распределённой системы мониторинга Prometheus + Grafana в окружении Termux.

Важно: мы будем рассматривать сценарий локального развертывания и локальной сети (например, через Wi‑Fi или локальный VPN для организации LAN). Мы не используем VPN для обхода блокировок.

Что получится в итоге

Целевая архитектура выглядит так:

  • Termux (устройство-приёмник): Prometheus (сборщик метрик) и Grafana (визуализация).
  • Termux (устройства-источники) и/или другие хосты: экспортеры (программы, публикующие метрики в формате Prometheus).
  • Сеть: устройства должны быть доступны друг другу по IP внутри локальной сети.

Распределённость достигается тем, что Prometheus обращается к экспортерам по сети, а Grafana читает метрики из Prometheus.

Требования и оговорки

  • Android-устройство с установленным Termux.
  • ОС и права: Termux обычно работает в обычном режиме, но для сетевых настроек и стабильности полезны дополнительные настройки энергосбережения.
  • Доступ по сети: настройте одинаковый сегмент локальной сети (Wi‑Fi или локальная VPN для создания локальной сети).
  • Порты: по умолчанию Prometheus использует 9090, Grafana — 3000.

Если вам нужна отказоустойчивая схема для “долго работает в фоне”, обсудите требования с РыбинскЛАБ — подберём вариант конфигурации под ваше оборудование.

Подготовка Termux: обновление и установка базовых пакетов

Начните с подготовки окружения. Выполните команды в Termux:

pkg update
pkg upgrade -y
pkg install -y wget curl tar proot openssh nano net-tools

Понадобится JavaScript обычно не требуется, но для некоторых установок может пригодиться wget и tar. nano — для правки конфигов (можете заменить на свой редактор).

Создание рабочей структуры

Создадим каталог для приложений и конфигов:

mkdir -p ~/monitoring/prometheus ~/monitoring/grafana ~/monitoring/config

Установка Prometheus в Termux

Termux не является “полноценным сервером” по умолчанию, но позволяет запускать нативные бинарники, если вы скачаете подходящую сборку. Один из практичных подходов: скачать официальный архив Prometheus и запустить из Termux.

Перейдите в рабочую директорию:

cd ~/monitoring

Далее скачайте версию Prometheus. Подставьте актуальную стабильную версию. Например (пример):

wget https://github.com/prometheus/prometheus/releases/download/v2.55.1/prometheus-2.55.1.linux-armv7.tar.gz -O prometheus.tar.gz
tar -xzf prometheus.tar.gz
mv prometheus-/ prometheus-bin
rm -f prometheus.tar.gz

Если у вас другой тип процессора (arm64-v8a), используйте корректный архив под вашу архитектуру (arm64/amd64). В противном случае бинарник не запустится.

Проверка:

~/monitoring/prometheus-bin/prometheus --version

Настройка prometheus.yml

Создайте конфигурационный файл:

nano ~/monitoring/config/prometheus.yml

Вариант минимальной конфигурации (сбор по HTTP с экспортеров в локальной сети):

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'termux-exporter'
    metrics_path: /metrics
    static_configs:
      - targets:
          - '192.168.1.10:9100'

  - job_name: 'node-exporter-example'
    metrics_path: /metrics
    static_configs:
      - targets:
          - '192.168.1.20:9100'

Замените 192.168.1.10:9100 и 192.168.1.20:9100 на IP-адреса ваших устройств и порты, где запущены экспортеры.

Если у вас экспортер работает на самом телефоне, используйте 127.0.0.1 или localhost (но тогда Grafana будет видеть те же метрики только через Prometheus, как и задумано).

Запуск Prometheus

Перед запуском создайте папку для данных:

mkdir -p ~/monitoring/prometheus-data

Запуск Prometheus:

~/monitoring/prometheus-bin/prometheus 
  --config.file ~/monitoring/config/prometheus.yml 
  --storage.tsdb.path ~/monitoring/prometheus-data 
  --web.listen-address 0.0.0.0:9090 
  --web.enable-lifecycle

Откройте порт на устройстве в вашей локальной сети (убедитесь, что firewall/маршрутизация не блокируют). Для теста можно обратиться с другого устройства: http://IP_ТЕРМУКС:9090/.

Установка Grafana в Termux

Grafana — серверный веб-интерфейс. В зависимости от архитектуры мобильного устройства подход может отличаться. Более надёжный путь — использовать скачивание официального бинарника Grafana и запуск с конфигами под текущую среду.

Перейдите в каталог:

cd ~/monitoring

Скачайте Grafana (пример версии):

wget https://dl.grafana.com/enterprise/release/grafana-11.3.0.linux-arm64.tar.gz -O grafana.tar.gz
tar -xzf grafana.tar.gz
mv grafana- grafana-bin
rm -f grafana.tar.gz

Проверьте запуск:

~/monitoring/grafana-bin/bin/grafana-server --version

Подготовка конфигов и данных Grafana

Создайте каталоги для хранения и конфигурации (если их нет в поставке):

mkdir -p ~/monitoring/grafana-data
mkdir -p ~/monitoring/config/grafana

Скопируйте стандартный конфиг и отредактируйте при необходимости:

cp ~/monitoring/grafana-bin/conf/defaults.ini ~/monitoring/config/grafana/custom.ini

Отредактируйте базовые параметры. Например:

nano ~/monitoring/config/grafana/custom.ini

Вставьте/измените ключевые поля:

[server]
http_addr = 0.0.0.0
http_port = 3000
domain = localhost
root_url = http://IP_ТЕРМУКС:3000/
serve_from_sub_path = false

[paths]
data = /data/data/com.termux/files/home/monitoring/grafana-data

Сохраните изменения. Обратите внимание: путь в разделе [paths] может отличаться для вашего Termux-каталога. Используйте реальный путь вашего домашнего каталога, который обычно соответствует /data/data/com.termux/files/home.

Запуск Grafana

Запустите Grafana:

~/monitoring/grafana-bin/bin/grafana-server 
  --config ~/monitoring/config/grafana/custom.ini 
  --homepath ~/monitoring/grafana-bin

Проверьте веб-интерфейс: http://IP_ТЕРМУКС:3000.

Настройка Grafana: добавление Prometheus источника данных

Откройте Grafana в браузере и выполните шаги:

  • Войдите (по умолчанию учётные данные зависят от версии; при необходимости сбросьте пароль средствами Grafana).
  • Перейдите в Connections / Data sources (или Data sources).
  • Нажмите Add data source → выберите Prometheus.
  • URL: укажите http://localhost:9090, если Grafana и Prometheus на одном Termux.
  • Нажмите Save & test.

Если Prometheus запущен на отдельном устройстве, укажите его IP: http://IP_PROM:9090.

Добавление панели (Dashboard) и запросов

Для начала используйте готовые панели или создайте свои:

  • Выберите DashboardsNew (или Import).
  • Укажите источник данных Prometheus.
  • Используйте простые запросы для проверки, например: смотрите базовые метрики экспортеров (up, process_* или метрики CPU/RAM — зависят от экспортера).

Если у вас экспортер на /metrics публикует метрики, в Prometheus можно быстро проверить: откройте http://IP_ТЕРМУКС:9090/targets и убедитесь, что UP — зеленый.

Организация распределённости: как добавить экспортеры на другие устройства

Распределённость достигается тем, что Prometheus (центральный сборщик) регулярно опрашивает экспортеры.

Практика:

  • На устройствах-источниках запускайте экспортер (например, Node Exporter или Termux-экспортер).
  • Убедитесь, что порт экспорта (часто 9100 или 9300) доступен с устройства, где работает Prometheus.
  • В prometheus.yml добавьте новые targets.

После изменений перезапустите Prometheus или используйте lifecycle (если включено). Для перезапуска проще всего остановить процесс и запустить снова.

Стабильность: энергосбережение, автозапуск и фоновые задачи

Мобильные устройства часто “убивают” фоновые процессы. Рекомендации для стабильной работы:

  • В настройках Android добавьте Termux в исключения от энергосбережения.
  • Используйте стабильную сеть Wi‑Fi.
  • Держите Prometheus/Grafana в “активном” состоянии (или используйте планировщик/скрипты запуска, если ваша версия Termux и Android позволяют).

Если вам нужна схема “почти как сервер”: рассмотрим решение на базе внешнего мини-компьютера (или облака) и используем Termux только как экспортер/агент. Но если цель — именно запуск на телефоне, поможем подобрать конфигурацию.

Использование локальной VPN для создания LAN (опционально)

Если устройства находятся вне одного сегмента Wi‑Fi, но вы можете организовать локальную сеть через VPN, это может упростить доступ. Например, настроить такой VPN, чтобы устройства видели друг друга по IP (без попыток обхода блокировок). Далее Prometheus будет опрашивать экспортеры по этим IP.

В рамках статьи важно лишь соблюсти принцип: Prometheus должен видеть endpoint’ы по сети, а Grafana — обращаться к Prometheus.

Проверка работоспособности и типовые проблемы

Быстрые чек-листы:

  • Prometheus targets: откройте http://IP_ТЕРМУКС:9090/targets и убедитесь, что статус UP.
  • Доступность экспорта: проверьте, что на стороне источника метрики открываются в браузере с компьютера в сети: http://IP_источника:9100/metrics.
  • Порты: проверьте, что не занят порт и что процесс слушает на 0.0.0.0, а не только на 127.0.0.1.
  • Архитектура бинарников: если Prometheus/Grafana не запускаются, возможно, скачан архив под другой CPU (armv7 vs arm64).

Заключение

Мы рассмотрели практический сценарий развёртывания распределённой системы мониторинга Prometheus + Grafana на мобильном устройстве под Termux: подготовили окружение, установили и запустили Prometheus и Grafana, настроили prometheus.yml, подключили источники данных в Grafana и объяснили, как подключать удалённые экспортеры через сеть. Такой подход хорошо подходит для полевых задач, лабораторных стендов и быстрых проверок состояния систем.

Хотите, чтобы система работала “как надо” в вашем конкретном сетевом окружении (автозапуск, стабильность, подбор архитектуры бинарников, шаблоны дашбордов и экспортеров)? Обращайтесь в РыбинскЛАБ: поможем спроектировать и внедрить мониторинг под ваши условия.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект