accounting_id

Директива `accounting_id` задаёт уникальный идентификатор для метрик учёта трафика, связанных с входящими запросами в NGINX.

Синтаксисaccounting_id string;
По умолчаниюnone
Контекстstream, stream server
Аргументы1

Описание

Директива accounting_id является критическим компонентом модуля учёта трафика NGINX, позволяя идентифицировать и организовывать метрики трафика для входящих запросов на основе заданных критериев. Определяя accounting_id, пользователи могут категоризировать и агрегировать данные о трафике, связанные с разными маршрутами или условиями, что обеспечивает детальный мониторинг и анализ трафика. Эта метрика оценивается во время обработки запроса, когда модуль извлекает связанный accounting_id для соответствующего обновления статистики трафика.

При использовании в контексте server или location, accounting_id может принимать как предопределённые строки, так и переменные NGINX, обеспечивая гибкость в том, как группируется трафик. Например, он может динамически устанавливать идентификатор на основе заголовков запроса (например, $http_host) или конкретных условий маршрутизации (например, разных user agents). Значения, назначенные accounting_id, помогают модулю отслеживать метрики, которые экспортируются с заданным интервалом, что облегчает исторический анализ данных и мониторинг в реальном времени. Эта система позволяет администраторам выявлять шаблоны использования, обнаруживать аномалии и лучше распределять ресурсы сервера в соответствии с требованиями трафика.

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

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

http {
    accounting on;
    accounting_log logs/http-accounting.log;
    server {
        server_name example.com;
        accounting_id $http_host;
        location / {
            accounting_id accounting_id_str;
        }
        location /api {
            accounting_id API_PC;
            if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {
                accounting_id API_MOBILE;
            }
        }
    }
}

Убедитесь, что модуль учета включен; в противном случае директива accounting_id не будет работать должным образом.

Избегайте использования сложной логики при присвоении переменной accounting_id, так как это может привести к проблемам с производительностью при обработке запросов.

Осторожно относитесь к уровню детализации метрик; слишком много уникальных accounting_id может усложнить анализ данных.

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