Я использую CentOS Linux версии 7.0.1406 (Core).
Последний раз я входил в SSH сервера 20 апреля. Все работало нормально.
Сегодня я снова зашел в систему, чтобы проверить, есть ли что-нибудь новое в error.log на моих сайтах. Я делаю это периодически. Но сегодня был сюрприз:
[root@myserver nginx]# ls -la
total 104840
drwx------ 2 nginx nginx 4096 Apr 30 03:19 .
drwxr-xr-x 7 root root 4096 May 3 03:20 ..
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 access.log
-rw-r--r-- 1 root root 17956729 Apr 30 03:19 access.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 awstats.site1.net.access.log
-rw-r--r-- 1 root root 5229 Apr 2 14:21 awstats.site1.net.access.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 awstats.site1.net.error.log
-rw-r--r-- 1 root root 4654 Apr 2 14:21 awstats.site1.net.error.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 devel.site1.net.access.log
-rw-r--r-- 1 root root 26082 Apr 20 21:12 devel.site1.net.access.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 devel.site1.net.error.log
-rw-r--r-- 1 root root 46743 Apr 20 21:14 devel.site1.net.error.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 devel.site2.pl.access.log
-rw-r--r-- 1 root root 1652 Apr 24 06:28 devel.site2.pl.access.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 devel.site2.pl.error.log
-rw-r--r-- 1 root root 237 Feb 28 21:32 devel.site2.pl.error.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 error.log
-rw-r--r-- 1 root root 596623 Apr 30 02:38 error.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 site1.net.access.log
-rw-r--r-- 1 root root 83764451 Apr 30 03:18 site1.net.access.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 site1.net.error.log
-rw-r--r-- 1 root root 147462 Apr 29 21:36 site1.net.error.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 site3.com-access.log
-rw-r--r-- 1 root root 177285 Apr 30 03:14 site3.com-access.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 site3.com-error.log
-rw-r--r-- 1 root root 27929 Apr 28 23:16 site3.com-error.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 panel.site4.com-access.log
-rw-r--r-- 1 root root 1963 Apr 25 22:22 panel.site4.com-access.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 panel.site4.com-error.log
-rw-r--r-- 1 root root 488 Apr 13 14:21 panel.site4.com-error.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 site2.pl.access.log
-rw-r--r-- 1 root root 4485845 Apr 30 03:12 site2.pl.access.log-20150430.gz
-rw-r--r-- 1 web nginx 0 Apr 30 03:19 site2.pl.error.log
-rw-r--r-- 1 root root 61613 Apr 30 01:36 site2.pl.error.log-20150430.gz
Как видите, файлы .log были размером 0КБ !!! Но данных там было предостаточно. Он просто ... улетел.
Я также заметил, что с last
, произошла странная перезагрузка, о которой я не знал:
reboot system boot 2.6.32-042stab08 Wed Apr 29 20:41 - 15:09 (8+18:27)
Теперь я снова сменил владельца / группу на nginx
и похоже, что журналы снова заполняются.
РЕДАКТИРОВАТЬ:
Here is my nginx.conf:
user web;
worker_processes 2;
pid /var/run/nginx.pid;
events {
worker_connections 768;
multi_accept on;
}
http {
rewrite_log off;
##
# Basic Settings
##
client_max_body_size 20m;
sendfile off;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
# log_format main '$remote_addr $host $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" "$request_time"';
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
include /etc/nginx/mime.types;
default_type application/octet-stream;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
fastcgi_buffer_size 16k;
fastcgi_buffers 16 16k;
##
# Logging Settings
##
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss;
##
# nginx-naxsi config
##
# Uncomment it if you installed nginx-naxsi
##
#include /etc/nginx/naxsi_core.rules;
##
# nginx-passenger config
##
# Uncomment it if you installed nginx-passenger
##
#passenger_root /usr;
#passenger_ruby /usr/bin/ruby;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Вот результат: ps axu | grep log
root 86 0.0 0.0 34636 848 ? Ss Apr29 0:05 /usr/lib/systemd/systemd-logind
root 541 0.0 0.0 9512 588 ? S Apr29 0:01 dovecot/log
mysql 593 0.6 5.7 1675596 179496 ? Sl Apr29 89:36 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root 30100 0.0 0.0 8988 900 pts/1 S+ 20:31 0:00 grep --color=auto log
У меня несколько вопросов:
Вот в чем проблема:
user web;
Nginx ожидает запуска от имени пользователя nginx, и все связанные скрипты, такие как logrotate, также ожидают этого. Это никогда не следует менять, если вы точно не знаете, что делаете и все возможные последствия. Верните его к умолчанию:
user nginx;
Gzip-архивирование зависит от ротатора логов¹. Хотя эта ссылка предназначен для Ubuntu, /etc/logrotate.d/nginx также применяется к CentOS. Чтобы узнать, что, вероятно, обрабатывает журнал:
$ ps axu | grep log
Вероятно, один из появляющихся процессов - это то, что вам нужно (например, rsyslogd).
Что произошло? В соответствии с вашими комментариями, продавец перезапускается. Чтобы подтвердить:
Информация для входа (поставщики услуг могут входить как root с открытым ключом) может отображаться в файлах / var / log, например: secure, messages, btmp (доступ с lastb), lastlog (если вы используете другую учетную запись, это будет отображать последний вход в систему, иначе вы его перезаписали), а в файлах истории учетных записей могут отображаться действия: (~ / .bash_history и другие ~ / .files).
Профилактика зависит от причины. Если это сделал производитель, вероятно, нет (но вы можете спросить, как получить предупреждение в будущем).
Рекавери тоже "наверное нет". Я видел, что nginx не может записывать свои журналы, когда они не вращаются должным образом (ротация журналов должна включать отправку сигнала USR1 в nginx). При запуске это может быть проблема с исходными разрешениями. Насколько я знаю, по умолчанию незаписываемые журналы ничего не буферизуют, их просто нет.
¹ Для быстрого доступа к сжатым файлам:
$ zcat each_file # to see one at a time
$ less *.gz # less will zcat for you. :n and :p for next/previous file
$ zcat *.gz | less # to see all files in one big stream