Сбор логов компонентов Access Manager
Уровни логирования
В зависимости от того, насколько подробную информацию о работе компонента нужно получить, можно задать разные уровни логирования. Они определяют, насколько важная и подробная информация будет записываться в лог-файлы. Это позволяет фильтровать и анализировать логи более эффективно.
Рекомендуется использовать уровень логирования Trace, как наиболее информативный.
Уровни логирования
| Trace | Информация о процессах работы компонента, включая детали о вызовах методов API. Наиболее информативный уровень логирования. |
| Debug | Подробности о ходе работы компонента, значимые переменные и другие данные, которые могут быть полезными при обнаружении и исправлении ошибок. |
| Info | Информационные сообщения, которые сообщают о нормальном функционировании компонента. Они могут включать такие события, как запуск или завершение процессов, отправка почты, редактирование профиля пользователя и другие. |
| Warn | Предупреждения и уведомления о потенциальных ошибках и внештатных ситуациях. События не являются критическими, но требуют внимания. При этом компонент может продолжать работу. |
| Error | Ошибки, повлекшие за собой некорректную работу компонента или возникновение серьезных проблем. Логи с уровнем Error указывают на проблемы, которые требуют вмешательства и исправления. |
| Fatal | Только самые критические ошибки и проблемы, которые приводят к немедленному завершению работы компонента или другим серьезным последствиям. Логи с уровнем Fatal обычно означают серьезные сбои, которые требуют немедленного вмешательства и исправления. Наименее информативный уровень логирования. |
Core Server
Включение логирования
Откройте с правами администратора файл am/core/nlog.config.
Для тегов
loggerв параметреminlevelустановите значениеTrace, в параметреenabledустановитеtrue.Пример<rules>
<logger name="*" writeTo="defaultFile" minlevel="Warn" enabled="true">
<filters defaultAction="Log">
<when condition="equals('${logger}','metricTime')" action="Ignore" />
<when condition="equals('${logger}','metricInfo')" action="Ignore" />
</filters>
</logger>
<logger name="Microsoft.Hosting.Lifetime" writeTo="lifetimeConsole" final="false" />
<logger name="metricTime" writeTo="metricsTimeFile" minlevel="Trace" enabled="false" />
<logger name="metricInfo" writeTo="metricsInfoFile" minlevel="Trace" enabled="false" />
</rules>Сохраните файл и перезапустите контейнер с приложением.
Сбор логов
- Очистите существующие логи сервера Indeed AM в каталоге am/core/Logs/<текущая_дата>.
- Воспроизведите проблему.
- Соберите архив с логами и отправьте в службу технической поддержки с подробным описанием действий пользователя и указанием точного времени воспроизведения проблемы.
Log Server
Включение логирования
Откройте с правами администратора файл am/ls/app-settings.json.
Для тега
NLogв параметрахminLevelиdbMinLevelустановите значениеTrace. В параметреenabledустановите значениеtrue.Пример"NLog": {
"variables": {
"minLevel": "Trace",
"dbMinLevel": "Trace"
},
"rules": {
"20_Errors": {
"logger": "*",
"minLevel": "Error",
"writeTo": "errorsFile",
"enabled": true
},
"47_Db": {
"logger": "Microsoft.EntityFrameworkCore*",
"minLevel": "${dbMinLevel}",
"writeTo": "dbFile",
"enabled": true
},
"52_Full": {
"logger": "*",
"minLevel": "${minLevel}",
"writeTo": "fullFile",
"enabled": true
}
}20_Errors— запись ошибок в файл errors.log;47_Db— запись событий, относящихся к базе данных (например соединение), в соответствии с уровнем логирования в параметре"variables":"minLevel";52_Full— запись всех событий в соответствии с уровнем логирования в параметре"variables":"minLevel".
Сохраните файл и перезапустите контейнер с приложением.
Сбор логов
- Очистите существующие логи Indeed AM Log Server в каталоге am/ls/Logs/<текущая_дата>.
- Воспроизведите проблему.
- Соберите архив с логами и отправьте в службу технической поддержки с подробным описанием действий пользователя и указанием точного времени воспроизведения проблемы.
Management Console
Включение логирования
Откройте с правами администратора файл am/mc/nlog.config.
Для тега
loggerв параметреminlevelустановите значениеTrace, в параметреenabledустановитеtrue.Пример<rules>
<logger name="*" writeTo="defaultFile" minlevel="Trace" enabled="true"/>
</rules>Сохраните файл и перезапустите контейнер с приложением.
Сбор логов
- Очистите существующие логи Indeed AM Management Console в каталоге am/mc/Logs/<текущая_дата>.
- Воспроизведите проблему.
- Соберите архив с логами и отправьте в службу технической поддержки с подробным описанием действий пользователя и указанием точного времени воспроизведения проблемы.
User Console
Включение логирования
Откройте с правами администратора файл am/uc/nlog.config.
Для тега
loggerв параметреminlevelустановите значениеTrace, в параметреenabledустановитеtrue.Пример<rules>
<logger name="*" writeTo="defaultFile" minlevel="Trace" enabled="true"/>
</rules>Сохраните файл и перезапустите контейнер с приложением.
Сбор логов
- Очистите существующие логи Indeed AM User Console в каталоге am/uc/Logs/<текущая_дата>.
- Воспроизведите проблему.
- Соберите архив с логами и отправьте в службу технической поддержки с подробным описанием действий пользователя и указанием точного времени воспроизведения проблемы.
Identity Provider
Включение логирования
Откройте с правами администратора файл am/idp/nlog.config.
Для тега
loggerв параметреminlevelустановите значениеTrace, в параметреenabledустановитеtrue.Пример<rules>
<logger name="*" writeTo="defaultFile" minlevel="Trace" enabled="true" />
</rules>Сохраните файл и перезапустите контейнер с приложением.
Сбор логов
- Очистите существующие логи Indeed AM Identity Provider в каталоге am/idp/Logs/<текущая_дата>.
- Воспроизведите проблему.
- Соберите архив с логами и отправьте в службу технической поддержки с подробным описанием действий пользователя и указанием точного времени воспроизведения проблемы.
Key Server
Включение логирования
Откройте с правами администратора файл am/indeed-key/nlog.config.
Для тега
loggerв параметреminlevelустановите значениеTrace, в параметреenabledустановитеtrue.Пример<rules>
<logger name="*" writeTo="defaultFile" minlevel="Trace" enabled="true">
<filters defaultAction="Log">
<when condition="equals('${logger}','metricTime')" action="Ignore" />
<when condition="equals('${logger}','metricInfo')" action="Ignore" />
</filters>
</logger>
<logger name="Microsoft.Hosting.Lifetime" writeTo="lifetimeConsole" final="false" />
<logger name="metricTime" writeTo="metricsTimeFile" minlevel="Trace" enabled="true" />
<logger name="metricInfo" writeTo="metricsInfoFile" minlevel="Trace" enabled="true" />
</rules>Сохраните файл и перезапустите контейнер с приложением.
Сбор логов
- Очистите существующие логи сервера Indeed Key в каталоге am/indeed-key/Logs/<текущая_дата>.
- Воспроизведите проблему.
- Соберите архив с логами и отправьте в службу технической поддержки с подробным описанием действий пользователя и указанием точного времени воспроизведения проблемы.
LDAP Proxy
Включение логирования
Откройте с правами администратора файл am/ldap-proxy/configs/nlog.config.
Для тега
loggerв параметреminlevelустановите значениеTrace, в параметреenabledустановитеtrue.Пример<rules>
<logger name="EA.ClientAPI.Rest.Providers.*" final="true" />
<logger name="*" writeTo="defaultFile, console" minlevel="Trace" enabled="true"/>
</rules>Сохраните файл и перезапустите контейнер с приложением.
Типы логов
Для модуля LDAP Proxy логи записываются в каталоге am/ldap-proxy/Logs/<текущая_дата> в следующие файлы:
session_ID.log — файл с событиями для конкретной сессии, устанавливаемой клиентом через LDAP Proxy. При повторном подключении в рамках одной сессии запись продолжается в тот же файл session_ID.log. В session_ID.log записываются следующие события:
- ошибки подключения и/или аутентификации,
- ошибки запросов к Core Server через API,
- события TLS-шифрования между компонентами системы (LDAP, LDAP Proxy, LDAP Client и Reverse Proxy/HaProxy),
- логи аутентификации.
main.log — общий файл, в который записываются следующие события:
- старт/остановка LDAP Proxy,
- результаты проверки состояния сервера Healthcheck для Core Server и LDAP,
- ошибки запуска/инициализации,
- другие события, не относящиеся к конкретной сессии.
Для поиска по логам используйте следующую команду:
grep -Rn <доменное_имя_пользователя> am/ldap-proxy/Logs/<текущая_дата>
Сбор логов
- Очистите существующие логи LDAP Proxy в каталоге am/ldap-proxy/Logs/<текущая_дата>.
- Воспроизведите проблему.
- Соберите архив с логами и отправьте в службу технической поддержки с подробным описанием действий пользователя и указанием точного времени воспроизведения проблемы.
SMS Proxy
Включение логирования
Откройте с правами администратора файл am/sms-proxy/nlog.config.
Для тега
loggerв параметреminlevelустановите значениеTrace, в параметреenabledустановитеtrue.Пример<rules>
<logger name="*" writeTo="defaultFile" minlevel="Trace" enabled="true" />
</rules>Сохраните файл и перезапустите контейнер с приложением.
Сбор логов
- Очистите существующие логи SMS Proxy в каталоге am/sms-proxy/Logs/<текущая_дата>.
- Воспроизведите проблему.
- Соберите архив с логами и отправьте в службу технической поддержки с подробным описанием действий пользователя и указанием точного времени воспроизведения проблемы.
Windows Authentication Reverse Proxy
Включение логирования
Откройте с правами администратора файл C:\Program Files\Indeed-Id\Indeed-Id WARP\Nlog.config.
Для тега
loggerв параметреminlevelустановите значениеTrace, в параметреenabledустановитеtrue.Пример<rules>
<logger name="*" minlevel="Trace" writeTo="defaultFile, console" enabled="true" />
</rules>Сохраните изменения в файле и перезапустите WARP.
Сбор логов
- Очистите существующие логи WARP в каталоге C:\Program Files\Indeed-Id\Indeed-Id WARP\Logs.
- Воспроизведите проблему.
- Соберите архив с логами и отправьте в службу технической поддержки с подробным описанием действий пользователя и указанием точного времени воспроизведения проблемы.
Mobile Device Provisioning
Включение логирования
Откройте с правами администратора файл C:\inetpub\wwwroot\am\mdp\nlog.config.
Для тега
loggerв параметреminlevelустановите значениеTrace, в параметреenabledустановитеtrue.Пример<rules>
<logger name="*" writeTo="f1" minlevel="Trace" enabled="true" />
</rules>Сохраните изменения в файле и перезапустите службу IIS.
Сбор логов
- Очистите существующие логи MDP в каталоге C:\inetpub\wwwroot\am\mdp\logs.
- Воспроизведите проблему.
- Соберите архив с логами и отправьте в службу технической поддержки с подробным описанием действий пользователя и указанием точного времени воспроизведения проблемы.
Linux Logon
Сбор логов в модуле Linux Logon производится вручную через терминал.
Сбор логов сервисов amdev.service и amsvcd.service
Чтобы просмотреть логи сервисов, введите команду:
Для amdev.servicesudo journalctl -u amdev.serviceДля amsvcd.servicesudo journalctl -u amsvcd.serviceДля просмотра событий в режиме реального времени в конце команды добавьте
-f, для просмотра последних 100 строк добавьте-n 100.Пример вывода
мар 19 13:42:53 clientRed.test.local systemd[1]: Starting Access Manager Service…
мар 19 13:42:53 clientRed.test.local amsvc[3327]: Loading plugins…
мар 19 13:42:53 clientRed.test.local amsvc[3327]: Loading plugin DomainPassword.so …
мар 19 13:42:53 clientRed.test.local amsvc[3327]: Load plugin: /usr/lib/amsvc/providers/DomainPassword.so
...
Чтобы собрать логи сервисов за последние 24 часа, введите команду:
Для amdev.servicesudo journalctl -u amdev.service --since "24 hours ago" > LL_amdev.logЛоги будут сохранены в файле LL_amdev.log.
Для amsvcd.servicesudo journalctl -u amsvcd.service --since "24 hours ago" > LL_amsvcd.logЛоги будут сохранены в файле LL_amsvcd.log.
Просмотр системных вызовов UNIX-сокетов
Чтобы определить PID сокета, введите команду:
sudo ss -x -l -p | grep amsvcЧтобы просмотреть системные вызовы сокета, введите команду:
sudo strace -p <PID> -f -e trace=network,read,write -s 2000Пример вывода
[user@clientRed root]$ sudo ss -x -l -p | grep amsvc
u_str LISTEN 0 50 /var/lib/amsvc/amdev.socket 26597 * 0 users:((“amdev”,pid=999,fd=4))
u_str LISTEN 0 50 /var/lib/amsvc/amsvc.socket 43992 * 0 users:((“amsvc”,pid=3327,fd=5))
[user@clientRed root]$ sudo strace -p 999 -f -e trace=network,read,write -s 2000
strace: Process 999 attached
read(9, “Em-Marine[66”, 32768) = 12
read(9, “00] 128,52491\r\n”, 32768) = 15
sendto(6, “<87>Mar 19 13:46:46 amdev[999]: Received a line from Z-2 USB:/dev/ttyUSB0:Em-Marine[6600] 128,52491”, 99, MSG_NOSIGNAL, NULL, 0) = 99
Диагностика установленных плагинов
Чтобы проверить установленные плагины устройств и провайдеров, введите команду:
ls /usr/lib/amsvc/providers/Пример вывода
[root@clientRed ~]# ls /usr/lib/amsvc/providers/
DeviceZ2Usb.so DomainPassword.so Passcode.so RegistryMFA.so SecuredOTP.so SoftwareOTP.so Z2Usb.so
Сбор логов системных журналов ОС и диагностика считывателей
Чтобы проверить видимость устройства Z2 USB и права доступа к нему, введите команду:
ls -la /dev/ttyUSB*Чтобы просмотреть логи журналов в режиме реального времени, введите команду:
Для журнала безопасности системыsudo tail -f /var/log/secureДля журнала системных сообщенийsudo tail -f /var/log/messagesЧтобы собрать логи журналов за последние 24 часа, введите команду:
Для журнала безопасности системыsudo journalctl -facility=authpriv --since "24 hours ago" > /tmp/secure_last24.logЛоги будут сохранены в файле /tmp/secure_last24.log.
Для журнала системных сообщенийsudo journalctl --since "24 hours ago" > /tmp/messages_last24.logЛоги будут сохранены в файле /tmp/messages_last24.log.