Перейти к основному содержимому
Версия: Privileged Access Manager 2.10

Настройка и сбор логов

Расположение логов

Логи всех .Net компонентов и утилит пишутся в текстовые файлы, расположенные в папках logs:

  • /etc/indeed/indeed-pam/logs/Имя_Компонента/
  • C:\inetpub\wwwroot\pam\Имя_Компонента\logs\
  • C:\Program Files\Indeed\Indeed PAM\Gateway\ProxyApp\logs\
  • [indeed-pam-windows\MISC]\папки утилит\logs\

Описание логов компонентов Core, IDP, LS

ФайлcoreidpLSСодержимое
commands.log++все логи команд
queries.log++все логи запросов
errors.log+++все ошибки PAM/LS
jobs.log+все логи задач (job)
events.log+все логи, связанные с Событиями
connections.log+все логи сервисных подключений
db.log+++логи, связанные с доступом к БД
hangfire.log+++все логи от Hangfire
ils.log+все логи от LogServer client
full-yyyy-MM-dd.log+++все логи PAM/LS с указанием имени логгера и traceId
stdout_yyyyMMddHHmmss_xxxx.log+++логи c ошибками от IIS

Логирование скрипта установки

Скрипт установки run-deploy.sh может прерваться с ошибкой. В этом случае нужно отправить файл с логами в техническую поддержку.

Пример ошибки скрипта:

Расположение файла с логами: indeed-pam-linux/logs/deploy.log.

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

run-deploy.sh -vvv

ProxyApp

Логи пишутся в папку C:\Program Files\Indeed\Indeed PAM\Gateway\ProxyApp\logs\``shortDate\processId, чтобы разделить логи от нескольких запусков в один день. В папке может быть 2 файла с логами:

  • ffmpeg.log — отладочная информация от ffmpeg
  • Pam.Proxy.App.log — все прочие логи

Утилиты

Все логи пишутся в один файл без даты в имени, с названием утилиты, например Pam.Tools.Migrator.log

Логирование нативных компонент

К нативным компонентам относятся:

  • MstscAddin
  • WindowsAgent
  • Pam.Service
  • Pam.Putty
  • ProcessCreateHook

Для включения / получения логов можно использовать утилиту Indeed GetLog. Логи сохраняются в директорию C:\\Windows\\System32\\LogFiles\\Indeed-ID. Для каждого процесса создается своя отдельная директория.

Логирование в nix компонентах

SSH Proxy

Все логи пишутся в один файл, ${ISODate}.log
Файлы располагаются по пути /etc/indeed/indeed-pam/logs/ssh``/

PAMSU

Все логи, генерируемые нашим кодом, пишутся в один файл, ${ISODate}.log.
Файлы располагаются по пути /opt/Indeed-PAM/pamsu/logs/.

Помимо этого существует возможность активировать логирование кода, предоставленного sudo.
Это делается через изменения в файле /etc/pamsu.conf . Правила настройки и управления такие же как у sudo. См.: man sudo.conf

Настройка логирования

Конфигурация логирования компонентов .Net находится в файлах appsettings.json.

Настройка appsettings.json

Файлы appsettings.json располагаются по пути:

  • C:\inetpub\wwwroot\pam\Имя_Компонента\appsettings.json — сервер управления Windows
  • C:\Program Files\Indeed\IndeedPAM\Gateway\ProxyApp\appsettings.json — сервер доступа Windows
  • /etc/indeed/indeed-pam/Имя_Компонента/appsettings.json — сервер управления или доступа Linux

Секция NLog

  • Параметр variables — раздел, в котором можно задать переменные для дальнейшей настройки логирования. Количество переменных не ограничено. (не обязательный параметр).
     "variables":  {
    "minLevel": "Trace",
    "dbMinLevel": "Info"
    }
примечание

Чтобы вызывать заданную переменную при дальнейшей настройке ее необходимо будет записывать в виде ${Имя_Переменной}

Для каждого лога можно настроить свой уровень логирования.

Существуют следующие уровни логирования:

Уровень логированияПорядковый номерСтрогость логирования
Trace0Самый подробный уровень. Используется для разработки и редко используется в производстве.
Debug1Отладка поведения приложения по интересующим внутренним событиям.
Info2Информация, отражающая ход выполнения или события жизненного цикла приложения.
Warn3Предупреждения о проблемах проверки или временных сбоях, которые можно устранить.
Error4Ошибки, при которых функциональность не удалась или было получено исключение.
Fatal5Самый критический уровень. Приложение будет прервано.

