Termux – это мощный эмулятор терминала для Android, предоставляющий полноценную Linux‑окружение. С его помощью можно разрабатывать и запускать скрипты, управлять пакетами и даже создавать интерактивные дашборды для мониторинга системных журналов в реальном времени. В этой статье мы рассмотрим, как собрать такой дашборд, используя комбинацию tmux, journalctl, multitail и небольших Bash‑скриптов.
Что понадобится
- Устройство Android с установленным
Termux(рекомендована версия 0.118+). - Базовые знания Bash и работы с Linux‑журналами.
- Пакеты:
tmux,procps,util-linux,multitail,jq(по желанию для парсинга JSON‑логов).
Установка необходимых пакетов
pkg update && pkg upgrade -y
pkg install tmux procps util-linux multitail jq -y
После установки убедитесь, что все утилиты доступны:
which tmux && which journalctl && which multitail
Создание базового скрипта дашборда
Мы будем использовать tmux для разделения окна терминала на несколько панелей, каждая из которых будет отображать определённый поток журналов.
Шаг 1 – Инициализация сессии tmux
#!/usr/bin/env bash
SESSION="log_dashboard"
# Если сессия уже существует – присоединяемся
if tmux has-session -t $SESSION 2>/dev/null; then
tmux attach -t $SESSION
exit 0
fi
# Создаём новую сессию
tmux new-session -d -s $SESSION -n "Main"
# Разделяем окно на 3 вертикальные панели
tmux split-window -h -t $SESSION:0
tmux split-window -v -t $SESSION:0.1
# Запускаем мониторинг в каждой панели
# 1️⃣ Системные сообщения (priority=3)
tmux send-keys -t $SESSION:0.0 "journalctl -f -p 3" C-m
# 2️⃣ Ошибки ядра
tmux send-keys -t $SESSION:0.1 "journalctl -f -k" C-m
# 3️⃣ Пользовательские логи (например, nginx)
tmux send-keys -t $SESSION:0.2 "journalctl -f -u nginx" C-m
# Подключаемся к сессии
tmux attach -t $SESSION
Сохраните файл, например, как dashboard.sh, сделайте его исполняемым (chmod +x dashboard.sh) и запустите.
Шаг 2 – Улучшение визуализации с multitail
Для более гибкого отображения можно заменить journalctl -f на multitail, который поддерживает подсветку, фильтрацию и объединение нескольких потоков в одной панели.
# Пример использования multitail для объединения системных и kernel‑логов
multitail -c -I /var/log/syslog -I /var/log/kern.log \
-ci "Syslog" -ci "Kernel"
# В tmux‑панели
tmux send-keys -t $SESSION:0.0 "multitail -c -I /var/log/syslog -I /var/log/kern.log" C-m
Шаг 3 – Автоматическое обновление конфигурации
Если в системе появляются новые сервисы, их логи можно добавить в дашборд без перезапуска. Для этого создадим небольшую функцию, которая будет перечитывать список сервисов каждые 60 секунд.
update_panels() {
local services=$(systemctl list-units --type=service --state=running --no-legend | awk '{print $1}')
local idx=0
for svc in $services; do
# Добавляем новую панель, если её ещё нет
if ! tmux list-panes -t $SESSION | grep -q "$svc"; then
tmux split-window -v -t $SESSION:0.$idx
tmux send-keys -t $SESSION:0.$idx "journalctl -f -u $svc" C-m
fi
idx=$((idx+1))
done
}
# Запускаем в фоне
while true; do
update_panels
sleep 60
done &
Эта «мульти‑watch»‑логика позволяет дашборду оставаться актуальным даже в динамично меняющейся инфраструктуре.
Оптимизация работы в Termux
- Уменьшение нагрузки: используйте
journalctl --since "5 minutes ago"вместо бесконечного-f, если вам нужны только последние записи. - Сохранение истории: перенаправляйте вывод в файлы
~/logs/*.logдля последующего анализа. - Цветовая схема: в
tmuxзадайтеset -g default-terminal "screen-256color", а вmultitailиспользуйте параметры-cи-ciдля подсветки.
Запуск дашборда при старте Termux
Для автоматического старта добавьте строку в файл ~/.bashrc:
if [ -z "$TMUX" ]; then
~/dashboard.sh &
fi
Теперь при открытии Termux дашборд будет запущен в отдельной tmux‑сессии.
Заключение
Создание терминального дашборда в Termux – эффективный способ получать актуальную информацию о состоянии Linux‑системы прямо на мобильном устройстве. Комбинация tmux, journalctl и multitail обеспечивает гибкость, масштабируемость и визуальную наглядность.
Если вам требуется более сложная аналитика, интеграция с внешними системами (ELK, Grafana) или индивидуальная настройка под ваши бизнес‑процессы, команда RybinskLab готова предложить профессиональные услуги: разработка кастомных мониторинговых решений, аудит безопасности, обучение работе с Termux и Linux‑инструментами. Свяжитесь с нами, и мы поможем вывести ваш мониторинг на новый уровень.