accounting
Директива 'accounting' позволяет в реальном времени отслеживать показатели входящего и исходящего трафика в контексте stream в NGINX.
Описание
Директива '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.