Мониторинг и диагностика Bedrock сервера
Содержание
- 1 Мониторинг и диагностика Bedrock сервера
- 1.1 1. Подготовка
- 1.2 2. Установка инструментов мониторинга
- 1.3 3. Мониторинг процессов
- 1.4 4. Мониторинг сети
- 1.5 5. Мониторинг дискового I/O
- 1.6 6. Анализ логов
- 1.7 7. Создание скриптов мониторинга
- 1.8 8. Диагностика проблем
- 1.9 9. Мониторинг в реальном времени
- 1.10 10. Устранение неполадок
- 1.11 Заключение
Мониторинг и диагностика 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):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для высоконагруженных Bedrock серверов
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних серверов
Наши специалисты помогут с настройкой мониторинга и диагностики Bedrock серверов!