feat(aw): expand ru webui patch and monitoring assets

This commit is contained in:
igor04091968
2026-04-26 08:54:41 +03:00
parent f54284a0f9
commit 7ef8166504
28 changed files with 1713 additions and 22 deletions
+113
View File
@@ -0,0 +1,113 @@
# 1С-Бухгалтерия: сбор и анализ в Grafana
Документ описывает внедрение контура мониторинга 1С в Grafana через Prometheus и SQL Exporter.
## 1. Целевая схема
1. База 1С (PostgreSQL или MS SQL) содержит KPI views.
2. `sql-exporter` опрашивает views read-only пользователем.
3. `prometheus` собирает метрики и считает alert-rules.
4. `grafana` визуализирует KPI и алерты.
## 2. Подготовка
Рабочий каталог:
- `/mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c`
Подготовка env:
```bash
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c
cp /mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c/.env.example \
/mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c/.env
```
Обязательно изменить:
- `GRAFANA_ADMIN_PASSWORD`
- `ONEC_DSN`
## 3. SQL-представления KPI
Используйте шаблон под вашу СУБД:
- PostgreSQL: `/mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c/sql/postgres_views_template.sql`
- MS SQL: `/mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c/sql/mssql_views_template.sql`
После адаптации шаблона под фактические таблицы 1С создайте views в БД.
Быстрое профилирование схемы 1С (PostgreSQL):
```bash
sh /mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c/tools/discover_postgres_1c.sh \
"postgres://user:pass@db-host:5432/db?sslmode=disable"
```
Проверка KPI views перед запуском:
```bash
sh /mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c/tools/validate_kpi_views.sh \
"postgres://user:pass@db-host:5432/db?sslmode=disable"
```
## 4. Запуск стека
```bash
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c
docker compose up -d
```
## 5. Верификация
Проверка метрик sql-exporter:
```bash
curl -fsS http://127.0.0.1:9399/metrics | rg "onec_"
```
Проверка Prometheus:
```bash
curl -fsS http://127.0.0.1:9090/-/healthy
```
Проверка Grafana:
- URL: `http://<host>:3000`
- Дашборд: `1C Бухгалтерия — Overview`
- Дашборд: `1C Бухгалтерия — SRE`
E2E health-check:
```bash
sh /mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c/tools/check_pipeline.sh
```
## 6. KPI и алерты
Метрики:
- `onec_unposted_documents_total`
- `onec_sales_amount_today`
- `onec_overdue_receivables_total`
- `onec_posting_errors_total`
- `onec_data_freshness_seconds`
Алерты:
- `OneCUnpostedDocumentsHigh` (warning)
- `OneCOverdueReceivablesCritical` (critical)
- `OneCSQLExporterDown` (critical)
- `OneCDataFreshnessCritical` (critical)
Файл правил:
- `/mnt/usb_hdd2/Projects/ActivityWatch-Russian/grafana-1c/prometheus/alerts.yml`
## 7. Эксплуатационный минимум
- Доступ к БД 1С только read-only.
- Права только на KPI views.
- Ротация пароля read-only пользователя не реже 90 дней.
- Бэкап `grafana-data` и `prometheus-data` (docker volumes).
+39
View File
@@ -22,6 +22,7 @@
- Применяет ACL к `C:\Program Files\ActivityWatch`, `C:\ProgramData\ActivityWatch` и каталогу логов.
- Не содержит хардкодов инфраструктуры: сервер, домен, список пользователей и правила передаются параметрами.
- Корректно регистрирует задачи через `-LogonType Interactive` (совместимо с Windows Server, где `InteractiveToken` не поддерживается).
- Поддерживает отключение шумных watcher'ов через `-AfkEnabled:$false` и `-WindowEnabled:$false`.
## Предпосылки
@@ -44,6 +45,31 @@ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
-CustomPolicyPath .\windows\dlp-policy.example.json
```
Чтобы убрать `afkstatus` из веб-интерфейса, отключите AFK watcher:
```powershell
.\windows\deploy-single-user.ps1 `
-ServerHost aw.example.local `
-ServerPort 5600 `
-TargetUser 'CONTOSO\svc.activity.user01' `
-AfkEnabled:$false `
-CustomRulesPath .\windows\web-category-rules.example.json `
-CustomPolicyPath .\windows\dlp-policy.example.json
```
Если нужен только `window`-сигнал без AFK:
```powershell
.\windows\deploy-single-user.ps1 `
-ServerHost aw.example.local `
-ServerPort 5600 `
-TargetUser 'CONTOSO\svc.activity.user01' `
-AfkEnabled:$false `
-WindowEnabled:$true `
-CustomRulesPath .\windows\web-category-rules.example.json `
-CustomPolicyPath .\windows\dlp-policy.example.json
```
Локальный пользователь:
```powershell
@@ -94,6 +120,19 @@ CSV-формат: колонка `User`, `Username`, `SamAccountName` или `Lo
-CustomPolicyPath C:\Temp\dlp-policy.json
```
Для quiet-профиля без `afkstatus`:
```powershell
.\windows\deploy-domain-users.ps1 `
-ServerHost aw.example.local `
-ServerPort 5600 `
-Domain CONTOSO `
-UserListPath C:\Temp\aw-users.txt `
-AfkEnabled:$false `
-CustomRulesPath C:\Temp\web-category-rules.json `
-CustomPolicyPath C:\Temp\dlp-policy.json
```
Если список уже содержит `DOMAIN\user`, параметр `-Domain` не нужен.
## Рекомендуемый phased rollout (изолированный профиль)
+2
View File
@@ -36,6 +36,8 @@ C:\Deploy\AWatch-rus\windows\deploy-ensemble.ps1 `
4. Опционально запускает контроль (`validate-deployment.ps1`) при `-ValidateAfterDeploy`.
5. Пишет итоговый JSON-отчёт в `<StateRoot>\ensemble-report-*.json`.
Для quiet-профиля без `afkstatus` используйте `-AfkEnabled:$false`; если не нужен window watcher, добавьте `-WindowEnabled:$false`.
## Быстрый health-check
```powershell