Диагностика работы стенда SimpleOne на Linux сервере

Инструкция представлена в ознакомительных целях, изучение работы команд рекомендуется проводить на тестовых средах

Диагностика Docker контейнеров

  • Имена всех контейнеров и их статус
    docker ps -a --format "table {{.Names}}\t{{.Status}}"

  • Вывести контейнеры которые НЕ в статусе UP, (пустой вывод когда всё запущено).
    docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.State}}" | grep -v "Up"

  • Нагрузка на контейнеры (cpu, ram, net i/o, block i/o)
    watch docker stats --no-stream

  • Вывести логи контейнера за период времени
    (например, proxy, haproxy, backend-api, postgres, minio, kafka, rabbitmq и любых других)
    1 час
    docker logs --since 1h backend-api
    10 минут
    docker logs --since 10m backend-api

  • Просмотр логов контейнера начиная с текущего момента в реальном времени
    docker logs -fn 0 postgres

  • Вывод логов конкретного периода времени
    docker logs --since "2024-07-26T11:30:00" --until "2024-07-26T12:30:00" postgres

  • Утилизация диска docker контейнерами (OverlayFS), вывести 5 с наибольшим размером
    docker ps -as --format "{{.Names}}: {{.Size}}" | sort -hr -k2 | head -n 5

  • Сохранить логи за последний час:
    Создаём директорию в которую будем сохранять логи
    mkdir logs-"$(hostname -s)-$(date +%Y-%m-%d)"
    Переходим в созданную директорию через cd и запускаем команду формирования файлов с логами каждого контейнера
    docker ps -a --format '{{.Names}}' | xargs -I {} sh -c 'docker logs --since "1h" {} > {}.log 2>&1'

Вычислительные мощности сервера (cpu/ram)

  • Интерактивный мониторинг процессов и нагрузки
    htop

  • Размер RAM, SWAP и их утилизация
    free -hw

  • Данные о количестве ядер и процессоре
    lscpu

Диски сервера

  • Данные о блочных устройствах сервера (жесткие диски, накопители, разделы, логические тома)
    lsblk

  • Вывод информации об использовании файловых систем и их типе
    df -Th

  • Размер конкретных директорий
    du -sh /data/postgres/pgdata/pgroot/data/pg_wal/

  • Размер всех файлов и директорий в текущей ./ с сортировкой по убыванию
    du -sh * | sort -hr

  • Утилита для анализа использования дискового пространства ncdu
    ncdu /

  • Утилизация диска docker контейнерами (OverlayFS), вывести 5 с наибольшим размером
    docker ps -as --format "{{.Names}}: {{.Size}}" | sort -hr -k2 | head -n 5

Сертификаты безопасности сайта

  • Проверка ответа сервера и сертификата по доменному имени извне:
    curl -v https://stage001-rusakov.simpleone.ru/

  • Показать вольюмы proxy контейнера (где размещены сертификаты на сервере и в контейнере)
    docker inspect proxy | jq '.[].Mounts'

  • Данные публичного ключа и сертификата (домен, дата действия), выполняется из директории с сертификатами (bind volume контейнера proxy):
    openssl x509 -in public.crt -text -noout | grep -E "Subject:|Not Before|Not After"

  • С каким сертификатом отвечает сейчас proxy на сервере:
    openssl s_client -connect localhost:443 -servername localhost 2>/dev/null | openssl x509 -noout -dates -subject

Сетевые настройки и DNS

  • Наличие выхода в интернет на сервере
    ping 1.1.1.1

  • Сетевые интерфейсы и маршруты сервера
    ip a
    ip r

  • Публичный адрес, с которого сервер выходит в интернет + проверка разрешения доменов с сервера
    curl 2ip.ru

  • Конфиги определяющие как с сервера разрешаются доменные имена
    cat /etc/resolv.conf
    cat /etc/hosts

  • Проверка доступности и потерь пакетов извне, пинг по домену
    ping stage001-rusakov.simpleone.ru

  • Сетевая трассировка по домену
    traceroute stage001-rusakov.simpleone.ru
    mtr stage001-rusakov.simpleone.ru

  • Разрешение извне доменного имени с указанием IP адреса сервера или IP балансировщика за которым он работает
    host stage001-rusakov.simpleone.ru
    nslookup stage001-rusakov.simpleone.ru

6 лайков