Назад | Перейти на главную страницу

Журналы Extrange, появляющиеся на / usr / share / nginx

У нас есть удаленный сервер системного журнала, на котором мы храним журналы всех наших виртуальных машин. Все работает нормально, за исключением того, что на некоторых машинах с nginx в каталоге появился файл журнала со всем, что было отправлено на удаленный сервер системного журнала. /usr/share/nginx.

Я проверил rsyslog conf, а также nginx conf, но я не могу понять, в чем проблема. Я удаляю этот файл журнала на /usr/share/nginx и через несколько дней он снова появляется.

django-03 mario:~$ ls -larth /usr/share/nginx/
total 1,5G
drwxr-xr-x   2 root     root   23 dic  5  2018 html
drwxr-xr-x 150 root     root 4,0K abr 23 13:34 ..
drwxr-xr-x   3 root     root  148 sep  6 06:26 .
-rw-r--r--   1 www-data root 247M oct 17 09:31 syslog:server=someserver.vps:10514,tag=nginxerror
-rw-r--r--   1 www-data root 1,2G oct 17 09:33 syslog:server=someserver.vps:10514,tag=nginxaccess

Вот конфигурация rsyslog.

###############
#### RULES ####
###############                 
... Rest of the file ...
.
.
.

*.* @@someserver.vps:10514

Как видите, rsyslog отправляет все на someserver.vps: 10514 и работает нормально.

Вот конфигурация nginx, мы отправляем журналы в обе стороны на удаленный сервер и на локальную машину на /var/log/syslog.

... Rest of the file ...
.
.
.
        ##
        # Logging Settings
        ##
        log_format vhosts '$host $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';

        access_log /var/log/nginx/access.log vhosts;
        error_log /var/log/nginx/error.log;
        access_log syslog:server=someserver.vps:10514,tag=nginxaccess vhosts;
        error_log syslog:server=someserver.vps:10514,tag=nginxerror;


        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

Как вы можете видеть на /usr/share/nginx/ появляется имя someserver.vps со всеми журналами. Это похоже на 1.2G, и мы не знаем, почему там появляется.

Похоже, что nginx не смог разрешить адрес someserver.vps (несколько дней назад у нас были проблемы с DNS), и, как вы сказали, nginx обрабатывал системный журнал как буквальное имя файла и создавал его в домашнем каталоге демонов.

Мы получали журналы на удаленном сервере системного журнала благодаря конфигурации rsyslog. И вот что меня смущало.

Спасибо большое за помощь

Из документации:

Запись в системный журнал доступна начиная с версии 1.7.1.

Если ваша версия старше, nginx будет рассматривать директивы syslog как буквальное имя файла.

В этом случае эта строка:

access_log syslog:server=someserver.vps:10514,tag=nginxaccess vhosts;

настраивает nginx для записи журнала доступа к файлу с именем syslog:server=someserver.vps:10514,tag=nginxaccess. Абсолютного пути нет, поэтому он создается в домашнем каталоге демонов.