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

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

Мониторинг системных ресурсов Linux: создание кастомных дашбордов в Termux

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. Свяжитесь с нами для получения консультации и индивидуального проекта.

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

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю IT-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса.

Связаться со мной