# Графики мониторинга pfSense - трафик и ресурсы

> Мониторинг производительности pfSense - RRD графики трафика по интерфейсам, загрузка процессора, использование памяти и состояния файрвола

Source: https://opennix.org/docs/pfsense/monitoring/pfsense-monitoring-graphs/


pfSense включает встроенную систему мониторинга производительности на основе RRD (Round-Robin Database). Система автоматически собирает метрики с момента установки - никакой дополнительной конфигурации не требуется. Данные хранятся в файлах RRD фиксированного размера, что исключает неконтролируемый рост потребления дискового пространства. Старые записи постепенно агрегируются и замещаются новыми, сохраняя при этом общую картину за длительный период.

Графики доступны через **Status > Monitoring** и отображают данные по множеству категорий - от пропускной способности интерфейсов до загрузки процессора и состояния таблицы соединений файрвола.

## Виджеты Dashboard

Главная страница pfSense (**Dashboard**) предоставляет виджеты для оперативного мониторинга без перехода в раздел графиков. Управление виджетами осуществляется через значок **+** в заголовке Dashboard.

### System Information

Виджет отображает общую информацию о системе в реальном времени:

- **Имя хоста и версия** - имя системы, версия pfSense и базовой ОС FreeBSD
- **Процессор** - модель, частота, количество ядер и текущая загрузка в процентах
- **Память** - общий объём RAM и текущее потребление
- **Диск** - использование дискового пространства по разделам
- **Uptime** - время работы системы с последней перезагрузки
- **Температура** - температура CPU (при наличии поддержки датчиков)

### Traffic Graphs

Виджет визуализирует трафик в реальном времени на выбранном интерфейсе. Отображаются входящий и исходящий потоки с указанием текущей скорости в bit/s или Byte/s. Интервал обновления и масштаб графика настраиваются через параметры виджета.

### Interface Statistics

Виджет предоставляет числовые показатели по каждому сетевому интерфейсу:

| Показатель | Описание |
|---|---|
| Bytes In/Out | Объём переданных и полученных данных |
| Packets In/Out | Количество переданных и полученных пакетов |
| Errors In/Out | Количество ошибок на интерфейсе |
| Collisions | Количество коллизий (для Ethernet) |

### Gateways

Виджет отображает статус каждого настроенного шлюза: IP-адрес, время отклика (RTT), потерю пакетов и текущее состояние (Online, Warning, Down).

## Графики мониторинга (Status > Monitoring)

Основной интерфейс графиков доступен через **Status > Monitoring**. По умолчанию отображается график загрузки процессора. Настройки графиков позволяют переключать категории, временные периоды и комбинировать данные на двух осях.

### Категории графиков

pfSense предоставляет графики по следующим категориям:

#### System

Графики системных ресурсов включают:

- **CPU Usage** - загрузка процессора по типам: user, system, interrupt, nice, idle. Позволяет выявить процессы, создающие чрезмерную нагрузку. Постоянная загрузка выше 80% указывает на необходимость оптимизации правил файрвола или увеличения ресурсов
- **Memory Usage** - использование оперативной памяти: active, inactive, wired, cached, free. pfSense на FreeBSD активно использует кэширование, поэтому низкое значение free не обязательно указывает на проблему
- **States** - количество записей в таблице состояний файрвола. Резкий рост может свидетельствовать о сканировании портов, DDoS-атаке или некорректной работе приложения
- **MBUF Clusters** - использование буферов памяти ядра для сетевых операций. Исчерпание MBUF приводит к потере пакетов

#### Traffic

Графики пропускной способности по каждому интерфейсу:

- **Traffic** - скорость входящего и исходящего трафика (bit/s). Доступен для каждого интерфейса отдельно - WAN, LAN, OPTx, VPN-туннели
- **Packets** - количество пакетов в секунду (pps) по интерфейсам. Полезно для выявления атак с малым размером пакетов, которые создают высокую нагрузку при незначительном объёме трафика в bit/s

#### Quality

Графики качества связи для каждого шлюза:

