accounting

Директива 'accounting' позволяет в реальном времени отслеживать показатели входящего и исходящего трафика в контексте stream в NGINX.

Синтаксисaccounting on | off;
По умолчаниюoff
Контекстstream
Аргументы1

Описание

Директива 'accounting' в NGINX предоставляет возможность отслеживать и регистрировать показатели входящего и исходящего трафика для stream-подключений, давая представление об использовании ресурсов и закономерностях трафика. Включив эту директиву, пользователи получают доступ к подробной статистике трафика, которую можно агрегировать и записывать для последующего анализа. Для этого требуется указать один аргумент для включения ('on') или отключения ('off') функции accounting, что позволяет настраивать систему мониторинга в соответствии с конкретными потребностями или ограничениями ресурсов.

Эта директива работает в контексте stream, который предназначен для обработки TCP/UDP-трафика, а не HTTP. Когда 'accounting' установлена в 'on', NGINX начинает отслеживать показатели трафика, связанные с указанными потоками. Она ведёт записи запросов и ответов, а также отслеживает метрики, идентифицируемые уникальным 'accounting_id'. Результаты сбора данных периодически экспортируются в настроенные лог-файлы или системы мониторинга, в зависимости от конфигурации логирования вместе с директивой 'accounting_log'.

В дополнение к директиве 'accounting' пользователям также необходимо использовать вспомогательные директивы, такие как 'accounting_log' для указания места хранения логов и 'accounting_id' для определения того, как ресурсы должны быть сегрегированы на основе идентификаторов трафика. Это повышает возможность выполнять детальный анализ трафика по различным сервисам и сегментам пользователей.

Пример конфига

stream {
    accounting on;
    accounting_log logs/stream-accounting.log;

    server {
        listen 12345;
        accounting_id $remote_addr;  # Track traffic by remote client IP address
    }
}

Убедитесь, что директива 'accounting' используется только в контексте stream; попытка использовать её в других контекстах приведёт к ошибке.

Обязательно определите директиву 'accounting_log' для захвата регистрируемых метрик; в противном случае данные не будут записаны.

Тщательно выбирайте формат 'accounting_id', чтобы избежать конфликтов между разными streams.

← Ко всем директивам