- 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>
293 lines
6.0 KiB
Markdown
293 lines
6.0 KiB
Markdown
# 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)
|