Обычная конфигурация заключается в указании минимального уровня, в который включены этот уровень и более высокие уровни. Например, если минимальный уровень равен Info, то Info, Warn, Error и Fatal регистрируются, но Debug и Trace игнорируются.

  • Параметр rules — определяет правила маршрутизации логов.
    • У каждого типа лога есть свое имя, которое не рекомендуется редактировать.
      "Rules": {
      "03_Hangfire": {
      "logger": "Hangfire.*",
      "minLevel": "Info",
      "writeTo": "hangfireFile",
      "final": true
      },
      "20_Errors": {
      "logger": "*",
      "minLevel": "Error",
      "writeTo": "errorsFile"
      },
      "40_Commands": {
      "logger": "Idp.Application.*Command",
      "minLevel": "${minLevel}",
      "writeTo": "commandsFile",
      "Enabled": false
      },
      }

Для каждого типа лога можно указать следующие теги:

logger —  Имя логгера — обычно это имя ассоциированного со строчкой лога элемента в коде (имя класса). Может содержать подстановочные символы (* и ?) Таким образом имя правила '*' соответствует любому имени логгера, а 'Common*' соответствует всем логгерам, чьи имена начинаются с 'Common'.  Не рекомендуется редактировать этот параметр.

LogLevel — уровни логирования, можно указать сразу несколько:

  1. minlevel — минимальный уровень логирования
  2. maxlevel — максимальный уровень логирования
  3. level — один уровень для логирования
  4. levels — уровни логирования, записанные через запятую

writeTo — разделенный запятыми список файлов для записи логов

final — Если текущее правило помечено как final и его имя соответствует имени логгера, то NLog завершает на нем построение цепочек для всех уровней логирования, включенных для данного правила. Или Логи, помеченные как final, перестают записываться в логи, находящиеся по цепочке ниже.

enabled — для отключения правила логирования без его удаления необходимо проставить флаг false

  • Параметр targets – определяет log targets/outputs (необязательный параметр)
  • Параметр extensions – загружает расширения NLog из файла *.dll (необязательный параметр)
  • Параметр include – включает внешний конфигурационный файл (необязательный параметр)

Сборка логов из браузера

Chrome, Edge, Yandex

  1. Запустите браузер, перейдите на страницу в которой выходит ошибка, запустите Инструменты разработчика (нажмите Ctrl+Shift+I или F12).
  2. Во вкладке Консоль нажмите иконку для очистки консоли, включите опции Детализация, Информация, Предупреждения, Ошибки:
  3. Нажмите значок шестеренки (Настройки консоли) и отметьте опции Сохранять журнал, Журнал запросов XMLHttpRequests:
  4. Во вкладке Сеть включите настройки Сохранять журнал, Отключить кеш, тип фильтра Все, как на скриншоте ниже:
  5. Нажмите иконку для сброса списка запросов и не закрывая консоль разработчика выполните последовательность действий, приводящих к ошибке.
  6. Нажмите по полю запросов правой кнопкой мыши, выберите пункт Сохранить все как HAR с контентом и сохраните файл:
  7. Перейдите во вкладку Консоль, нажмите правой кнопкой по сообщениям консоли, выберите пункт Сохранить как и сохраните файл:
  8. Сохраненные файлы перешлите в техническую поддержку. 

Firefox

  1. Запустите браузер, перейдите на страницу в которой выходит ошибка, запустите Инструменты веб-разработчика (нажмите Ctrl+Shift+I или F12).
  2. Во вкладке Консоль нажмите иконку корзины для очистки, включите опции Ошибки, Предупреждения, Лог, Инфо, Отладка. В настройках консоли отметьте все опции, в т.ч. Непрерывные логи:
  3. Во вкладке Сеть также нажмите иконку корзины для очистки, отключите фильтр, выбрав “Все”, нажмите значок шестеренкии отметьте опцию Непрерывные логи
  4. Не закрывая консоль разработчика выполните последовательность действий, приводящих к ошибке.
  5. Далее в консоли разработчика во вкладке Сеть нажмите значок шестеренки, выберите пункт Сохранить всё как HAR и сохраните файл:
  6. Перейдите во вкладку Консоль, нажмите правой кнопкой по сообщениям консоли, выберите пункт  “Экспортировать видимые сообщения в > Файл” и сохраните файл.
  7. Сохраненные файлы перешлите в техническую поддержку.