Termux предоставляет полноценную Linux‑окружение на Android‑устройствах, позволяя запускать серверные инструменты прямо на смартфоне. В этой статье мы рассмотрим, как собрать полноценную систему мониторинга, используя Prometheus для сбора метрик и Grafana для их визуализации.
1. Подготовка среды в Termux
Для начала убедитесь, что у вас установлен последний релиз Termux и обновлены пакеты:
pkg update && pkg upgrade -y
Установим базовые инструменты: git, wget, curl и proot-distro (для удобного управления дистрибутивами).
pkg install -y git wget curl proot-distro
Далее создадим контейнер Ubuntu, который будет служить базой для Prometheus и Grafana.
proot-distro install ubuntu-20.04
proot-distro login ubuntu-20.04
2. Установка Prometheus
Внутри Ubuntu‑контейнера загрузим последнюю стабильную версию Prometheus.
# Обновляем список пакетов
apt update && apt install -y wget tar
# Скачиваем архив
wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz
# Распаковываем
tar xvfz prometheus-2.53.0.linux-amd64.tar.gz
# Перемещаем бинарники в /usr/local/bin
mv prometheus-2.53.0.linux-amd64/prometheus /usr/local/bin/
mv prometheus-2.53.0.linux-amd64/promtool /usr/local/bin/
# Создаём директорию для конфигурации и данных
mkdir -p /etc/prometheus /var/lib/prometheus
# Копируем пример конфигурации
cp prometheus-2.53.0.linux-amd64/prometheus.yml /etc/prometheus/
# Даем права доступа
chown -R root:root /etc/prometheus /var/lib/prometheus
Запустим Prometheus в фоне:
nohup prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.listen-address=0.0.0.0:9090 &
Проверьте доступность по адресу http://.
3. Установка Grafana
Grafana поставляется в виде deb‑пакета. Добавим официальный репозиторий и установим:
apt install -y software-properties-common apt-transport-https
wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -
add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
apt update && apt install -y grafana
Запустим службу Grafana и включим автозапуск:
systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server
Grafana будет слушать порт 3000. Откройте http:// в браузере. По умолчанию логин/пароль – admin / admin.
4. Конфигурация Prometheus
Для демонстрации добавим простой экспортёр – node_exporter, который будет отдавать системные метрики.
# Скачиваем node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-amd64.tar.gz
# Распаковываем
tar xvfz node_exporter-1.8.0.linux-amd64.tar.gz
# Перемещаем бинарник
mv node_exporter-1.8.0.linux-amd64/node_exporter /usr/local/bin/
# Запускаем в фоне
nohup node_exporter --web.listen-address=0.0.0.0:9100 &
Отредактируем /etc/prometheus/prometheus.yml, добавив новый job:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
Перезапустим Prometheus, чтобы применить изменения:
pkill prometheus
nohup prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.listen-address=0.0.0.0:9090 &
5. Подключение Grafana к Prometheus
В веб‑интерфейсе Grafana:
- Перейдите в «Configuration» → «Data Sources».
- Нажмите «Add data source», выберите
Prometheus. - В поле URL укажите
http://и нажмите «Save & Test».:9090
Если всё настроено корректно, Grafana отобразит сообщение «Data source is working».
6. Создание дашборда
Для быстрого старта можно импортировать готовый дашборд «Node Exporter Full». В Grafana нажмите «Create» → «Import», введите ID 1860 и выберите ранее созданный источник данных Prometheus.
После импорта появятся графики CPU, памяти, диска и сети, собираемые с вашего Android‑устройства.
7. Заключение
Мы успешно развернули в Termux полноценную систему мониторинга, используя Prometheus для сбора метрик и Grafana для их визуализации. Такой набор инструментов позволяет в реальном времени отслеживать состояние устройства, а также экспериментировать с кастомными экспортёрами и алертингом.
Если вам требуется более глубинная настройка, автоматизация развертывания или интеграция с внешними системами, команда RybinskLab готова предоставить профессиональные услуги по DevOps, контейнеризации и мониторингу. Мы поможем оптимизировать инфраструктуру под любые задачи, от небольших мобильных проектов до крупномасштабных облачных решений.