Termux превратил Android‑устройства в полноценные Linux‑окружения. Это открывает возможности мониторинга системных ресурсов не только на сервере, но и на мобильных устройствах. В статье мы рассмотрим, как собрать метрики (CPU, RAM, диск, сеть) и отобразить их в кастомных дашбордах, полностью управляемых из Termux.
Подготовка окружения
Для начала установим необходимые пакеты:
pkg update && pkg upgrade -y
pkg install -y python python-pip git tmux htop termux-api curl
Для визуализации будем использовать htop (интерактивный монитор), glances (универсальный дашборд) и Grafana в виде лёгкого веб‑интерфейса.
Установка Glances и его зависимостей
Glances – мощный кроссплатформенный инструмент, собирающий более 20 метрик. Устанавливаем через pip:
pip install --upgrade pip
pip install glances[all]
После установки проверим работу:
glances -w
Опция -w запускает встроенный веб‑сервер, доступный по адресу http://127.0.0.1:61208. В Termux можно открыть его через браузер или прокинуть через ssh -L для удалённого доступа.
Сбор собственных метрик с помощью скриптов
Иногда требуется измерять специфичные параметры (например, температуру процессора или уровень заряда батареи). Создадим простой Bash‑скрипт metrics.sh:
#!/data/data/com.termux/files/usr/bin/bash
# CPU load (average for 1 minute)
CPU_LOAD=$(cat /proc/loadavg | awk '{print $1}')
# RAM usage in MB
MEM_TOTAL=$(free -m | awk '/Mem:/ {print $2}')
MEM_USED=$(free -m | awk '/Mem:/ {print $3}')
# Disk usage (root partition)
DISK_USED=$(df -h / | awk 'NR==2 {print $3}')
DISK_TOTAL=$(df -h / | awk 'NR==2 {print $2}')
# Battery level (Termux API)
BATTERY=$(termux-battery-status | jq -r '.percentage')
# Формируем JSON‑строку
cat <
Сделайте скрипт исполняемым:
chmod +x metrics.sh
Запуск ./metrics.sh выдаст JSON‑объект, который можно отправлять в любой HTTP‑endpoint или сохранять в файл для последующего анализа.
Создание интерактивного дашборда в tmux
Терминальный мультиплексор tmux позволяет разместить несколько панелей в одном окне. Сконфигурируем сессию, где будут отображаться:
- htop – динамический монитор CPU/RAM.
- glances – веб‑дашборд (в отдельной вкладке браузера).
- Вывод нашего скрипта
metrics.shв режиме «watch».
Создаём скрипт start_dashboard.sh:
#!/data/data/com.termux/files/usr/bin/bash
SESSION="monitor"
tmux new-session -d -s $SESSION -n "HTOP"
tmux send-keys -t $SESSION:0 "htop" C-m
# Второй панель – вывод кастомных метрик каждые 5 секунд
tmux split-window -v -t $SESSION
tmux send-keys -t $SESSION:0.1 "watch -n 5 ./metrics.sh" C-m
# Третий панель – запуск glances в режиме сервера (фон)
tmux new-window -t $SESSION -n "GLANCES"
tmux send-keys -t $SESSION:1 "glances -w" C-m
# Переключаемся к первой панели
tmux select-window -t $SESSION:0
tmux attach -t $SESSION
Запустите ./start_dashboard.sh – получите готовый терминальный дашборд, который можно закрыть комбинацией Ctrl+b d (отсоединение) и восстановить позже.
Визуализация через Grafana (опционально)
Если требуется более продвинутая графика, можно поднять лёгкую инстанцию Grafana в Termux через Docker (если устройство поддерживает). Пример установки:
pkg install -y root-repo
pkg install -y docker
service docker start
docker pull grafana/grafana
docker run -d -p 3000:3000 --name=grafana \
-v $(pwd)/grafana:/var/lib/grafana \
grafana/grafana
После старта откройте http://127.0.0.1:3000 в браузере Termux. Добавьте InfluxDB или любой другой источник данных (можно настроить простой HTTP‑endpoint, в который ваш скрипт будет отправлять метрики).
Автоматизация сбора данных
Для постоянного сбора метрик удобно использовать cron (в Termux – crond):
pkg install -y cronie
sv enable crond
sv start crond
# Добавляем задачу в crontab
crontab -e
# Пример строки (каждые 2 минуты отправлять JSON в локальный файл)
/2 * /data/data/com.termux/files/home/metrics.sh >> /data/data/com.termux/files/home/metrics.log
Заключение
Termux предоставляет всё необходимое для построения гибких систем мониторинга: от простых терминальных панелей до полноценного веб‑дашборда с Grafana. Вы можете собрать метрики, визуализировать их в реальном времени и автоматизировать процесс с помощью cron. Такие решения подходят как для личных нужд, так и для демонстрации клиентам.
Если вы хотите внедрить профессиональные решения по мониторингу, автоматизации и DevOps‑практикам, команда RybinskLab готова помочь: разрабатываем кастомные скрипты, настраиваем CI/CD, интегрируем Grafana и Prometheus, а также предоставляем обучение и поддержку под Android/Termux. Свяжитесь с нами для получения консультации и индивидуального проекта.