Сбор логов Primo RPA
Набор скриптов предназначен для быстрого сбора логов Primo RPA в один архив для передачи в техническую поддержку. Вместо ручного обхода папок каждой службы достаточно запустить одну команду.
Скрипты предусматривают два сценария:
- Сервер Оркестратора — логи служб
WebApi,RobotLogs,RDP2,States,Notifications,MachineInfo(Linux и Windows). - Агентский сервер — логи агента Primo + журналы Windows
Security,Application,System(Windows).
| Сценарий | Платформа | Скрипт | Архив |
|---|---|---|---|
| Оркестратор | Linux / Astra Linux | Collect-PrimoLogs.sh | ГГГГММДД.tar.gz |
| Оркестратор | Windows | Collect-PrimoLogs.ps1 | ГГГГММДД.zip |
| Агент | Windows | Collect-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 | Корневая папка установки Primo | C:\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 | Корневая папка установки Primo | C:\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. -
Совпадение имён архивов. Все скрипты называют архив по текущей дате. Если складывать архивы Оркестратора и агента в одну папку, в один день - они перезапишут друг друга. В этом случае собирайте их в разные папки или добавьте префикс к имени.