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

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

Мониторинг системных ресурсов и логов в реальном времени в Termux с помощью Prometheus, Grafana и Loki: настройка сбора

Termux — удобная среда для запуска утилит и сервисов прямо на Android. В этой статье мы разберём, как организовать мониторинг системных ресурсов и логов в реальном времени на устройстве под Termux, используя связку Prometheus (метрики), Grafana (дашборды) и Loki (логирование). Акцент сделаем на сборе данных и корректной настройке.

Материал ориентирован на аккуратные и легальные сценарии использования: локальный мониторинг своего устройства или своей лабораторной/домашней сети. Для доступа с других устройств при необходимости можно поднять VPN для создания локальной сети, но не использовать его для обхода блокировок.

Архитектура решения

Типовая схема в рамках локального окружения:

  • Prometheus собирает метрики со “скрапаемых” источников (в нашем случае — из Termux/экспортера).
  • Loki принимает логи (push через Promtail) и индексирует их для поиска.
  • Grafana читает метрики из Prometheus и логи из Loki, строит графики и панели поиска.

Вариант для Termux может включать: все компоненты на одном устройстве или разнесение по узлам (например, Grafana на ПК, а сбор — на Android). Ниже показан практичный подход для старта: поднимаем сервисы на Termux, а Grafana при желании смотрим с ПК по сети.

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

Проверьте базовые вещи:

  • Termux установлен и обновлён.
  • Есть доступ к сети (Wi‑Fi/мобильная связь).
  • Достаточно места в хранилище (лог-данные могут расти).
  • Понимание портов и доступа: по умолчанию Android может ограничивать входящие соединения без корректной сетевой настройки.

Начнём с подготовки пакетов. В Termux обновите систему и установите необходимые компоненты.

pkg update -y && pkg upgrade -y
pkg install -y wget curl tar proot-distro net-tools

Дальше нужны бинарники/сервисы. Наиболее стабильный путь для Prometheus/Loki/Grafana — запуск их как отдельные процессы из Termux. Для простоты в этой статье используется загрузка официальных сборок и запуск из окружения Termux.

Установка Prometheus, Loki и Grafana в Termux

Создадим рабочую директорию:

mkdir -p ~/monitoring/{prometheus,loki,grafana}

Далее скачиваем и распаковываем архивы. Версии подбирайте актуальные на момент установки (в примерах ниже используются placeholders). Для надёжности ориентируйтесь на официальные релизы.

Prometheus

cd ~/monitoring/prometheus
wget -O prometheus.tar.gz "https://github.com/prometheus/prometheus/releases/download/vX.Y.Z/prometheus-X.Y.Z.linux-arm64.tar.gz"
tar -xzf prometheus.tar.gz --strip-components=1

Loki

cd ~/monitoring/loki
wget -O loki.tar.gz "https://github.com/grafana/loki/releases/download/vA.B.C/loki-linux-arm64.zip"
unzip loki.tar.gz

Если у вас архив другого типа (tar.gz или zip), команда распаковки может отличаться.

Grafana

Grafana в Termux может быть менее удобной из‑за зависимостей, но возможно запустить как отдельный сервер. Практичнее в большинстве случаев держать Grafana на ПК и подключаться к Prometheus/Loki по сети. Если вы хотите именно в Termux — проверьте архитектуру и наличие подходящего бинарника/сборки.

Рекомендуемый подход: Grafana на ПК. В Termux поднимаем Prometheus и Loki, а Grafana используем как клиент.

Сбор метрик: exporter для системных ресурсов

Prometheus сам по себе не знает о системных метриках устройства. Нужен источник данных — exporter. Варианты зависят от доступности данных в Termux. На практике удобно использовать экспортёр, который умеет читать CPU/Memory/Disk и т.д.

В “быстрый старт” обычно включают:

  • CPU, load, memory
  • Диск/FS
  • Сеть (rx/tx при наличии)

Если вы используете готовый экспортёр, действуйте по инструкции к нему. С точки зрения конфигурации Prometheus вам нужен endpoint вида http://<host>:<port>/metrics.

В качестве примера рассмотрим ситуацию, когда у вас уже есть exporter и он слушает порт 9100 и выдаёт метрики на /metrics. Если вам нужен конкретный exporter (например, node_exporter или аналог под Android/arm64), сообщите модель устройства и архитектуру — подберу наиболее подходящий вариант.

Настройка Prometheus

Создадим конфигурацию Prometheus. В Termux:

mkdir -p ~/monitoring/prometheus/config
nano ~/monitoring/prometheus/config/prometheus.yml

Пример минимального файла:

global:
  scrape_interval: 5s
  evaluation_interval: 5s

scrape_configs:
  - job_name: 'termux_exporter'
    metrics_path: /metrics
    static_configs:
      - targets: ['127.0.0.1:9100']

Если exporter слушает не на loopback, замените 127.0.0.1 на IP устройства в вашей сети (или настройте доступность через VPN для создания локальной сети).

Запуск Prometheus:

cd ~/monitoring/prometheus
./prometheus --config.file=~/monitoring/prometheus/config/prometheus.yml --storage.tsdb.path=~/monitoring/prometheus/data --web.listen-address=0.0.0.0:9090

Проверьте доступность изнутри:

curl -s http://127.0.0.1:9090/-/healthy

