feat(aw): expand ru webui patch and monitoring assets
This commit is contained in:
Executable
+113
@@ -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).
|
||||
@@ -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 (изолированный профиль)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user