docs(wiki): add GitHub wiki pages for documentation

- Home page with navigation and quick start
- Architecture overview with layers and data flows
- Components documentation for all system parts
- Interactive map guide with usage instructions
- DLP Endpoint Monitoring detailed guide
- Browser Domains Monitoring guide
- WebUI Russian Patches documentation
- Windows Installation guide
- Server Setup guide
- Monitoring Setup with Prometheus/Grafana

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
igor04091968
2026-05-05 01:56:30 +03:00
co-authored by Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent 7a89f33e3b
commit eb83a8b08f
10 changed files with 1448 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
# Архитектура системы
## Обзор
ActivityWatch-Russian состоит из нескольких слоев:
```
Windows Clients (сбор данных)
↓ HTTP API
Linux Server (хранение и обработка)
↓ TCP
Integration Layer (интеграции)
↓ HTTP/TCP
Monitoring Stack (визуализация)
```
## Слои архитектуры
### 1. Windows Clients - Сбор данных
- **DLP Endpoint Collector** - мониторинг clipboard, печати, USB
- **Browser Domains Collector** - мониторинг браузеров
- **Email Outbound Collector** - мониторинг почты
- **Worktime Session Collector** - учет рабочего времени
### 2. Linux Server - Хранение и обработка
- **ActivityWatch Server** - основной сервер (Rust)
- **PostgreSQL Database** - хранилище данных
- **WebUI with RU Patches** - веб-интерфейс с русификацией
### 3. Integration Layer - Интеграции
- **pfSense Poller** - сбор логов firewall
- **DLP Aggregation Scripts** - агрегация DLP событий
- **Prometheus Exporter** - экспорт метрик
### 4. Monitoring Stack - Мониторинг
- **Prometheus** - сбор метрик
- **Grafana** - визуализация
- **SQL Exporter** - прямые SQL запросы
## Потоки данных
### DLP инцидент
```
User → DLP Collector → Проверка правил → AW Server → PostgreSQL → Grafana
```
### Браузер мониторинг
```
Browser → Browser Collector → Категоризация → AW Server → WebUI
```
### Метрики
```
AW Server → Exporter → Prometheus → Grafana
```
## Порты
| Компонент | Порт | Протокол |
|-----------|------|----------|
| ActivityWatch API | 5600 | HTTP |
| ActivityWatch WebSocket | 5666 | WebSocket |
| PostgreSQL | 5432 | TCP |
| Prometheus | 9090 | HTTP |
| Grafana | 3000 | HTTP |
| Prometheus Exporter | 9398 | HTTP |
## Подробнее
- [Компоненты системы](Components) - детальное описание компонентов
- [Интерактивная карта](Interactive-Map) - визуальная схема связей
+145
View File
@@ -0,0 +1,145 @@
# Browser Domains Monitoring
Мониторинг посещаемых доменов в браузерах с категоризацией и проверкой DLP правил.
## Обзор
Browser Domains Collector отслеживает:
- Посещаемые веб-сайты
- Категоризацию доменов
- DLP проверку запрещенных сайтов
- Скриншоты при нарушениях
## Архитектура
```
Browser → Window Detection → URL Extraction → Domain Parsing → Categorization → DLP Check → ActivityWatch
```
## Функции
### Domain Detection
- Определение активного окна браузера
- Извлечение URL из заголовка окна
- Парсинг домена из URL
- Определение корневого домена
### Categorization
- Кастомные правила категорий
- Web Category API (опционально)
- Кэширование результатов
- Автоопределение категорий
### DLP Checking
- Проверка по спискам доменов
- DLP правила для доменов
- Временные окна
- Блокировка нарушений
## Поддерживаемые браузеры
- Google Chrome
- Mozilla Firefox
- Microsoft Edge
- Opera
- Яндекс.Браузер
## Конфигурация
### Custom Category Rules
```json
{
"custom_categories": {
"social_media": [
"*.facebook.com",
"*.twitter.com",
"*.instagram.com"
],
"news": [
"*.news.com",
"*.media.com"
],
"blocked": [
"*.malware.com",
"*.phishing.com"
]
}
}
```
### DLP Domain Rules
```json
{
"domain_rules": [
{
"pattern": "*gambling*",
"category": "gambling",
"action": "alert",
"severity": "medium"
},
{
"pattern": "*adult*",
"category": "adult",
"action": "block",
"severity": "high"
}
]
}
```
## События
### Browsing Event
```json
{
"timestamp": "2024-01-01T12:00:00Z",
"type": "browsing",
"data": {
"url": "https://www.example.com/page",
"domain": "example.com",
"root_domain": "example.com",
"category": "technology",
"browser": "chrome.exe",
"title": "Example Page Title",
"user": "user1",
"host": "WORKSTATION01"
}
}
```
### DLP Incident Event
```json
{
"timestamp": "2024-01-01T12:00:00Z",
"type": "dlp_incident",
"source": "browser_domain",
"rule_id": "blocked_domains",
"severity": "high",
"data": {
"url": "https://blocked.com",
"domain": "blocked.com",
"category": "malicious",
"screenshot": "path/to/screenshot.png"
}
}
```
## Производительность
### Оптимизации
- Кэширование категорий (TTL 24h)
- Batch запросы к category API
- Debouncing быстрых переходов
- Асинхронная отправка событий
## Мониторинг
- Количество уникальных доменов
- Распределение по категориям
- Частота DLP инцидентов
- Кэш hit rate
## Подробнее
- [Детальная диаграмма](https://github.com/igor04091968/AWatch-rus/blob/main/docs/diagrams/browser-domains-monitoring.md)
- [Категоризация сайтов](Web-Categorization)
+108
View File
@@ -0,0 +1,108 @@
# Компоненты системы
## Windows Collectors
### DLP Endpoint Collector
Мониторинг конечных точек для обнаружения утечек данных.
**Функции:**
- Clipboard мониторинг
- Print job мониторинг
- USB write блокировка
- DLP правило evaluation
- Скриншоты при инцидентах
**Файл:** `windows/dlp-endpoint-signals-collector.ps1`
### Browser Domains Collector
Отслеживание посещаемых доменов с категоризацией.
**Функции:**
- Определение домена из URL
- Категоризация сайтов
- DLP проверка доменов
- Скриншоты при нарушениях
**Файл:** `windows/browser-domains-native-collector.ps1`
### Email Outbound Collector
Мониторинг исходящей почты.
**Функции:**
- Outlook Sent Items мониторинг
- SMTP соединения
- Email правило evaluation
- Блокировка нарушений
**Файл:** `windows/email-outbound-collector.ps1`
### Worktime Session Collector
Учет рабочего времени.
**Функции:**
- Определение сессий
- Учет перерывов
- Агрегация по дням
**Файл:** `windows/worktime-session-collector.ps1`
## Server Components
### ActivityWatch Server
Основной сервер для приема и хранения событий.
**Технологии:** Rust
**API:** HTTP на порту 5600
### PostgreSQL Database
Основное хранилище данных.
**Таблицы:**
- `dlp_events` - DLP инциденты
- `aggregation_state` - состояние агрегации
- `dlp_statistics` - статистика
### WebUI with RU Patches
Веб-интерфейс с русской локализацией.
**Файлы:** `aw-server/aw-ru-patch.js`, `aw-server/aw-sw-cleanup.js`
## Integration Components
### pfSense Poller
Сбор логов с pfSense firewall.
**Файл:** `pfsense/pfsense-aw-poller.py`
### DLP Aggregation Scripts
Агрегация DLP событий в PostgreSQL.
**Файл:** `scripts/aggregate_dlp_events.py`
### Prometheus Exporter
Экспорт метрик в формате Prometheus.
**Файл:** `grafana-1c/sql-exporter/collectors/aw_activitywatch.py`
## Monitoring Components
### Prometheus
Сбор и хранение метрик.
**Порт:** 9090
### Grafana
Визуализация метрик и дашборды.
**Порт:** 3000
### SQL Exporter
Прямые SQL запросы к PostgreSQL.
**Порт:** 9398
## Подробнее
- [DLP Endpoint Monitoring](DLP-Endpoint-Monitoring) - детально о DLP коллекторе
- [Browser Domains Monitoring](Browser-Domains-Monitoring) - детально о браузерном коллекторе
- [WebUI Русификация](WebUI-Russian-Patches) - детально о патчах интерфейса
+124
View File
@@ -0,0 +1,124 @@
# DLP Endpoint Monitoring
Мониторинг конечных точек для обнаружения утечек данных через clipboard, печать и USB.
## Обзор
DLP Endpoint Collector отслеживает:
- **Clipboard** - буфер обмена
- **Print** - задания на печать
- **USB** - запись на USB накопители
## Архитектура
```
User Activity → DLP Collector → Rule Evaluation → Enforcement → ActivityWatch
```
## Функции
### Clipboard Monitoring
- Перехват clipboard событий
- Проверка по паттернам (credit cards, passport data, etc.)
- Блокировка копирования
- Скриншот при нарушении
### Print Monitoring
- Перехват print job событий
- Проверка принтеров и документов
- Блокировка печати
- Логирование попыток
### USB Monitoring
- Обнаружение USB устройств
- Блокировка записи
- Логирование подключений
- Политики по device ID
## Конфигурация
### DLP Policy
```json
{
"clipboard_rules": [
{
"pattern": "\\b\\d{4}-\\d{4}-\\d{4}-\\d{4}\\b",
"description": "Credit card numbers",
"severity": "high",
"action": "block"
}
],
"print_rules": [
{
"printer_match": "*",
"document_keywords": ["confidential", "secret"],
"action": "block"
}
],
"usb_rules": [
{
"device_id": "*",
"action": "block_write"
}
]
}
```
### Deployment Config
```json
{
"aw_server_url": "http://aw-server:5600",
"bucket_prefix": "aw-watcher-dlp-endpoint",
"heartbeat_interval": 60,
"screenshot_on_incident": true,
"enforcement_enabled": true
}
```
## Установка
```powershell
# Копирование коллектора
Copy-Item windows/dlp-endpoint-signals-collector.ps1 C:\ProgramData\AWatch-rus\
# Настройка scheduled task
Register-ScheduledTask -TaskName "DLP Endpoint Collector" -Trigger $trigger -Action $action
```
## События
### DLP Incident Event
```json
{
"timestamp": "2024-01-01T12:00:00Z",
"type": "dlp_incident",
"source": "clipboard",
"rule_id": "credit_card_pattern",
"severity": "high",
"data": {
"matched_text": "****-****-****-1234",
"user": "user1",
"host": "WORKSTATION01",
"screenshot": "path/to/screenshot.png"
}
}
```
## Требования
- Windows 10/11
- PowerShell 5.1+
- ActivityWatch installed
- Административные права (для enforcement)
## Мониторинг
- Количество инцидентов по типам
- Частота срабатываний правил
- Успешность enforcement действий
- Heartbeat статус
## Подробнее
- [Детальная диаграмма](https://github.com/igor04091968/AWatch-rus/blob/main/docs/diagrams/dlp-endpoint-monitoring.md)
- [DLP Правила](DLP-Rules)
+79
View File
@@ -0,0 +1,79 @@
# ActivityWatch-Russian Documentation
Добро пожаловать в документацию ActivityWatch-Russian - корпоративной системы мониторинга активности на базе ActivityWatch с русификацией и DLP функциями.
## 📚 Содержание
### Архитектура
- [Обзор архитектуры](Architecture) - высокоуровневая архитектура системы
- [Компоненты системы](Components) - описание всех компонентов
- [Интерактивная карта](Interactive-Map) - визуальная карта связей
### Компоненты
- [DLP Endpoint Monitoring](DLP-Endpoint-Monitoring) - мониторинг clipboard, печати, USB
- [Browser Domains Monitoring](Browser-Domains-Monitoring) - мониторинг браузеров
- [Email Outbound Monitoring](Email-Outbound-Monitoring) - мониторинг почты
- [WebUI Русификация](WebUI-Russian-Patches) - патчи интерфейса
- [DLP Агрегация](DLP-Aggregation) - обработка DLP событий
- [Prometheus Exporter](Prometheus-Exporter) - метрики для мониторинга
### Развертывание
- [Установка на Windows](Windows-Installation) - установка коллекторов
- [Настройка сервера](Server-Setup) - настройка Linux сервера
- [Grafana + Prometheus](Monitoring-Setup) - мониторинг стек
### Конфигурация
- [DLP Правила](DLP-Rules) - настройка DLP политик
- [Категоризация сайтов](Web-Categorization) - настройка категорий
- [Группы хостов](Host-Groups) - управление группами
## 🚀 Быстрый старт
### Минимальная конфигурация
```bash
# 1. Установка на Windows workstation
.\windows\deploy-domain-users.ps1
# 2. Запуск ActivityWatch Server
./aw-server/aw-server
# 3. Применение RU патчей
node aw-server/aw-ru-patch.js
```
### Полная конфигурация
```bash
# 1. Развертывание на Windows
.\windows\deploy-domain-users.ps1
# 2. Настройка сервера
cd ansible
ansible-playbook server-setup.yml
# 3. Запуск мониторинга стека
cd ../grafana-1c
docker-compose up -d
# 4. Агрегация DLP событий
python3 scripts/aggregate_dlp_events.py
```
## 📊 Обзор системы
ActivityWatch-Russian - это корпоративная система мониторинга активности пользователей с:
- **DLP мониторинг** - clipboard, печать, USB, браузеры, email
- **Русификация** - полный перевод интерфейса на русский
- **Аналитика** - агрегация данных и отчеты
- **Мониторинг** - Prometheus + Grafana дашборды
- **Автоматизация** - Ansible деплой на Windows и Linux
## 🔗 Ссылки
- [GitHub Repository](https://github.com/igor04091968/AWatch-rus)
- [ActivityWatch Official](https://activitywatch.net/)
- [Примеры конфигураций](https://github.com/igor04091968/AWatch-rus/tree/main/grafana-1c)
## 📝 Поддержка
Для вопросов и предложений используйте [Issues](https://github.com/igor04091968/AWatch-rus/issues).
+78
View File
@@ -0,0 +1,78 @@
# Интерактивная карта архитектуры
Для визуального исследования связей между компонентами используйте интерактивную HTML карту.
## Как использовать
### Локально
```bash
# Открыть в браузере
xdg-open docs/diagrams/architecture-map.html
# Или
file:///path/to/AWatch-rus/docs/diagrams/architecture-map.html
```
### С GitHub
1. Скачайте файл: [architecture-map.html](https://github.com/igor04091968/AWatch-rus/blob/main/docs/diagrams/architecture-map.html)
2. Откройте в браузере
## Функции карты
### Визуальные компоненты
- **Windows Clients** (красный) - коллекторы данных
- **Linux Server** (бирюзовый) - сервер и БД
- **Integration** (желтый) - интеграции
- **Monitoring** (зеленый) - мониторинг стек
- **External** (фиолетовый) - внешние системы
### Интерактивность
- **Клик по компоненту** - показывает детальную информацию
- **Подсветка связей** - выделяет связанные компоненты
- **Поиск** - быстрый поиск по названию
- **Потоки данных** - визуализация процесса
### Информация о компоненте
При клике на компонент показывается:
- Описание
- Связи с другими компонентами
- Потоки данных
- Порты и протоколы
## Слои архитектуры
### 1. Windows Clients
- DLP Endpoint Collector
- Browser Domains Collector
- Email Outbound Collector
- Worktime Session Collector
### 2. Linux Server
- ActivityWatch Server
- PostgreSQL Database
- WebUI with RU Patches
### 3. Integration Layer
- pfSense Poller
- DLP Aggregation Scripts
- Prometheus Exporter
### 4. Monitoring Stack
- Prometheus
- Grafana
- SQL Exporter
### 5. External Systems
- pfSense Firewall
- Domain Controller
## Альтернативные визуализации
### ASCII схема
Для быстрого понимания: [architecture-simple.md](https://github.com/igor04091968/AWatch-rus/blob/main/docs/architecture-simple.md)
### Mermaid диаграммы
Для технических деталей: [architecture-diagram.md](https://github.com/igor04091968/AWatch-rus/blob/main/docs/architecture-diagram.md)
### Graphify knowledge graph
Для анализа кода: [graphify-out/index.html](https://github.com/igor04091968/AWatch-rus/blob/main/graphify-out/index.html)
+292
View File
@@ -0,0 +1,292 @@
# Monitoring Setup
Настройка Prometheus + Grafana стека для мониторинга ActivityWatch.
## Требования
- Docker & Docker Compose
- 2GB+ RAM
- 20GB+ disk space
## Установка через Docker Compose
```bash
cd grafana-1c
docker-compose up -d
```
## Компоненты
### Prometheus
Сбор и хранение метрик.
**Порт:** 9090
**Конфиг:** `prometheus/prometheus.yml`
### Grafana
Визуализация метрик и дашборды.
**Порт:** 3000
**Конфиг:** `grafana/provisioning/`
### SQL Exporter
Прямые SQL запросы к PostgreSQL.
**Порт:** 9398
**Конфиг:** `sql-exporter/`
### AW Exporter
Экспорт метрик ActivityWatch.
**Порт:** 9398
**Файл:** `sql-exporter/collectors/aw_activitywatch.py`
## Конфигурация Prometheus
```yaml
# prometheus/prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'activitywatch'
static_configs:
- targets: ['aw-exporter:9398']
scrape_interval: 60s
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
```
## Конфигурация Grafana
### Datasources
```yaml
# grafana/provisioning/datasources/prometheus.yml
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
```
```yaml
# grafana/provisioning/datasources/postgres.yml
apiVersion: 1
datasources:
- name: PostgreSQL
type: postgres
access: proxy
url: postgres:5432
database: activitywatch
user: aw
password: aw_password
```
### Dashboards
```yaml
# grafana/provisioning/dashboards/dashboards.yml
apiVersion: 1
providers:
- name: 'ActivityWatch'
orgId: 1
folder: 'ActivityWatch'
type: file
disableDeletion: false
updateIntervalSeconds: 10
allowUiUpdates: true
options:
path: /etc/grafana/provisioning/dashboards
```
## Дашборды
### ActivityWatch Overview
- Активные хосты
- События по buckets
- Скорость поступления событий
- Статус коллекторов
**Файл:** `grafana/grafana/dashboards/aw_overview.json`
### DLP Incidents
- Количество инцидентов по типам
- Инциденты по пользователям
- Инциденты по серьезности
- Временные тренды
### Browser Monitoring
- Посещаемые домены
- Категории сайтов
- DLP нарушения
## Запуск
```bash
# Запуск всех сервисов
docker-compose up -d
# Проверка статуса
docker-compose ps
# Просмотр логов
docker-compose logs -f
# Остановка
docker-compose down
```
## Доступ
- **Grafana:** http://localhost:3000 (admin/admin)
- **Prometheus:** http://localhost:9090
- **AW Exporter:** http://localhost:9398/metrics
## Настройка алертов
### Prometheus Alerting Rules
```yaml
groups:
- name: activitywatch_alerts
rules:
- alert: AWCollectorDown
expr: aw_host_active == 0
for: 5m
labels:
severity: warning
annotations:
summary: "ActivityWatch collector down on {{ $labels.host }}"
- alert: AWExporterDown
expr: aw_exporter_up == 0
for: 2m
labels:
severity: critical
annotations:
summary: "ActivityWatch exporter is down"
```
### Grafana Notification Channels
1. Откройте Grafana
2. Configuration → Alerting → Notification channels
3. Add new channel (Email, Slack, etc.)
4. Настройте правила алертов в дашбордах
## Мониторинг
### Ключевые метрики
**ActivityWatch:**
- `aw_bucket_events_total` - общее количество событий
- `aw_host_active` - активность хостов
- `aw_exporter_scrape_duration_seconds` - время scrape
**Prometheus:**
- `up` - статус целей
- `scrape_duration_seconds` - время сбора
**Grafana:**
- `grafana_statistic` - статистика Grafana
### Health Checks
```bash
# Prometheus
curl http://localhost:9090/-/healthy
# Grafana
curl http://localhost:3000/api/health
# AW Exporter
curl http://localhost:9398/health
```
## Backup
```bash
# Backup Grafana dashboards
docker exec grafana grafana-cli admin export-dashboard > dashboards_backup.json
# Backup Prometheus data
docker exec prometheus tar -czf /tmp/prometheus_data.tar.gz /prometheus
docker cp prometheus:/tmp/prometheus_data.tar.gz ./backup/
```
## Устранение проблем
### Grafana не доступна
```bash
# Проверьте контейнер
docker-compose ps grafana
# Проверьте логи
docker-compose logs grafana
# Перезапустите
docker-compose restart grafana
```
### Prometheus не собирает метрики
```bash
# Проверьте конфиг
docker exec prometheus promtool check config /etc/prometheus/prometheus.yml
# Проверьте цели
curl http://localhost:9090/api/v1/targets
# Проверьте логи
docker-compose logs prometheus
```
### AW Exporter не работает
```bash
# Проверьте соединение с AW Server
docker exec aw-exporter curl http://aw-server:5600/api/0/buckets
# Проверьте логи
docker-compose logs aw-exporter
# Проверьте метрики
curl http://localhost:9398/metrics
```
## Производительность
### Оптимизация Prometheus
```yaml
# prometheus/prometheus.yml
global:
scrape_interval: 30s # Увеличьте интервал
evaluation_interval: 30s
storage:
tsdb:
retention.time: 30d # Уменьшите retention
```
### Оптимизация Grafana
```bash
# Увеличьте память
# docker-compose.yml
grafana:
environment:
- GF_INSTALL_PLUGINS=
- GF_SERVER_ROOT_URL=http://localhost:3000
- GF_ANALYTICS_ENABLED=false
```
## Подробнее
- [Prometheus Exporter](Prometheus-Exporter)
- [Компоненты](Components)
+248
View File
@@ -0,0 +1,248 @@
# Настройка сервера
Настройка Linux сервера для ActivityWatch-Russian.
## Требования
- Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+)
- Python 3.8+
- PostgreSQL 12+
- 4GB+ RAM
- 50GB+ disk space
## Установка через Ansible
```bash
cd ansible
ansible-playbook server-setup.yml
```
## Ручная установка
### 1. Установка ActivityWatch Server
```bash
# Скачайте binaries
wget https://github.com/ActivityWatch/activitywatch/releases/download/v0.13.1/activitywatch-v0.13.1-linux-x86_64.zip
# Распакуйте
unzip activitywatch-v0.13.1-linux-x86_64.zip
cd activitywatch-v0.13.1-linux-x86_64
# Запустите сервер
./aw-server
```
### 2. Установка PostgreSQL
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install postgresql postgresql-contrib
# CentOS/RHEL
sudo yum install postgresql-server postgresql-contrib
sudo postgresql-setup initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql
# Создайте базу данных
sudo -u postgres psql
CREATE DATABASE activitywatch;
CREATE USER aw WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE activitywatch TO aw;
\q
```
### 3. Применение RU патчей
```bash
# Скопируйте патчи
cp aw-server/aw-ru-patch.js /path/to/aw-server/
cp aw-server/aw-sw-cleanup.js /path/to/aw-server/
# Примените патчи
cd /path/to/aw-server/
node aw-ru-patch.js
```
### 4. Настройка systemd service
```bash
sudo nano /etc/systemd/system/aw-server.service
```
```ini
[Unit]
Description=ActivityWatch Server
After=network.target
[Service]
Type=simple
User=aw
WorkingDirectory=/opt/activitywatch
ExecStart=/opt/activitywatch/aw-server
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
```
```bash
sudo systemctl enable aw-server
sudo systemctl start aw-server
```
## Конфигурация
### ActivityWatch Config
```toml
# /opt/activitywatch/server-config.toml
[server]
host = "0.0.0.0"
port = 5600
[logging]
level = "INFO"
file = "/var/log/activitywatch/aw-server.log"
```
### PostgreSQL Config
```bash
# /etc/postgresql/12/main/postgresql.conf
listen_addresses = '*'
max_connections = 100
shared_buffers = 256MB
```
## Установка Python зависимостей
```bash
# Создайте virtual environment
python3 -m venv /opt/aw-venv
source /opt/aw-venv/bin/activate
# Установите зависимости
pip install psycopg2-binary requests prometheus_client
```
## Настройка скриптов агрегации
```bash
# Скопируйте скрипты
cp scripts/aggregate_dlp_events.py /opt/activitywatch/
# Настройте cron job
crontab -e
```
```cron
*/5 * * * * /opt/aw-venv/bin/python /opt/activitywatch/aggregate_dlp_events.py
```
## Firewall
```bash
# Ubuntu/Debian (ufw)
sudo ufw allow 5600/tcp
sudo ufw allow 5432/tcp
sudo ufw enable
# CentOS/RHEL (firewalld)
sudo firewall-cmd --permanent --add-port=5600/tcp
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload
```
## Проверка
```bash
# Проверка ActivityWatch Server
curl http://localhost:5600/api/0/buckets
# Проверка PostgreSQL
sudo -u postgres psql -c "SELECT version();"
# Проверка логов
sudo journalctl -u aw-server -f
```
## Мониторинг
```bash
# Проверка статуса
sudo systemctl status aw-server
# Проверка ресурсов
htop
# Проверка диска
df -h
# Проверка PostgreSQL
sudo -u postgres psql -c "SELECT pg_stat_database.datname, pg_stat_database.numbackends FROM pg_stat_database;"
```
## Backup
```bash
# Backup PostgreSQL
sudo -u postgres pg_dump activitywatch > backup_$(date +%Y%m%d).sql
# Backup ActivityWatch data
sudo tar -czf aw-backup_$(date +%Y%m%d).tar.gz /opt/activitywatch/data
# Restore
sudo -u postgres psql activitywatch < backup_20240101.sql
```
## Обновление
```bash
# Остановите сервер
sudo systemctl stop aw-server
# Backup
sudo cp -r /opt/activitywatch /opt/activitywatch.backup
# Обновите binaries
wget https://github.com/ActivityWatch/activitywatch/releases/download/v0.14.0/activitywatch-v0.14.0-linux-x86_64.zip
unzip activitywatch-v0.14.0-linux-x86_64.zip -d /opt/activitywatch/
# Запустите сервер
sudo systemctl start aw-server
```
## Устранение проблем
### Server не запускается
```bash
# Проверьте логи
sudo journalctl -u aw-server -n 50
# Проверьте порт
sudo netstat -tlnp | grep 5600
# Проверьте права
sudo ls -la /opt/activitywatch
```
### PostgreSQL connection refused
```bash
# Проверьте статус
sudo systemctl status postgresql
# Проверьте конфиг
sudo cat /etc/postgresql/12/main/postgresql.conf | grep listen_addresses
# Проверьте firewall
sudo ufw status
```
## Подробнее
- [Мониторинг стек](Monitoring-Setup)
- [DLP Агрегация](DLP-Aggregation)
+131
View File
@@ -0,0 +1,131 @@
# WebUI Русификация
Система патчей для русификации и адаптации ActivityWatch WebUI под российские требования.
## Обзор
WebUI патчи добавляют:
- Полный перевод интерфейса на русский
- DLP центр для просмотра инцидентов
- Центр управления правилами
- Группы хостов
- Русские стили и шрифты
## Архитектура
```
Original WebUI → Patch Loader → DOM Injection → Style Injection → Translation → RU WebUI
```
## Компоненты патчей
### Navigation Patches
- Скрытие лишних пунктов меню
- Добавление DLP навигации
- Обновление ссылок
### DLP Center Injection
- Центр просмотра инцидентов
- Менеджер правил
- Центр алертов
- Архивирование
### Host Groups Center
- Управление группами хостов
- Визуализация по группам
- Агрегированная статистика
### Translation
- Перевод всех текстовых элементов
- Русские форматы дат/чисел
- Кириллические шрифты
## Установка
```bash
# Применение патчей
node aw-server/aw-ru-patch.js
# Очистка старых патчей
node aw-server/aw-sw-cleanup.js
```
## Конфигурация
### Host Groups Config
```json
{
"host_groups": [
{
"id": "workstations",
"name": "Рабочие станции",
"hosts": ["WORKSTATION01", "WORKSTATION02"],
"color": "#4ecdc4"
},
{
"id": "servers",
"name": "Серверы",
"hosts": ["SERVER01", "SERVER02"],
"color": "#ff6b6b"
}
]
}
```
### DLP Settings
```json
{
"dlp_enabled": true,
"review_center_enabled": true,
"alerts_center_enabled": true,
"auto_refresh_interval": 30,
"default_severity_filter": "all"
}
```
## Функции WebUI
### DLP Review Center
- Список инцидентов
- Фильтрация по типам
- Детальный просмотр
- Архивирование
- Экспорт
### DLP Rules Manager
- Список правил
- Создание/редактирование
- Включение/выключение
- Тестирование правил
### Host Groups Center
- Управление группами
- Визуализация
- Статистика по группам
## Совместимость
- ActivityWatch v0.12.x - v0.14.x
- Chrome 90+, Firefox 88+, Edge 90+, Safari 14+
## Производительность
- Lazy loading патчей
- Кэширование переводов
- Debouncing обновлений DOM
- Virtual scrolling
## Отладка
```javascript
// Режим разработки
const DEBUG_MODE = true;
// Логирование патчей
console.log('[AW-RU-Patch] Applying patch:', patchName);
```
## Подробнее
- [Детальная диаграмма](https://github.com/igor04091968/AWatch-rus/blob/main/docs/diagrams/webui-patches.md)
- [Группы хостов](Host-Groups)
+172
View File
@@ -0,0 +1,172 @@
# Установка на Windows
Установка ActivityWatch коллекторов на Windows рабочие станции.
## Требования
- Windows 10/11
- PowerShell 5.1+
- Административские права
- Доступ к ActivityWatch Server
## Автоматическая установка
### Через Domain Controller (GPO)
```powershell
# На Domain Controller
.\windows\deploy-domain-users.ps1
```
Этот скрипт:
1. Создает GPO для развертывания
2. Копирует коллекторы на рабочие станции
3. Настраивает scheduled tasks
4. Конфигурирует DLP политики
### Для одиночного пользователя
```powershell
# Локально на workstation
.\windows\deploy-single-user.ps1
```
## Ручная установка
### 1. Установка ActivityWatch
```powershell
# Скачайте installer с сайта ActivityWatch
# Запустите installer
# Или через InnoSetup installer
.\install-kit-awindows-*.exe
```
### 2. Копирование коллекторов
```powershell
# Создайте директорию
New-Item -ItemType Directory -Path "C:\ProgramData\AWatch-rus" -Force
# Скопируйте коллекторы
Copy-Item windows\dlp-endpoint-signals-collector.ps1 "C:\ProgramData\AWatch-rus\"
Copy-Item windows\browser-domains-native-collector.ps1 "C:\ProgramData\AWatch-rus\"
Copy-Item windows\email-outbound-collector.ps1 "C:\ProgramData\AWatch-rus\"
```
### 3. Настройка конфигурации
```powershell
# Создайте конфигурационный файл
@{
aw_server_url = "http://aw-server:5600"
bucket_prefix = "aw-watcher-dlp-endpoint"
heartbeat_interval = 60
} | ConvertTo-Json | Out-File "C:\ProgramData\AWatch-rus\deployment-config.json"
```
### 4. Настройка Scheduled Task
```powershell
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5)
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\ProgramData\AWatch-rus\dlp-endpoint-signals-collector.ps1"
Register-ScheduledTask -TaskName "DLP Endpoint Collector" -Trigger $trigger -Action $action -RunLevel Highest
```
## Конфигурация DLP политик
### Создание файла политик
```powershell
@{
clipboard_rules = @(
@{
pattern = "\b\d{4}-\d{4}-\d{4}-\d{4}\b"
description = "Credit card numbers"
severity = "high"
action = "block"
}
)
print_rules = @(
@{
printer_match = "*"
document_keywords = @("confidential", "secret")
action = "block"
}
)
} | ConvertTo-Json -Depth 10 | Out-File "C:\ProgramData\AWatch-rus\dlp-policy.json"
```
## Проверка установки
```powershell
# Проверка статуса службы
Get-ScheduledTask | Where-Object {$_.TaskName -like "*DLP*"}
# Проверка логов
Get-Content "C:\ProgramData\AWatch-rus\logs\*.log" -Tail 50
# Проверка соединения с сервером
Test-NetConnection -ComputerName aw-server -Port 5600
```
## Устранение проблем
### Коллектор не запускается
```powershell
# Проверьте execution policy
Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# Проверьте права
# Запустите PowerShell от администратора
```
### Нет соединения с сервером
```powershell
# Проверьте firewall
New-NetFirewallRule -DisplayName "Allow AW Server" -Direction Outbound -Protocol TCP -RemotePort 5600 -Action Allow
# Проверьте URL в конфиге
Get-Content "C:\ProgramData\AWatch-rus\deployment-config.json"
```
### DLP не работает
```powershell
# Проверьте файл политик
Test-Path "C:\ProgramData\AWatch-rus\dlp-policy.json"
# Проверьте формат JSON
Get-Content "C:\ProgramData\AWatch-rus\dlp-policy.json" | ConvertFrom-Json
```
## Обновление
```powershell
# Остановите задачи
Unregister-ScheduledTask -TaskName "DLP Endpoint Collector" -Confirm:$false
# Обновите файлы
Copy-Item windows\dlp-endpoint-signals-collector.ps1 "C:\ProgramData\AWatch-rus\" -Force
# Перезапустите задачи
Register-ScheduledTask -TaskName "DLP Endpoint Collector" -Trigger $trigger -Action $action
```
## Удаление
```powershell
# Остановите задачи
Get-ScheduledTask | Where-Object {$_.TaskName -like "*DLP*"} | Unregister-ScheduledTask -Confirm:$false
# Удалите файлы
Remove-Item "C:\ProgramData\AWatch-rus" -Recurse -Force
# Удалите ActivityWatch (через Programs and Features)
```
## Подробнее
- [DLP Правила](DLP-Rules)
- [Компоненты](Components)