- **Quality** - время отклика (latency) и потеря пакетов (packet loss) до целевого хоста мониторинга шлюза. Значения определяются параметрами мониторинга, настроенными в **System > Routing > Gateways**
- Графики качества критически важны для Multi-WAN конфигураций - они позволяют отследить деградацию канала до момента переключения на резервный шлюз

#### Captive Portal

Графики активности Captive Portal: количество одновременных подключений, пропускная способность и статистика аутентификации.

#### NTP

Графики точности синхронизации времени: смещение (offset) и задержка (delay) относительно серверов NTP.

#### Queue / Queuedrops

Графики работы Traffic Shaper:

- **Queue** - объём трафика, прошедшего через каждую очередь
- **Queuedrops** - количество отброшенных пакетов по очередям. Высокое значение drops указывает на недостаточную ширину канала для данной очереди

#### DHCP

Графики активности DHCP сервера: количество выданных аренд, запросов и отказов.

#### Cellular

Графики сотовых интерфейсов (при наличии): уровень сигнала, тип подключения (3G/4G/LTE).

#### Wireless

Графики беспроводных интерфейсов (при наличии): количество клиентов, уровень сигнала, шум.

#### VPN Users

Графики количества активных VPN-подключений по типам (OpenVPN, IPsec, WireGuard).

### Временные периоды

Система поддерживает следующие предустановленные периоды отображения:

| Период | Разрешение | Применение |
|---|---|---|
| 1 час | Максимальное (секунды) | Диагностика текущих проблем |
| 8 часов | Высокое | Анализ рабочего дня |
| 1 день | Среднее | Суточные паттерны |
| 1 неделя | Среднее | Недельные тренды |
| 1 месяц | Низкое | Месячные тенденции |
| 1 год | Минимальное | Долгосрочное планирование |

Разрешение графиков автоматически снижается по мере увеличения временного периода - это обусловлено механизмом агрегации RRD. Данные за последний час представлены с максимальной детализацией, тогда как годовые графики отображают усреднённые значения.

В нижней части графика выводятся имя хоста, выбранный период и разрешение данных.

### Настройка отображения

Графики поддерживают комбинирование категорий на двух осях:

- **Левая ось** - основная метрика (например, Traffic WAN)
- **Правая ось** - дополнительная метрика для сравнения (например, CPU Usage)

Легенда графика расположена в верхнем правом углу. Нажатие на источник данных в легенде скрывает его с графика - это полезно, когда пиковые значения одной метрики сжимают масштаб и затрудняют чтение остальных.

Под графиком отображается таблица со статистическими данными: минимум, среднее, максимум, текущее значение и 95-й процентиль (для трафика).

> **Внимание**:
>
> Итоговые суммы (totals) не отображаются, поскольку формат хранения RRD не позволяет вычислить точные итоговые значения. Для подсчёта суммарного объёма трафика следует установить пакет **Status Traffic Totals** через **System > Package Manager**.

## Мониторинг трафика по интерфейсам

Каждый сетевой интерфейс pfSense имеет собственный набор графиков трафика. Это позволяет контролировать:

- **WAN** - общий объём трафика из интернета, выявление аномальных пиков
- **LAN** - внутрисетевой трафик, идентификация активных потребителей полосы пропускания
- **OPTx** - трафик дополнительных интерфейсов (DMZ, гостевые сети, серверные VLAN)
- **VPN** - трафик через туннели OpenVPN, IPsec, WireGuard

Для сравнения трафика нескольких интерфейсов следует использовать функцию двух осей или открыть графики в нескольких вкладках браузера.

## Экспорт данных RRD

Данные мониторинга хранятся в файлах RRD в каталоге `/var/db/rrd/`. Экспорт данных возможен несколькими способами:

### Резервное копирование через GUI

Файлы RRD включаются в резервную копию конфигурации при создании бэкапа через **Diagnostics > Backup & Restore** с включённой опцией RRD data.

### Экспорт через командную строку

Для экспорта данных в формат XML следует использовать утилиту `rrdtool`:

```bash
rrdtool dump /var/db/rrd/wan-traffic.rrd > wan-traffic.xml
```

### NetFlow

