Ответ
При диагностике проблем на сервере я иду по цепочке: ресурсы -> процессы -> сеть -> логи.
1. Проверка ресурсов (CPU, память, диск):
htop/top: Первый взгляд на нагрузку CPU и память. Вhtopсмотрю на load average и процессы, потребляющие ресурсы.free -h/vmstat 2 5: Детали по использованию RAM и свопу.- *
df -h/ `du -sh `:** Поиск заполненных разделов диска и каталогов-«пожирателей» места. iostat -xz 2: Показывает утилизацию и await дисков (I/O bottleneck).
2. Анализ процессов и служб:
systemctl status <service>: Проверка состояния и последних логов конкретного сервиса.ss -tulnp/netstat -tulnp: Показывает, какие процессы слушают какие порты (критично, если служба не стартовала).ps auxf/pstree: Понимание дерева процессов.
3. Сетевая диагностика:
ping/mtr: Проверка базовой доступности и трассировки маршрута.curl -I <url>/telnet <host> <port>: Проверка доступности конкретного HTTP-сервиса или TCP-порта.nslookup <domain>: Диагностика проблем с DNS.
4. Анализ логов (ключевой этап):
journalctl -u <service> -f --since "10 minutes ago": Просмотр логов конкретного сервиса в реальном времени.journalctl -p err -b: Показать все ошибки с последней загрузки.tail -f /var/log/syslog/tail -f /var/log/nginx/error.log: Прямой просмотр логов приложения.
Пример быстрой диагностики при высокой нагрузке:
# 1. Что нагружает CPU?
top -b -n 1 | head -20
# 2. Есть ли память? Своп?
free -h
# 3. Какие диски загружены?
iostat -x 2 3 | grep -A1 "Device"
# 4. Кто слушает порты? Может, служба упала?
ss -tulnp | grep :80
# 5. Смотрим логи проблемного сервиса (например, nginx)
sudo journalctl -u nginx --since "1 hour ago" | tail -50