Сбор и предоставление диагностической информации

Порядок действий по сбору диагностической информации зависит от компонента, в котором возникла проблема или ошибка.

Проблема или ошибка в работе службы каталогов (пакет inno-samba)

Для анализа проблемы или ошибки в работе службы каталогов требуется собрать и предоставить определенный набор информации с использованием поставляемых скриптов и других доступных инструментов.

Скрипты

В составе пакета inno-samba поставляются скрипты для сбора диагностической информации:

  • shell-скрипт inno-samba-diagnostics.sh (путь к скрипту после установки пакета inno-samba — /app/inno-samba/bin/) для автоматического сбора различных типов диагностической информации;

    В результате работы скрипта формируется архивный файл (.tgz), содержащий логи, конфигурационные файлы, информацию о состоянии сервисов и процессов, обеспечивающих работу службы каталогов, информацию о потреблении системных ресурсов, хосте и т. д.

    По умолчанию архив формируется в текущем каталоге с именем следующего формата: <полное доменное имя хоста>-<время создания файла с точностью до секунды>.tgz. При необходимости при вызове скрипта в качестве аргумента могут быть переданы путь и имя для формирования файла архива.

  • python-скрипт samba-mem-stat.py (путь к скрипту после установки пакета inno-samba — /app/inno-samba/bin/) для сбора статистики по использованию оперативной памяти.

    Скрипт позволяет собирать данные по расходованию памяти процессами Samba как в режиме разового запуска с выводом результатов в stdout, так и с заданной периодичностью в течение определенного периода времени с сохранением результатов анализа в виде набора файлов в указанном каталоге.

    Для каждого процесса скрипт собирает и выводит или сохраняет в файл следующие данные:

    • allocated — размер памяти, выделенной процессу аллокатором;

    • free — размер свободной памяти, доступной аллокатору;

    • rss(allocated) — размер страниц памяти, выделенных процессу операционной системой;

    • rss(mapped files) — размер файлов, проецируемых в адресное пространство процесса;

    • rss(total) — общий размер физической памяти, занятой процессом.

Дополнительные права для запуска скриптов не требуются. Достаточно корректного набора прав на каталоги, где хранятся логи Samba, логи Bind 9 и конфигурационные файлы, а также на каталоги, в которых будут сохраняться сформированные скриптами файлы с диагностической информацией.

Процедура сбора информации