Если возвращается null или страница “healthy” — сервис поднят.

Сбор логов: Promtail → Loki

Для Loki нужен агент, который будет отправлять логи. Обычно это Promtail. Promtail читает файлы логов и пушит их в Loki.

Установим Promtail. Скачивание зависит от типа архива. Подход аналогичен Prometheus:

cd ~/monitoring/loki
wget -O promtail.tar.gz "https://github.com/grafana/loki/releases/download/vA.B.C/promtail-linux-arm64.zip"
unzip promtail.tar.gz

Создадим конфиг Promtail:

mkdir -p ~/monitoring/loki/config
nano ~/monitoring/loki/config/promtail.yml

Пример настройки для логов Termux. Важно: путь к логам выбирайте под ваш сценарий (например, системные логи приложения или лог-файлы ваших сервисов). В Termux обычно удобнее складывать логи ваших команд/сервисов в файлы.

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /data/positions.yaml

clients:
  - url: http://127.0.0.1:3100/loki/api/v1/push

scrape_configs:
  - job_name: termux_logs
    static_configs:
      - targets:
          - localhost
        labels:
          job: termux
          path: /sdcard/termux-logs/.log

Обратите внимание:

  • /sdcard/termux-logs/.log — пример. Создайте папку и пишите туда логи.
  • positions.filename — хранит позицию чтения. Для Android лучше иметь путь, доступный по записи.

Создадим папку для логов и тестовый файл:

mkdir -p /sdcard/termux-logs
touch /sdcard/termux-logs/test.log

Настройка Loki

Создадим конфиг Loki:

nano ~/monitoring/loki/config/loki.yml

Минимальный пример (для старта, локально):

auth_enabled: false

server:
  http_listen_port: 3100

common:
  path_prefix: /data/loki
  storage:
    filesystem:
      chunks_directory: /data/loki/chunks
      rules_directory: /data/loki/rules

schema_config:
  configs:
    - from: 2020-10-24
      store: boltdb-shipper
      object_store: filesystem
      schema: v11
      index:
        prefix: index_
        period: 24h

limits_config:
  retention_period: 168h

Запуск Loki:

cd ~/monitoring/loki
./loki -config.file=~/monitoring/loki/config/loki.yml

Проверка здоровья:

curl -s http://127.0.0.1:3100/ready

Запуск Promtail:

./promtail -config.file=~/monitoring/loki/config/promtail.yml

Проверка работы: “живые” метрики и “живые” логи

Чтобы убедиться, что сбор логов работает, в отдельном окне Termux пишите в файл:

while true; do date >> /sdcard/termux-logs/test.log; echo "cpu_check=$(date)" >> /sdcard/termux-logs/test.log; sleep 3; done

Для проверки метрик откройте страницу Prometheus:

  • http://<ip_устройства>:9090

И выполните query в разделе Graphs. Если экспортёр отдаёт метрики, появятся временные ряды.

Подключение Grafana и создание панелей

Если Grafana на ПК, добавьте источники:

  • Prometheus: URL вида http://<ip_устройства>:9090
  • Loki: URL вида http://<ip_устройства>:3100

Далее создайте:

  • Панель “CPU usage” (Prometheus): выберите метрику из вашего exporter и задайте диапазон.
  • Панель “Logs” (Loki): задайте запрос в стиле {job="termux"} и добавьте фильтры по тексту при необходимости.

Чтобы запросы работали, убедитесь, что лейблы в Promtail совпадают: в примере это job: termux.

Эксплуатационные моменты для Termux

1) Автозапуск и сессии

Termux может завершать процессы при уходе в фон, зависит от настроек и Android-ограничений. Для лабораторных задач используйте удержание сессии и тщательно проверяйте поведение при блокировке экрана. Если выстроите автозапуск — делайте это через штатные средства Termux/Android и тестируйте жизненный цикл.

2) Хранилище и рост данных

Loki по умолчанию может накапливать данные. В конфиге используйте retention_period (в примере 168h). Промежуток выбирайте под задачу.

3) Сеть и порты

Для доступа с ПК откройте только нужные порты. В Android это может требовать дополнительных действий. Если вы хотите безопаснее управлять доступом, используйте VPN для создания локальной сети и ограничивайте доступ в рамках подсети.

4) Синхронизация времени

Для корректного поиска по логам и сопоставления событий важно, чтобы время на устройстве было близко к реальному. Обычно Android поддерживает время через сеть.

Тюнинг: что улучшить после “первых данных”

Когда система уже собирает данные, обычно требуется:

  • Увеличить/уменьшить scrape_interval под нагрузку.
  • Добавить больше источников метрик (несколько jobs в prometheus.yml).
  • Настроить парсинг логов (если требуется выделение полей) — это зависит от того, как вы пишете логи.
  • Оптимизировать запросы Grafana/Loki, чтобы они возвращали данные быстро (особенно на слабых устройствах).

Заключение

Мы настроили локальный сбор и визуализацию мониторинга в Termux: Prometheus для метрик (через exporter), Loki для логов (через Promtail) и Grafana для анализа и дашбордов. Дальнейшие шаги — тюнинг частоты сбора, управление ретеншеном, корректная организация логов в файлы и обеспечение стабильного сетевого доступа в вашей локальной среде.

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

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

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

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

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