Skip to Content

Сбор логов Primo RPA

Набор скриптов предназначен для быстрого сбора логов Primo RPA в один архив для передачи в техническую поддержку. Вместо ручного обхода папок каждой службы достаточно запустить одну команду.

Скрипты предусматривают два сценария:

  • Сервер Оркестратора — логи служб WebApi, RobotLogs, RDP2, States, Notifications, MachineInfo (Linux и Windows).
  • Агентский сервер — логи агента Primo + журналы Windows Security, Application, System (Windows).
СценарийПлатформаСкриптАрхив
ОркестраторLinux / Astra LinuxCollect-PrimoLogs.shГГГГММДД.tar.gz
ОркестраторWindowsCollect-PrimoLogs.ps1ГГГГММДД.zip
АгентWindowsCollect-PrimoAgentLogs.ps1ГГГГММДД.zip

Внешние архиваторы при использовании скриптов не требуются: Linux использует встроенные tar и gzip, Windows — встроенный Compress-Archive.

По умолчанию все скрипты собирают логи за сегодня и вчера (2 дня). Вы можете изменить период сбора логов, используя соответствующий параметр (см. подразделы “Параметры (Linux)” и “Параметры (Windows)” ниже).

Требования

  • Linux: bash, tar, gzip — входят в базовую систему любого дистрибутива, включая Astra Linux.
  • Windows: Windows PowerShell 5.1 или PowerShell 7+. Сборщик агентского сервера нужно запускать от имени администратора — иначе журнал Security не выгрузится.

Сервер Оркестратора

Скрипты исходят из стандартной структуры установки: каждая служба лежит в корневой папке Primo, а её логи — в подпапке Logs в формате log-ГГГГММДД.txt.

<Корневая папка Primo>/ ├── WebApi/Logs/log-20260615.txt ├── RobotLogs/Logs/log-20260615.txt ├── RDP2/Logs/log-20260615.txt └── ...

Корневая папка по умолчанию: /opt/Primo (Linux) и C:\Primo (Windows). При нестандартной установке путь задаётся соответствующим параметром (см. подразделы о параметрах ниже).

Параметры (Linux)

ПараметрОписаниеПо умолчанию
-d, --days NЗа сколько последних дней собирать логи, включая сегодняшний день2 (сегодня и вчера)
-r, --root PATHКорневая папка установки Primo/opt/Primo
-o, --output DIRПапка для итогового архиваТекущая папка
-h, --helpПоказать справку

Параметры (Windows)

ПараметрОписаниеПо умолчанию
-Days NЗа сколько последних дней собирать логи, включая сегодняшний день2 (сегодня и вчера)
-PrimoRoot PATHКорневая папка установки PrimoC:\Primo
-OutputDir DIRПапка для итогового архиваТекущая папка
-ServicesСписок служб для сбораВсе шесть служб

Примеры использования

# Linux bash Collect-PrimoLogs.sh # сегодня и вчера, архив в текущую папку bash Collect-PrimoLogs.sh -d 7 # за последние 7 дней bash Collect-PrimoLogs.sh -d 14 -o /tmp # за 14 дней, архив в /tmp bash Collect-PrimoLogs.sh -r /opt/Primo # нестандартная корневая папка
# Windows .\Collect-PrimoLogs.ps1 # сегодня и вчера, архив в текущую папку .\Collect-PrimoLogs.ps1 -Days 7 # за последние 7 дней .\Collect-PrimoLogs.ps1 -Days 14 -OutputDir C:\Temp

Структура архива

Логи разложены по папкам служб, поэтому файлы с одинаковыми именами из разных служб не перезаписывают друг друга:

20260615.tar.gz ├── WebApi/ │ ├── log-20260614.txt │ └── log-20260615.txt ├── RobotLogs/ │ └── log-20260615.txt └── MachineInfo/ └── log-20260615.txt

Агентский сервер

Скрипт Collect-PrimoAgentLogs.ps1 собирает следующие данные с машины, где установлен агент Primo:

  • текстовые логи агента из C:\Primo\Agent\Logs (формат log-ГГГГММДД.txt);
  • журналы Windows Security, Application, System — выгружаются штатным wevtutil в формат .evtx (открываются в Event Viewer) с фильтром по времени.

