Android‑устройства часто используют в качестве небольших серверов, IoT‑шлюзов или тестовых стендов. Для обеспечения стабильной работы критически важно иметь возможность наблюдать за загрузкой процессора, использованием памяти, состоянием диска и сетевыми метриками в режиме реального времени. В этой статье мы покажем, как превратить ваш смартфон или планшет в полноценный мониторинг‑агент, используя Termux, Prometheus и Grafana.
Подготовка среды Termux
Установите приложение Termux из официального репозитория Google Play или F-Droid. После первого запуска обновите пакеты и установите необходимые инструменты.
pkg update && pkg upgrade -y
pkg install git python wget curl unzip tar -y
Для работы с Python‑пакетами установим pip и виртуальное окружение.
pkg install python -y
pip install --upgrade pip setuptools
python -m venv ~/venv
source ~/venv/bin/activate
Установка Prometheus и Node Exporter
В Termux нет готовых пакетов prometheus и node_exporter, поэтому будем использовать официальные бинарные сборки.
Скачайте последнюю версию Prometheus и Node Exporter для архитектуры ARM64 (или ARMv7, в зависимости от вашего устройства).
# Определяем архитектуру
ARCH=$(uname -m)
if [ "$ARCH" = "aarch64" ]; then
PROM_URL="https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-arm64.tar.gz"
NODE_URL="https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-arm64.tar.gz"
else
PROM_URL="https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-arm.tar.gz"
NODE_URL="https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-arm.tar.gz"
fi
# Скачивание и распаковка
mkdir -p $HOME/prometheus && cd $HOME/prometheus
wget -O prom.tar.gz $PROM_URL && tar -xzf prom.tar.gz --strip-components=1
mkdir -p $HOME/node_exporter && cd $HOME/node_exporter
wget -O node.tar.gz $NODE_URL && tar -xzf node.tar.gz --strip-components=1
Настроим базовый конфиг prometheus.yml, чтобы собрать метрики от node_exporter.
cat > $HOME/prometheus/prometheus.yml <<'EOF'
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'android_node'
static_configs:
- targets: ['localhost:9100']
EOF
Запустим оба процесса в фоновом режиме (для простоты используем nohup).
nohup $HOME/node_exporter/node_exporter &
nohup $HOME/prometheus/prometheus --config.file=$HOME/prometheus/prometheus.yml &
Проверьте, что метрики доступны по адресу http://127.0.0.1:9100/metrics и http://127.0.0.1:9090/targets (доступно из браузера Termux или через curl).
Установка Grafana
Grafana официально не поддерживает Android, но в Termux можно запустить её в виде контейнера grafana через grafana-cli или собрать из исходников. Самый простой способ – использовать grafana из репозитория pkg (доступно в репозитории termux начиная с версии 9.0).
pkg install grafana -y
# Инициализируем базу данных и стартуем сервис
grafana-server --homepath $PREFIX/var/lib/grafana --config $PREFIX/etc/grafana/grafana.ini &
Если пакет недоступен, можно воспользоваться docker (установив termux-docker) или собрать из исходников – но в рамках этой статьи ограничимся официальным пакетом.
Конфигурация Grafana для визуализации метрик
Откройте браузер на Android и перейдите по адресу http://127.0.0.1:3000. По умолчанию логин/пароль – admin/admin. После входа выполните следующие шаги:
- Добавьте источник данных Prometheus:
URL: http://localhost:9090 Access: Server (default) Save & Test - Создайте новый дашборд или импортируйте готовый шаблон. Для быстрого старта используйте публичный шаблон
1860(Node Exporter Full).Dashboard → Import → ID: 1860 → Load → Select Prometheus datasource → Import - При необходимости настройте параметры отображения (цвета, пороги алертов) под ваш сценарий.
Все основные метрики (CPU usage, memory, filesystem, network) теперь видны в реальном времени.
Автозапуск сервисов при старте Termux
Чтобы мониторинг работал постоянно, добавьте команды в файл ~/.termux/bootrc (включите termux-boot из Play Store).
#!/data/data/com.termux/files/usr/bin/sh
# Запуск Node Exporter
$HOME/node_exporter/node_exporter &
# Запуск Prometheus
$HOME/prometheus/prometheus --config.file=$HOME/prometheus/prometheus.yml &
# Запуск Grafana
grafana-server --homepath $PREFIX/var/lib/grafana --config $PREFIX/etc/grafana/grafana.ini &
Не забудьте сделать файл исполняемым:
chmod +x ~/.termux/bootrc
Оптимизация и безопасность
- Ограничьте доступ к портам
9090и3000только из локальной сети, используяiptablesилиtermux-wake-lockдля защиты от автоматического закрытия. - Настройте базовую аутентификацию в Grafana (смените пароль администратора).
- Для удалённого доступа создайте SSH‑туннель к Android‑устройству и проксируйте порты.
Заключение
С помощью Termux вы получили полностью автономный стек мониторинга, который позволяет собирать и визуализировать ключевые системные метрики Android‑устройства в реальном времени. Такая настройка полезна для разработчиков, системных администраторов и всех, кто использует смартфон в качестве мини‑сервера.
Если вам нужен более глубокий аудит, кастомные дашборды или интеграция с внешними системами (Alertmanager, Loki, Promtail), обратитесь к профессионалам RybinskLab. Мы поможем спроектировать, развернуть и поддерживать решение под любые задачи, от IoT‑проектов до корпоративных инфраструктур.