В случае возникновения проблемы или ошибки в работе службы каталогов:

  1. Подготовьте максимально подробное описание того, в чем заключается проблема или ошибка и в каких условиях она возникла:

    • какие действия выполнялись перед возникновением проблемы или ошибки;

    • какой результат ожидалось получить;

    • к какому фактическому результату привели выполненные действия.

  2. Сформируйте архив с диагностической информацией с помощью скрипта /app/inno-samba/bin/inno-samba-diagnostics.sh:

    • выполните вход на сервер с ролью контроллера домена;

    • запустите скрипт, при необходимости указав путь для формирования файла архива и имя файла:

      /app/inno-samba/bin/inno-samba-diagnostics.sh /path/to/file/file-name

      Если проблема или ошибка имела место один раз и более не воспроизводится, запустите скрипт без изменения существующего уровня логирования.

      Если проблема или ошибка воспроизводится, предварительное увеличьте уровень логирования до 10 (см. «Логирование Samba»), воспроизведите проблему или ошибку и затем запустите скрипт.

  3. Если по какой-либо причине воспользоваться скриптом inno-samba-diagnostics.sh не удается, соберите максимальное количество информации доступными средствами:

    • версия Samba (samba --version);

    • логи Samba (для поиска пути к логам, например, используйте samba -b | grep LOFILEBASE или testparm -sv | grep 'log file');

    • логи Bind 9 (при использовании);

    • конфигурационные файлы и файлы с информацией о системе: /etc/resolv.conf, /etc/hosts, /etc/bind/named.conf (при использовании Bind 9), /proc/cpuinfo, /proc/meminfo, /etc/os-release;

    • информация о статусах (systemctl status) сервисов, связанных со службой каталогов: bind9 (при использовании), samba, inno-samba, samba-dc-exporter и т. д.;

    • информация о системных ресурсах (CPU, память, диски) и их использовании (free -l, mount, df <hdd>, iostat -d -c -t -x);

    • информация о процессах (ps -aux, ps -auxf, pstree).

    Поместите собранную информацию в архивный файл.

  4. Если проблема связана с избыточным потреблением памяти процессами Samba:

    • выполните вход на сервер с ролью контроллера домена, на котором имеет место проблема;

    • запустите скрипт для анализа потребления памяти процессами Samba:

      • чтобы запустить скрипт в режиме периодического формирования отчетов, укажите при запуске путь к каталогу для сохранения файлов отчетов (в качестве имени файла отчета используется время его запуска с точностью до секунды) и интервал запуска в минутах; например:

        /app/inno-samba/bin/samba-mem-stat.py /tmp/mem-stat 10
      • для разового запуска скрипта с выводом результатов в stdout выполните:

        /app/inno-samba/bin/samba-mem-stat.py
    • по истечении достаточного для фиксации проблемы времени добавьте сформированные файлы отчетов в архив.

  5. Если по какой-либо причине воспользоваться скриптом samba-mem-stat.py не удается, соберите необходимую информацию доступными средствами:

    • для сбора информации о размере памяти, выделенной процессу аллокатором, используйте утилиту smbcontrol; например:

      /app/inno-samba/bin/smbcontrol <PID> pool-usage | grep "uordblks\|fordblks"
    • для сбора информации о размере оперативной памяти, выделенной процессу операционной системой, используйте файлы с информацией о состоянии процесса; например:

      cat /proc/<PID>/status | grep 'RssFile|RssAnon'
  6. Если проблема связана с зависанием процесса или процессов одного из сервисов службы каталогов, подготовьте вывод трассировки стека командой pstack для данного процесса или процессов.

  7. Если это не противоречит требованиям информационной безопасности и другим подобным требованиям, рекомендуется включить и поддерживать на серверах генерацию файлов дампа ядра (core-файлов).

    При наличии core-файлов в случае возникновения проблемы или ошибки в работе одного или нескольких сервисов службы каталогов подготовьте их.

  8. Направьте подготовленное описание проблемы или ошибки, архив с диагностической информацией и иную необходимую информацию в службу поддержки или представителю ГК «Иннотех».

Данные мониторинга

Обеспечьте сбор и хранение метрик мониторинга, включая статистику использования системных ресурсов и метрики Samba, формируемые модулем inno-samba-dc-exporter (см. раздел «Мониторинг Samba»).

В случае возникновения проблемы или ошибки:

  • предоставьте данные мониторинга системных ресурсов (CPU, память, дисковое пространство и т. п.);

  • будьте готовы по запросу предоставить любые другие метрики, формируемые inno-samba-dc-exporter.

Проблема или ошибка в работе приложения «Менеджер службы каталогов» (пакет dsm)

Если проблема относится к приложению «Менеджер службы каталогов»:

  1. Составьте максимально подробное описание того, в чем заключается проблема или ошибка и в каких условиях она возникла:

    • какие действия выполнялись перед возникновением проблемы или ошибки;

    • какой результат ожидалось получить;

    • к какому фактическому результату привели выполненные действия.

  2. Если проблема или ошибка возникла при использовании пользовательского интерфейса при наличии технической возможности и отсутствии запретов, обусловленных требованиями информационной безопасности, сделайте скриншоты или видеозапись экрана таким образом, чтобы зафиксировать некорректное поведение приложения.

  3. Подготовьте логи (см. раздел «Снятие логов для приложения "Менеджер службы каталогов"»).

  4. Направьте подготовленное описание проблемы или ошибки, скриншоты или видеозапись экрана, логи и иную необходимую информацию в службу поддержки или представителю ГК «Иннотех».