Отчет о пользовательской активности предназначен для автоматической выгрузки данных из базы PostgreSQL и создания отчета в формате XLSX. Отчет содержит статистику по следующим метрикам за указанный период:
Для работы скрипта необходимы:
Чтобы установить и настроить скрипт, выполните следующие действия (пример на сервере с ОС Ubuntu):
1. Установите системные зависимости. Для этого откройте терминал и выполните команды для установки Python и необходимых инструментов:
sudo apt update
sudo apt install python3 python3-pip python3-dev libpq-dev build-essential
2. Установите зависимости Python. Скрипт использует несколько библиотек Python. Установите их с помощью pip:
pip3 install psycopg2-binary numpy numba openpyxl
3. Заполните необходимые параметры в скрипте:
a. Скачайте скрипт на сервер: report3.py
b. Откройте скрипт в режиме редактирования:
nano report3.py
c. Замените следующие значения на необходимые:
USER_NAME = 'postgres' # Укажите имя пользователя БД
PASSWD = 'your_password' # Укажите пароль
HOST = '10.10.10.1' # Укажите IP-адрес сервера БД
PORT = '5432' # Укажите порт (обычно 5432)
DB_NAME = 'backend' # Укажите название базы данных
d. Укажите путь для сохранения отчета (например, /home/user/reports/demo_report.xlsx):
FULL_FILENAME_XLSX = r'/path/to/your/demo_report.xlsx'
e. (Опционально) Измените глубину запроса (по умолчанию 30 дней).
4. Запустите скрипт, используя следующую команду:
python3 report3.py
demo_report.xlsx будет создан в указанной директории.5. Проверьте результат. Для этого откройте файл demo_report.xlsx в Excel или другом совместимом приложении. Убедитесь, что отчет содержит:
Необходимые утилиты для работы скрипта запакованы в образ.
Скачайте архив Docker-образа, используя полученную у команды Dion учётную запись.
Для этого можно использовать утилиту wget:
wget --user=имя_пользователя --password=пароль https://registry.onprem.dion.vc/repository/releases/delivery/user-activity-report-python.tar
Загрузите Docker-образ из файла:
docker load -i user-activity-report-python.tar
Для дальнейших действий нужен пароль PASSWD для базы данных можно посмотреть в файле:
cat /home/dion/on_dion/inventories/dion."имя_домена"/group_vars/all/vault.yaml | grep -i pgsql_password:
И нужен HOST любая база виртуальная машина, с ролью pgsql :
awk '/^\[pgsql\]$/{p=1; next} /^\[/{p=0} p && NF' /home/dion/on_dion/inventories/dion."имя_домена"/hosts
Для запуска создания отчета выполним, команду, заменив переменные PASSWD и HOST:
docker run --rm \
-e PASSWD=pgsql_password \
-e HOST=10.0.19.100 \
-v ~/reports:/app/reports \
user-activity-report:python
Готовый отчет с текущей датой попадает в директорию ~/reports
Для запуска можно использовать переменные:
DEPTH_DAYS_QTY
USER_NAME
PASSWD
HOST
PORT
DB_NAME