Appearance
Настройка журналирования Nginx в Syslog и подсистему ЖУРНАЛЛИСТ
Nginx поддерживает вывод журналов как в файлы, так и напрямую в syslog. Для интеграции с подсистемой ЖУРНАЛЛИСТ рекомендуется использовать syslog, что позволяет централизованно собирать и анализировать события веб-серверов.
Общая схема
Nginx:
- генерирует access и error логи
- отправляет их в syslog или файл
- syslog (rsyslog / syslog-ng) пересылает данные в ЖУРНАЛЛИСТ
Где настраивается логирование
Основной конфигурационный файл:
bash
/etc/nginx/nginx.confили файлы виртуальных хостов:
bash
/etc/nginx/conf.d/*.confВключение syslog
Error log в syslog
nginx
error_log syslog:server=localhost:514,facility=local0,tag=nginx error;Access log в syslog
nginx
access_log syslog:server=localhost:514,facility=local0,tag=nginx,severity=info;Пример полной конфигурации
nginx
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
access_log syslog:server=localhost:514,facility=local0,tag=nginx main;
error_log syslog:server=localhost:514,facility=local0,tag=nginx error;
}Перезапуск Nginx
bash
systemctl reload nginxНастройка пересылки в ЖУРНАЛЛИСТ
rsyslog
Файл:
bash
/etc/rsyslog.d/nginx.confПример по тегу:
bash
if $programname == 'nginx' then @@journalist-server:514
& stopили по facility:
bash
local0.* @@journalist-server:514syslog-ng
bash
filter f_nginx { program("nginx"); };
destination d_journalist {
tcp("journalist-server" port(514));
};
log {
source(src);
filter(f_nginx);
destination(d_journalist);
};Проверка
- Проверить локальный syslog:
bash
tail -f /var/log/syslog- Сделать HTTP-запрос:
bash
curl http://localhost- Убедиться, что события появились в ЖУРНАЛЛИСТ
Какие события попадают
Access log
- HTTP-запросы
- коды ответов
- IP-адреса клиентов
- URL и user-agent
Error log
- ошибки конфигурации
- ошибки upstream
- таймауты
- проблемы с соединениями
Рекомендации
- использовать отдельный facility (например, local0)
- разделять access и error логи при необходимости
- использовать TCP для передачи
- ограничивать verbosity error_log
Альтернативный вариант (через файл)
Если используется файловое логирование:
nginx
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;Тогда:
bash
input(type="imfile"
File="/var/log/nginx/*.log"
Tag="nginx"
Facility="local0")Когда использовать syslog
Рекомендуется:
- при централизованном мониторинге
- при высокой нагрузке
- для корреляции с backend-сервисами
Особенности Nginx
- высокая интенсивность логов (особенно access)
- важно контролировать объем
- гибкая настройка формата логов
Краткий вывод
Nginx имеет встроенную поддержку syslog, что делает интеграцию с подсистемой ЖУРНАЛЛИСТ простой и эффективной. Это позволяет включить веб-трафик и ошибки в единую систему анализа, повышая прозрачность и управляемость инфраструктуры.