Раздел содержит справочные материалы для системного администратора: чек-листы, шаблоны
документации, команды диагностики и краткие сценарии реагирования на инциденты.
7.1. Быстрый чек-лист состояния сервера
| Проверка |
Команда |
Норма |
| Версия ОС |
cat /etc/os-release |
Debian 12 / Ubuntu Server LTS |
| Hostname |
hostname |
saas-node-01 |
| IP-адрес |
hostname -I |
IP-адрес отображается |
| Маршрутизация |
ip route |
есть default via ... |
| DNS |
ping -c 4 debian.org |
домен разрешается |
| Свободное место |
df -h |
нет заполненных разделов |
| Оперативная память |
free -h |
нет критической нехватки RAM |
| Нагрузка |
uptime |
load average в допустимых пределах |
7.2. Быстрый чек-лист служб
sudo systemctl status ssh
sudo systemctl status nginx
sudo systemctl status php*-fpm
sudo systemctl status apache2
sudo systemctl status redis-server
Ожидаемый результат для каждой службы:
active (running)
7.3. Карта портов
| Порт |
Сервис |
Доступ |
Открывать наружу |
22/tcp |
SSH |
администрирование |
да |
80/tcp |
Nginx HTTP |
редирект на HTTPS |
да |
443/tcp |
Nginx HTTPS |
основной web-доступ |
да |
127.0.0.1:8080 |
Apache backend |
локальный backend |
нет |
127.0.0.1:6379 |
Redis |
локальный кэш / временные данные |
нет |
Проверка портов:
sudo ss -tulpn
sudo ufw status verbose
7.4. Шаблон карточки сервера
Карточка сервера
Hostname:
IP-адрес:
Операционная система:
Роль сервера:
CPU:
RAM:
Диск:
Сетевой интерфейс:
Gateway:
DNS:
Административный пользователь:
SSH-порт:
Web-порты:
Каталог приложения:
Конфигурация Nginx:
Конфигурация Apache:
Redis address:
Backup script:
Backup schedule:
Ответственный:
Дата последнего изменения:
7.5. Шаблон журнала изменений
| Дата |
Изменение |
Файл / сервис |
Исполнитель |
Проверка |
Результат |
|
|
|
|
|
успешно / ошибка |
7.6. Шаблон отчёта об инциденте
Отчёт об инциденте
Дата и время обнаружения:
Кто обнаружил:
Затронутый сервис:
Симптомы:
Команды проверки:
Найденная причина:
Выполненные действия:
Время восстановления:
Проверка после восстановления:
Что добавить в профилактику:
Ответственный:
7.7. Шаблон отчёта о восстановлении
Отчёт о восстановлении
Дата:
Восстанавливаемый объект:
Источник восстановления:
Backup-файл:
Путь восстановления:
Команды восстановления:
Результат проверки:
Состояние служб после восстановления:
Ошибки:
Исполнитель:
7.8. Команды диагностики Nginx
sudo nginx -t
sudo systemctl status nginx
sudo ss -tulpn | grep nginx
sudo tail -n 50 /var/log/nginx/saas-app.access.log
sudo tail -n 50 /var/log/nginx/saas-app.error.log
curl -I http://localhost
curl -k -I https://localhost
7.9. Команды диагностики PHP-FPM
php -v
php -m
ls /run/php/
sudo systemctl status php*-fpm
sudo journalctl -u php*-fpm -n 50
curl -k https://localhost
7.10. Команды диагностики Apache
sudo apache2ctl configtest
sudo systemctl status apache2
sudo ss -tulpn | grep 8080
curl http://127.0.0.1:8080
sudo tail -n 50 /var/log/apache2/saas-app.access.log
sudo tail -n 50 /var/log/apache2/saas-app.error.log
7.11. Команды диагностики Redis
redis-cli ping
redis-cli info server
redis-cli info memory
redis-cli info persistence
redis-cli set test_key "test"
redis-cli get test_key
redis-cli del test_key
sudo systemctl status redis-server
sudo journalctl -u redis-server -n 50
sudo ss -tulpn | grep 6379
7.12. Команды диагностики backup
ls -lh /opt/saas/backups
ls -l /opt/saas/scripts/backup-saas.sh
bash /opt/saas/scripts/backup-saas.sh
tail -n 50 /opt/saas/logs/backup.log
tail -n 50 /opt/saas/logs/backup-cron.log
sudo crontab -l
7.13. Сценарий: сайт не открывается
| Шаг |
Команда |
Что проверить |
| 1 |
ping IP_СЕРВЕРА |
сервер доступен по сети |
| 2 |
sudo systemctl status nginx |
Nginx запущен |
| 3 |
sudo nginx -t |
конфигурация без ошибок |
| 4 |
sudo ufw status verbose |
порты 80 и 443 открыты |
| 5 |
curl -k -I https://localhost |
HTTPS отвечает локально |
| 6 |
sudo tail -n 50 /var/log/nginx/saas-app.error.log |
нет критических ошибок |
7.14. Сценарий: ошибка 502 Bad Gateway
| Шаг |
Команда |
Что проверить |
| 1 |
sudo systemctl status php*-fpm |
PHP-FPM запущен |
| 2 |
ls /run/php/ |
существует socket PHP-FPM |
| 3 |
sudo nano /etc/nginx/sites-available/saas-app |
fastcgi_pass указывает на правильный socket |
| 4 |
sudo nginx -t |
конфигурация корректна |
| 5 |
sudo systemctl reload nginx |
конфигурация применена |
| 6 |
sudo journalctl -u php*-fpm -n 50 |
нет ошибок PHP-FPM |
7.15. Сценарий: Redis не отвечает
| Шаг |
Команда |
Что проверить |
| 1 |
redis-cli ping |
должен быть ответ PONG |
| 2 |
sudo systemctl status redis-server |
служба запущена |
| 3 |
sudo ss -tulpn | grep 6379 |
Redis слушает 127.0.0.1:6379 |
| 4 |
sudo nano /etc/redis/redis.conf |
указано bind 127.0.0.1 ::1 |
| 5 |
sudo journalctl -u redis-server -n 50 |
нет ошибок запуска |
7.16. Сценарий: backup не создаётся
| Шаг |
Команда |
Что проверить |
| 1 |
ls -l /opt/saas/scripts/backup-saas.sh |
скрипт существует и исполняемый |
| 2 |
bash /opt/saas/scripts/backup-saas.sh |
ручной запуск проходит без ошибок |
| 3 |
tail -n 50 /opt/saas/logs/backup.log |
журнал содержит результат выполнения |
| 4 |
sudo crontab -l |
cron-задача добавлена |
| 5 |
df -h |
на диске достаточно места |
7.17. Сценарий: сервер перегружен
| Шаг |
Команда |
Что проверить |
| 1 |
uptime |
load average |
| 2 |
htop |
какой процесс нагружает CPU/RAM |
| 3 |
free -h |
свободная память и swap |
| 4 |
df -h |
свободное место на диске |
| 5 |
sudo journalctl -p err -n 50 |
последние системные ошибки |
7.18. Минимальная схема инфраструктуры
Пользователь
|
| HTTPS :443
v
Nginx
|
| FastCGI / PHP-FPM
v
PHP-приложение
|
| localhost
v
Redis 127.0.0.1:6379
Дополнительно:
Apache 127.0.0.1:8080
Backup /opt/saas/backups
Logs /var/log/nginx, /var/log/apache2, /opt/saas/logs
7.19. Минимальный список файлов для резервного копирования
/var/www/saas-app
/etc/nginx/sites-available/saas-app
/etc/apache2/sites-available/saas-app.conf
/etc/nginx/ssl
/opt/saas/data
/opt/saas/scripts/backup-saas.sh
/var/lib/redis/dump.rdb