Для детального анализа трафика с разбивкой по IP-адресам, портам и протоколам следует использовать пакет **softflowd**, экспортирующий данные NetFlow на внешний коллектор (ntopng, Elastiflow, ManageEngine NetFlow Analyzer).

## Внешний мониторинг через SNMP

pfSense поддерживает протокол SNMP для интеграции с внешними системами мониторинга. Настройка выполняется через **Services > SNMP**.

### Конфигурация SNMP

Основные параметры:

- **Enable SNMP Daemon** - активация службы SNMP
- **System Location / Contact** - информационные поля для идентификации устройства
- **Read Community String** - строка доступа для чтения (по умолчанию public - необходимо изменить)
- **SNMP Modules** - выбор модулей: MibII, Netgraph, PF, Host Resources, UCD
- **Bind Interface** - интерфейс, на котором принимаются SNMP-запросы (следует ограничить LAN или управляющим интерфейсом)

> **Внимание**:
>
> Строку community по умолчанию (public) необходимо изменить на уникальное значение. Открытый SNMP с community public - распространённый вектор атаки для разведки сети.

### Интеграция с системами мониторинга

pfSense через SNMP интегрируется со следующими платформами:

| Платформа | Протокол | Особенности |
|---|---|---|
| Zabbix | SNMP v2c/v3 | Готовые шаблоны для pfSense, мониторинг интерфейсов и CPU |
| LibreNMS | SNMP v2c/v3 | Автообнаружение, графики трафика, оповещения |
| PRTG | SNMP v2c/v3 | Сенсоры для пропускной способности и загрузки системы |
| Nagios/Icinga | SNMP v2c/v3 | Проверки через check_snmp, интеграция с PNP4Nagios |

### Prometheus и Grafana

Для интеграции с Prometheus и визуализации в Grafana используется пакет **Telegraf** (устанавливается через **System > Package Manager**). Telegraf собирает системные метрики и экспортирует их в формате, совместимом с Prometheus.

Альтернативный вариант - использование SNMP Exporter для Prometheus, который извлекает метрики pfSense через SNMP и предоставляет их в формате Prometheus metrics.

Типовой стек мониторинга:

```
pfSense (SNMP/Telegraf) --> Prometheus --> Grafana
```

## Устранение неполадок графиков

### Графики пустые или отображают нулевые значения

Возможные причины:

1. **Недостаточно данных** - после перезагрузки или свежей установки графикам требуется время для накопления данных. Графики за 1 час заполняются в течение нескольких минут, годовые - в течение суток
2. **Повреждение файлов RRD** - перезагрузка во время записи может повредить файл. Решение: удалить повреждённый файл из `/var/db/rrd/` - система создаст новый автоматически
3. **RAM-диск для /var** - при использовании RAM-диска данные RRD теряются после перезагрузки. pfSense выполняет периодическое сохранение RRD на постоянное хранилище, однако данные между последним сохранением и перезагрузкой будут утеряны

### Потеря данных RRD после перезагрузки

При использовании RAM-диска для `/var` (типично для установок на CF-карту или SSD с минимизацией записи):

- pfSense автоматически сохраняет RRD-данные на постоянное хранилище через настраиваемый интервал
- При некорректном завершении работы (отключение питания) данные с момента последнего сохранения теряются
- Рекомендуется использовать UPS и выполнять корректное завершение работы через **Diagnostics > Halt System**

### Расхождение данных графиков и реального трафика

RRD графики отображают усреднённые значения. Кратковременные пики трафика могут не отображаться на графиках с низким разрешением (неделя, месяц, год). Для точного анализа следует использовать графики с минимальным периодом (1 час, 8 часов).

## Связанные разделы

- [Системные логи pfSense](/docs/pfsense/monitoring/pfsense-system-logs/) - журналы событий для детального анализа инцидентов, зафиксированных на графиках
- [Инструменты диагностики pfSense](/docs/pfsense/monitoring/pfsense-diagnostics/) - утилиты для углублённого анализа сетевых проблем
- [Traffic Shaper](/docs/pfsense/traffic-shaper/) - настройка приоритизации трафика, статистика которой отображается на графиках Queue/Queuedrops