Параметры

ПараметрОписаниеПо умолчанию
-Days NЗа сколько последних дней собирать логи, включая сегодняшний день2 (сегодня и вчера)
-PrimoRoot PATHКорневая папка установки PrimoC:\Primo
-OutputDir DIRПапка для итогового архиваТекущая папка
-EventLogsСписок журналов Windows для выгрузкиSecurity, Application, System

Примеры использования

# запускать от имени администратора! .\Collect-PrimoAgentLogs.ps1 # сегодня и вчера, архив в текущую папку .\Collect-PrimoAgentLogs.ps1 -Days 7 # за последние 7 дней .\Collect-PrimoAgentLogs.ps1 -Days 3 -OutputDir C:\Temp

Структура архива

Логи агента лежат в папке Agent\, журналы Windows — в EventLogs\:

20260615.zip ├── Agent/ │ └── log-20260615.txt └── EventLogs/ ├── Security.evtx ├── Application.evtx └── System.evtx

Права администратора

Журналы Application и System обычно читаются и без повышенных прав, а Security — только с правами администратора. Скрипт проверяет права при запуске и предупреждает; если какой-то журнал выгрузить не удалось, остальные данные всё равно собираются. Поэтому запускайте PowerShell «от имени администратора».

Период сбора

Для текстовых логов период считается по дате в имени файла (log-ГГГГММДД.txt), для журналов Windows — по времени события (начиная с 00:00 первого дня периода). По умолчанию собираются 2 дня — сегодня и вчера. При -d 1 / -Days 1 берётся только сегодняшний день, при -d 7 / -Days 7 — текущий день и шесть предыдущих.

Распаковка

# Linux (.tar.gz) tar -xzvf 20260615.tar.gz # распаковать tar -tzvf 20260615.tar.gz # посмотреть содержимое без распаковки

Архивы .zip на Windows открываются стандартными средствами Проводника. Файлы .evtx из папки EventLogs открываются в Event Viewer: Действие → Открыть сохранённый журнал.

Сообщения в консоли

В процессе работы скрипт выводит понятный статус по каждому источнику:

СообщениеЧто означает
[Служба] собрано файлов: N из MЛоги найдены и упакованы
[Служба] подходящих логов нетСлужба установлена, но логов за период нет
Папка не найдена, пропускаю: ...Служба на данном хосте не установлена — такая ситуация является нормальной
не удалось скопировать ... (нет прав?)Нет прав на чтение файла — запустите с повышенными правами
[Журнал X] выгруженЖурнал Windows успешно сохранён в .evtx
[Журнал X] не удалось выгрузить (код ...)Нет прав (запустите с правами администратора) или журнал недоступен

Посторонние файлы в папках Logs (не соответствующие шаблону log-ГГГГММДД.txt) игнорируются.

Примечания

  • Права доступа (Linux). Обычно логи доступны на чтение текущему пользователю. Если права строже и происходит отказ в копировании, запустите через sudo.

  • Лог за текущий день. Файл за сегодня, как правило, открыт службой или агентом на запись. Скрипты читают его без конфликтов и не прерывают работу.

  • Политика выполнения (Windows). При первом запуске PowerShell может заблокировать скрипт. Разовый обход:

    powershell -ExecutionPolicy Bypass -File .\Collect-PrimoLogs.ps1
  • Перевод строк (Linux). Если скрипт переносился через Windows, в нём могут появиться CRLF. На запуск через bash Collect-PrimoLogs.sh это не влияет; для запуска как ./Collect-PrimoLogs.sh сделайте chmod +x и, при необходимости, dos2unix Collect-PrimoLogs.sh.

  • Совпадение имён архивов. Все скрипты называют архив по текущей дате. Если складывать архивы Оркестратора и агента в одну папку, в один день - они перезапишут друг друга. В этом случае собирайте их в разные папки или добавьте префикс к имени.

Last updated on