Мониторинг и диагностика Bedrock сервера

Материал из ARK-HOSTER.RU | Документация хостинга
Версия от 10:16, 3 ноября 2025; Admin (обсуждение | вклад) (Новая страница: «= Мониторинг и диагностика Bedrock сервера = == 1. Подготовка == * Убедитесь, что Bedrock сервер уст…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Мониторинг и диагностика Bedrock сервера

1. Подготовка

  • Убедитесь, что Bedrock сервер установлен и работает.
  • Установите необходимые инструменты мониторинга.
  • Имейте права доступа для выполнения диагностических команд.
  • Рекомендуется использовать Ubuntu 24.04 LTS.

2. Установка инструментов мониторинга

Базовые инструменты

1. Обновите систему:

sudo apt update
sudo apt upgrade -y

2. Установите необходимые пакеты:

sudo apt install -y htop iotop nethogs netstat-nat curl wget jq bc

3. Проверьте установку:

which htop
which iotop
which nethogs

3. Мониторинг процессов

Проверка статуса сервера

1. Найдите процесс Bedrock:

ps aux | grep bedrock_server

2. Проверьте PID процесса:

pgrep bedrock_server

3. Проверка через systemd:

sudo systemctl status minecraft-bedrock

Мониторинг использования ресурсов

1. Использование CPU и памяти:

htop -p $(pgrep bedrock_server)

2. Детальная информация о процессе:

PID=$(pgrep bedrock_server)
ps -p $PID -o pid,ppid,cmd,%mem,%cpu,rss,vsz

3. Использование памяти в реальном времени:

watch -n 1 "ps -p $(pgrep bedrock_server) -o pid,rss,%mem,%cpu"

4. Мониторинг сети

Проверка портов

1. Проверка открытых портов:

sudo netstat -ulnp | grep 19132
sudo ss -ulnp | grep 19132

2. Проверка подключений:

sudo netstat -an | grep 19132
sudo ss -an | grep 19132

3. Тестирование подключения:

nc -u -z localhost 19132
nc -u -v localhost 19132

Мониторинг сетевого трафика

1. Мониторинг трафика в реальном времени:

sudo nethogs

2. Статистика сети:

sudo iftop

3. Сетевые интерфейсы:

ip -s link show

5. Мониторинг дискового I/O

Использование диска

1. Проверка свободного места:

df -h /opt/bedrock

2. Использование inode:

df -i /opt/bedrock

3. Размер директорий:

du -sh /opt/bedrock/*
du -h --max-depth=1 /opt/bedrock

Мониторинг I/O операций

1. Мониторинг в реальном времени:

sudo iotop

2. Статистика I/O:

sudo iostat -x 1 5

6. Анализ логов

Просмотр логов сервера

1. Логи systemd:

sudo journalctl -u minecraft-bedrock -f
sudo journalctl -u minecraft-bedrock --since "1 hour ago"

2. Логи Bedrock:

tail -f /opt/bedrock/logs/*.log
tail -n 100 /opt/bedrock/logs/latest.log

3. Поиск ошибок:

grep -i error /opt/bedrock/logs/*.log
grep -i "crash" /opt/bedrock/logs/*.log

Фильтрация логов

1. Подключения игроков:

grep -i "connected" /opt/bedrock/logs/*.log
grep -i "disconnected" /opt/bedrock/logs/*.log

2. Команды:

grep -i "command" /opt/bedrock/logs/*.log

3. Ошибки:

grep -i "error\|exception\|failed" /opt/bedrock/logs/*.log | tail -50

7. Создание скриптов мониторинга

Базовый скрипт мониторинга

1. Создайте скрипт:

sudo nano /usr/local/bin/bedrock-monitor.sh

2. Добавьте содержимое:

\#!/bin/bash

SERVICE_NAME="minecraft-bedrock"
LOG_FILE="/var/log/bedrock-monitor.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')

log_message() {
    echo "[$DATE] $1" | tee -a "$LOG_FILE"
}

\# Проверка статуса сервиса
if systemctl is-active --quiet "$SERVICE_NAME"; then
    STATUS="RUNNING"
else
    STATUS="STOPPED"
    log_message "WARNING: Service is not running!"
fi

\# Получение информации о процессе
PID=$(pgrep bedrock_server)
if [ ! -z "$PID" ]; then
    CPU=$(ps -p $PID -o %cpu | tail -1 | tr -d ' ')
    MEMORY_MB=$(ps -p $PID -o rss | tail -1 | awk '{print $1/1024}')
    MEMORY_GB=$(echo "scale=2; $MEMORY_MB/1024" | bc)
    
    log_message "Status: $STATUS | CPU: ${CPU}% | Memory: ${MEMORY_GB}GB"
else
    log_message "WARNING: Process not found!"
fi

\# Проверка порта
if nc -u -z localhost 19132 2>/dev/null; then
    PORT_STATUS="OPEN"
else
    PORT_STATUS="CLOSED"
    log_message "WARNING: Port 19132 is not accessible!"
fi

log_message "Port status: $PORT_STATUS"

\# Проверка использования диска
DISK_USAGE=$(df -h /opt/bedrock | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$DISK_USAGE" -gt 80 ]; then
    log_message "WARNING: High disk usage: ${DISK_USAGE}%"
fi

3. Сделайте исполняемым:

sudo chmod +x /usr/local/bin/bedrock-monitor.sh

4. Добавьте в cron (каждые 5 минут):

sudo crontab -e

5. Добавьте задачу:

*/5 * * * * /usr/local/bin/bedrock-monitor.sh

Расширенный скрипт мониторинга

1. Создайте расширенный скрипт:

sudo nano /usr/local/bin/bedrock-monitor-advanced.sh

2. Добавьте содержимое:

\#!/bin/bash

SERVICE_NAME="minecraft-bedrock"
LOG_FILE="/var/log/bedrock-monitor-advanced.log"
ALERT_EMAIL="admin@example.com"
DATE=$(date '+%Y-%m-%d %H:%M:%S')

log_message() {
    echo "[$DATE] $1" | tee -a "$LOG_FILE"
}

send_alert() {
    echo "$1" | mail -s "Bedrock Server Alert" "$ALERT_EMAIL" 2>/dev/null || log_message "ALERT: $1"
}

\# Проверка статуса сервиса
if ! systemctl is-active --quiet "$SERVICE_NAME"; then
    log_message "CRITICAL: Service is not running!"
    send_alert "Bedrock server service is DOWN"
fi

\# Проверка процесса
PID=$(pgrep bedrock_server)
if [ -z "$PID" ]; then
    log_message "CRITICAL: Process not found!"
    send_alert "Bedrock server process not found"
    exit 1
fi

\# Использование CPU
CPU=$(ps -p $PID -o %cpu | tail -1 | tr -d ' ')
if (( $(echo "$CPU > 80" | bc -l) )); then
    log_message "WARNING: High CPU usage: ${CPU}%"
    send_alert "High CPU usage: ${CPU}%"
fi

\# Использование памяти
MEMORY_MB=$(ps -p $PID -o rss | tail -1 | awk '{print $1/1024}')
MEMORY_GB=$(echo "scale=2; $MEMORY_MB/1024" | bc)
if (( $(echo "$MEMORY_MB > 6144" | bc -l) )); then
    log_message "WARNING: High memory usage: ${MEMORY_GB}GB"
    send_alert "High memory usage: ${MEMORY_GB}GB"
fi

\# Проверка порта
if ! nc -u -z localhost 19132 2>/dev/null; then
    log_message "CRITICAL: Port 19132 is not accessible!"
    send_alert "Port 19132 is not accessible"
fi

\# Проверка диска
DISK_USAGE=$(df /opt/bedrock | tail -1 | awk '{print $5}' | sed 's/%//')
DISK_FREE=$(df -h /opt/bedrock | tail -1 | awk '{print $4}')
if [ "$DISK_USAGE" -gt 90 ]; then
    log_message "CRITICAL: Disk space critical: ${DISK_USAGE}% used, ${DISK_FREE} free"
    send_alert "Critical disk usage: ${DISK_USAGE}%"
fi

\# Проверка сетевых подключений
CONNECTIONS=$(netstat -an | grep :19132 | wc -l)
log_message "Network connections: $CONNECTIONS"

\# Сводная информация
log_message "=== Status Summary ==="
log_message "Service: $STATUS | CPU: ${CPU}% | Memory: ${MEMORY_GB}GB | Disk: ${DISK_USAGE}% | Connections: $CONNECTIONS"
log_message "====================="

3. Сделайте исполняемым:

sudo chmod +x /usr/local/bin/bedrock-monitor-advanced.sh

8. Диагностика проблем

Проверка производительности

1. Создайте скрипт диагностики:

sudo nano /usr/local/bin/bedrock-diagnostics.sh

2. Добавьте содержимое:

\#!/bin/bash

echo "=== Bedrock Server Diagnostics ==="
echo ""

\# Информация о системе
echo "=== System Information ==="
uname -a
echo ""

\# Использование ресурсов
echo "=== Resource Usage ==="
free -h
echo ""
df -h
echo ""

\# Статус сервиса
echo "=== Service Status ==="
sudo systemctl status minecraft-bedrock --no-pager -l
echo ""

\# Процесс
echo "=== Process Information ==="
PID=$(pgrep bedrock_server)
if [ ! -z "$PID" ]; then
    ps -p $PID -o pid,ppid,user,cmd,%mem,%cpu,rss,vsz
    echo ""
    echo "Open files:"
    lsof -p $PID | wc -l
else
    echo "Process not found!"
fi
echo ""

\# Сеть
echo "=== Network Information ==="
sudo netstat -ulnp | grep 19132
echo ""

\# Диск
echo "=== Disk Usage ==="
du -sh /opt/bedrock/*
echo ""

\# Логи
echo "=== Recent Logs ==="
tail -n 20 /opt/bedrock/logs/*.log 2>/dev/null | tail -20
echo ""

echo "=== Diagnostics Complete ==="

3. Сделайте исполняемым:

sudo chmod +x /usr/local/bin/bedrock-diagnostics.sh

4. Использование:

sudo /usr/local/bin/bedrock-diagnostics.sh

9. Мониторинг в реальном времени

Использование htop

1. Мониторинг процесса:

htop -p $(pgrep bedrock_server)

2. Мониторинг всех процессов:

htop

Использование watch

1. Мониторинг статуса:

watch -n 1 'sudo systemctl status minecraft-bedrock --no-pager'

2. Мониторинг ресурсов:

watch -n 1 'ps -p $(pgrep bedrock_server) -o pid,%cpu,%mem,rss,vsz,cmd'

10. Устранение неполадок

Проблемы с производительностью

1. Высокое использование CPU:

  • Проверьте количество игроков
  • Уменьшите view-distance в server.properties
  • Оптимизируйте настройки сервера

2. Высокое использование памяти:

  • Проверьте утечки памяти
  • Уменьшите view-distance
  • Перезапустите сервер

3. Проблемы с сетью:

  • Проверьте настройки файрвола
  • Проверьте сетевую связность
  • Проверьте использование пропускной способности

Заключение

Мониторинг и диагностика Bedrock сервера позволяет своевременно выявлять и устранять проблемы. Регулярный мониторинг обеспечивает стабильную работу сервера и высокое качество обслуживания игроков.

Для размещения ваших Bedrock серверов с мониторингом на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой мониторинга и диагностики Bedrock серверов!