Re: Nginx and logrotate

2013-08-09 Пенетрантность Sergey Kobzar

Продолжение исторрии:

# la /var/log/nginx/ | grep access.log
-rw-r--r--  1 nginx root0 Aug  9 03:10 access.log
-rw-r--r--  1 nginx root 1.1G Aug  4 03:10 access.log-20130804
-rw-r--r--  1 nginx root 2.5G Aug  6 03:10 access.log-20130805
-rw-r--r--  1 nginx root 2.5G Aug  8 01:31 access.log-20130807
-rw-r--r--  1 nginx root  20M Aug  8 03:10 access.log-20130808
-rw-r--r--  1 nginx root 1.5G Aug  9 12:03 access.log-20130809

Сейчас все пишется в access.log-20130809

На днях после изменения настроек php-fpm полезли ошибки:
/var/log/nginx/error.log:2013/08/07 23:49:53 [error] 1973#0: *16067909 
FastCGI sent in stderr: the log buffer is full (1024). The access log 
request has been truncated while reading response header from upstream


Я добавил:
access_log /var/log/nginx/access.log main buffer=2k;

Ошибки прекратились, но сегодня после очередной ротации снова вылезло:

/var/log/nginx/error.log-20130809:2013/08/09 10:09:35 [error] 23100#0: 
*479024 FastCGI sent in stderr: the log buffer is full (1024). The 
access log request has been truncated


Есть какие=то идеи?


Попутный вопрос:
В документации по access_log 
http://nginx.org/ru/docs/http/ngx_http_log_module.html написано:


Размер буфера должен быть не больше размера атомарной записи в дисковый 
файл. Для FreeBSD этот размер неограничен.


Я правильно понимаю, что для Linux размер буфера не должен быть больше 
размера блока FS?


# tune2fs -l /dev/sda1 | grep 'Block size'
Block size:   4096

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx and logrotate

2013-08-09 Пенетрантность Валентин Бартенев
On Friday 09 August 2013 13:12:17 Sergey Kobzar wrote:
 Продолжение исторрии:
 
 # la /var/log/nginx/ | grep access.log
 -rw-r--r--  1 nginx root0 Aug  9 03:10 access.log
 -rw-r--r--  1 nginx root 1.1G Aug  4 03:10 access.log-20130804
 -rw-r--r--  1 nginx root 2.5G Aug  6 03:10 access.log-20130805
 -rw-r--r--  1 nginx root 2.5G Aug  8 01:31 access.log-20130807
 -rw-r--r--  1 nginx root  20M Aug  8 03:10 access.log-20130808
 -rw-r--r--  1 nginx root 1.5G Aug  9 12:03 access.log-20130809
 
 Сейчас все пишется в access.log-20130809
 
 На днях после изменения настроек php-fpm полезли ошибки:
 /var/log/nginx/error.log:2013/08/07 23:49:53 [error] 1973#0: *16067909
 FastCGI sent in stderr: the log buffer is full (1024). The access log
 request has been truncated while reading response header from upstream
 
 Я добавил:
 access_log /var/log/nginx/access.log main buffer=2k;
 
 Ошибки прекратились, но сегодня после очередной ротации снова вылезло:
 
 /var/log/nginx/error.log-20130809:2013/08/09 10:09:35 [error] 23100#0:
 *479024 FastCGI sent in stderr: the log buffer is full (1024). The
 access log request has been truncated
 
 Есть какие=то идеи?
 

Ошибки на стороне php-fpm никакого отношения к access_log на стороне nginx
не имеют.

Не говоря уж о том, что и в случае access_log в nginx-е, параметр buffer он 
вообще про другое.


 
 Попутный вопрос:
 В документации по access_log
 http://nginx.org/ru/docs/http/ngx_http_log_module.html написано:
 
 Размер буфера должен быть не больше размера атомарной записи в дисковый
 файл. Для FreeBSD этот размер неограничен.
 
 Я правильно понимаю, что для Linux размер буфера не должен быть больше
 размера блока FS?
 
 # tune2fs -l /dev/sda1 | grep 'Block size'
 Block size:   4096
 

Там много факторов, начиная от версии ядра и заканчивая типом FS.
Будь ответ настолько простым - мы бы указали это в документации.

--
Валентин Бартенев
http://nginx.org/en/donation.html
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx and logrotate

2013-08-08 Пенетрантность Boris Talovikov

08.08.2013 00:15, Sergey Kobzar пишет:

On 08/07/13 20:56, Вячеслав Кокорин wrote:



07.08.2013, в 21:06, Sergey Kobzar sergey.kob...@itcraft.org
написал(а):


Продолжение истории:

# ls -alh /var/log/nginx/
total 8.8G
drwxr-xr-x  2 nginx root 4.0K Aug  7 03:10 .
drwxr-xr-x 11 root  root 4.0K Aug  7 03:10 ..
-rw-r--r--  1 nginx root0 Aug  7 03:10 access.log
-rw-r--r--  1 nginx root 1.2G Aug  2 03:10 access.log-20130802
-rw-r--r--  1 nginx root 1.2G Aug  3 03:10 access.log-20130803
-rw-r--r--  1 nginx root 1.1G Aug  4 03:10 access.log-20130804
-rw-r--r--  1 nginx root 2.5G Aug  6 03:10 access.log-20130805
-rw-r--r--  1 nginx root 2.2G Aug  7 19:59 access.log-20130807
...

Сейчас логи складываются в access.log-20130807. + отсутствует
access.log-20130806.

cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
rotate 5
missingok
nocompress
sharedscripts
postrotate
test -r /run/nginx.pid  kill -USR1 `cat
/run/nginx.pid`
endscript
}


У вас PID файлы точно в /run ?  Обычно это /var/run


Угу:

# la /var/run
lrwxrwxrwx 1 root root 4 Jan 23  2013 /var/run - /run

# ps ax | grep nginx
  1965 ?Ss 0:00 nginx: master process /usr/sbin/nginx -c
/etc/nginx/nginx.conf
  1966 ?S 35:55 nginx: worker process
  1967 ?S 35:37 nginx: worker process
  1969 ?S 35:08 nginx: worker process
  1970 ?S 34:57 nginx: worker process
  1971 ?S 34:55 nginx: worker process
  1972 ?S 35:12 nginx: worker process
  1973 ?S 35:11 nginx: worker process
  1974 ?S 36:01 nginx: worker process

# cat /run/nginx.pid
1965



Сегодня утром получил сообщение от cron'а:
gzip: stdin: file size changed while zipping
gzip: stdin: file size changed while zipping

Но так, как в /etc/logrotate.d/nginx есть nocompress, то есть
подозрение, что это общесистемное.

Any ideas?


___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru


Здравствуйте, а можно увидеть вывод команды

logrotate -d /etc/logrotate.conf ?

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx and logrotate

2013-08-08 Пенетрантность Sergey Kobzar

On 08/08/13 10:43, Boris Talovikov wrote:


cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
rotate 5
missingok
nocompress
sharedscripts
postrotate
test -r /run/nginx.pid  kill -USR1 `cat
/run/nginx.pid`
endscript
}


У вас PID файлы точно в /run ?  Обычно это /var/run


Угу:

# la /var/run
lrwxrwxrwx 1 root root 4 Jan 23  2013 /var/run - /run

# ps ax | grep nginx
  1965 ?Ss 0:00 nginx: master process /usr/sbin/nginx -c
/etc/nginx/nginx.conf
  1966 ?S 35:55 nginx: worker process
  1967 ?S 35:37 nginx: worker process
  1969 ?S 35:08 nginx: worker process
  1970 ?S 34:57 nginx: worker process
  1971 ?S 34:55 nginx: worker process
  1972 ?S 35:12 nginx: worker process
  1973 ?S 35:11 nginx: worker process
  1974 ?S 36:01 nginx: worker process

# cat /run/nginx.pid
1965



Сегодня утром получил сообщение от cron'а:
gzip: stdin: file size changed while zipping
gzip: stdin: file size changed while zipping

Но так, как в /etc/logrotate.d/nginx есть nocompress, то есть
подозрение, что это общесистемное.

Any ideas?


___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru


Здравствуйте, а можно увидеть вывод команды

logrotate -d /etc/logrotate.conf ?


Ну вот сегодня отротировалось все нормально:
-rw-r--r--  1 nginx root 268M Aug  8 11:32 access.log
-rw-r--r--  1 nginx root 1.2G Aug  3 03:10 access.log-20130803
-rw-r--r--  1 nginx root 1.1G Aug  4 03:10 access.log-20130804
-rw-r--r--  1 nginx root 2.5G Aug  6 03:10 access.log-20130805
-rw-r--r--  1 nginx root 2.5G Aug  8 01:31 access.log-20130807
-rw-r--r--  1 nginx root  20M Aug  8 03:10 access.log-20130808

# logrotate -d /etc/logrotate.conf
reading config file /etc/logrotate.conf
including /etc/logrotate.d
reading config file elog-save-summary
reading config file exim
reading config file munin
reading config file mysql
reading config file nginx
reading config file openrc
reading config file php-fpm
reading config file rsyncd
reading config file sphinx
reading config file syslog-ng

Handling 15 logs

...

rotating pattern: /var/log/nginx/*.log  after 1 days (5 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/nginx/default-ssl_access.log
  log does not need rotating
considering log /var/log/nginx/default-ssl_error.log
  log does not need rotating
considering log /var/log/nginx/access.log
  log does not need rotating
considering log /var/log/nginx/error.log
  log does not need rotating

Ротацию логов для других сервисов поскипал.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx and logrotate

2013-08-07 Пенетрантность Sergey Kobzar

Продолжение истории:

# ls -alh /var/log/nginx/
total 8.8G
drwxr-xr-x  2 nginx root 4.0K Aug  7 03:10 .
drwxr-xr-x 11 root  root 4.0K Aug  7 03:10 ..
-rw-r--r--  1 nginx root0 Aug  7 03:10 access.log
-rw-r--r--  1 nginx root 1.2G Aug  2 03:10 access.log-20130802
-rw-r--r--  1 nginx root 1.2G Aug  3 03:10 access.log-20130803
-rw-r--r--  1 nginx root 1.1G Aug  4 03:10 access.log-20130804
-rw-r--r--  1 nginx root 2.5G Aug  6 03:10 access.log-20130805
-rw-r--r--  1 nginx root 2.2G Aug  7 19:59 access.log-20130807
...

Сейчас логи складываются в access.log-20130807. + отсутствует 
access.log-20130806.


cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
rotate 5
missingok
nocompress
sharedscripts
postrotate
test -r /run/nginx.pid  kill -USR1 `cat /run/nginx.pid`
endscript
}


Сегодня утром получил сообщение от cron'а:
gzip: stdin: file size changed while zipping
gzip: stdin: file size changed while zipping

Но так, как в /etc/logrotate.d/nginx есть nocompress, то есть 
подозрение, что это общесистемное.


Any ideas?

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx and logrotate

2013-08-07 Пенетрантность Sergey Kobzar

On 08/07/13 20:56, Вячеслав Кокорин wrote:



07.08.2013, в 21:06, Sergey Kobzar sergey.kob...@itcraft.org написал(а):


Продолжение истории:

# ls -alh /var/log/nginx/
total 8.8G
drwxr-xr-x  2 nginx root 4.0K Aug  7 03:10 .
drwxr-xr-x 11 root  root 4.0K Aug  7 03:10 ..
-rw-r--r--  1 nginx root0 Aug  7 03:10 access.log
-rw-r--r--  1 nginx root 1.2G Aug  2 03:10 access.log-20130802
-rw-r--r--  1 nginx root 1.2G Aug  3 03:10 access.log-20130803
-rw-r--r--  1 nginx root 1.1G Aug  4 03:10 access.log-20130804
-rw-r--r--  1 nginx root 2.5G Aug  6 03:10 access.log-20130805
-rw-r--r--  1 nginx root 2.2G Aug  7 19:59 access.log-20130807
...

Сейчас логи складываются в access.log-20130807. + отсутствует 
access.log-20130806.

cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
rotate 5
missingok
nocompress
sharedscripts
postrotate
test -r /run/nginx.pid  kill -USR1 `cat /run/nginx.pid`
endscript
}


У вас PID файлы точно в /run ?  Обычно это /var/run


Угу:

# la /var/run
lrwxrwxrwx 1 root root 4 Jan 23  2013 /var/run - /run

# ps ax | grep nginx
 1965 ?Ss 0:00 nginx: master process /usr/sbin/nginx -c 
/etc/nginx/nginx.conf

 1966 ?S 35:55 nginx: worker process
 1967 ?S 35:37 nginx: worker process
 1969 ?S 35:08 nginx: worker process
 1970 ?S 34:57 nginx: worker process
 1971 ?S 34:55 nginx: worker process
 1972 ?S 35:12 nginx: worker process
 1973 ?S 35:11 nginx: worker process
 1974 ?S 36:01 nginx: worker process

# cat /run/nginx.pid
1965



Сегодня утром получил сообщение от cron'а:
gzip: stdin: file size changed while zipping
gzip: stdin: file size changed while zipping

Но так, как в /etc/logrotate.d/nginx есть nocompress, то есть подозрение, что 
это общесистемное.

Any ideas?


___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx and logrotate

2013-08-01 Пенетрантность Sergey Kobzar

Валентин, спасибо

On 08/01/13 01:14, Валентин Бартенев wrote:



https://bugs.gentoo.org/show_bug.cgi?id=473036



1. upstream explained it and accepted the bug report, this is now on 
their todo-list - это действительно так?


2. # la /var/log/ | grep nginx

drwxr-x---  2 rootroot 12K Aug  1 03:10 nginx

Т.е. фикс должен быть вида chown nginx /var/log/nginx?

3. Какой сигнал при ротации все же правильнее слать?

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx and logrotate

2013-08-01 Пенетрантность Sergey Kobzar

On 08/01/13 05:41, ad...@sysadmins.el.kg wrote:


У меня (RHEL 6) в качестве postrotate-команды используется эта:
/etc/init.d/nginx reload  /dev/null 2/dev/null || true
в скрипте /etc/init.d/nginx в функции отвечающей за reload используется
killproc $nginx -HUP

Попробуйте сменить -USR1 в вашей команде на -HUP?
Вот так это выглядит целиком:
/var/log/nginx/*log {
missingok
compress
notifempty
sharedscripts
postrotate
 /sbin/service nginx reload  /dev/null 2/dev/null || true
endscript
}


Хочется услышать мнение разработчиков, какой сингал правильнее посылать 
при ротации логов. Перестартовать мастер процесс - как-то не фонтан при 
high load.


___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx and logrotate

2013-08-01 Пенетрантность boris


01.08.2013, 13:34, Sergey Kobzar sergey.kob...@itcraft.org:
 On 08/01/13 05:41, ad...@sysadmins.el.kg wrote:

  У меня (RHEL 6) в качестве postrotate-команды используется эта:
  /etc/init.d/nginx reload  /dev/null 2/dev/null || true
  в скрипте /etc/init.d/nginx в функции отвечающей за reload используется
  killproc $nginx -HUP

  Попробуйте сменить -USR1 в вашей команде на -HUP?
  Вот так это выглядит целиком:
  /var/log/nginx/*log {
  missingok
  compress
  notifempty
  sharedscripts
  postrotate
   /sbin/service nginx reload  /dev/null 2/dev/null || true
  endscript
  }

 Хочется услышать мнение разработчиков, какой сингал правильнее посылать
 при ротации логов. Перестартовать мастер процесс - как-то не фонтан при
 high load.

мнение разработчиков можно узнать, прочитав nginx(8)
nginx -s reopen - переоткроет логи

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx and logrotate

2013-08-01 Пенетрантность Sergey Kobzar

On 08/01/13 12:20, Maxim Dounin wrote:

Hello!

On Thu, Aug 01, 2013 at 10:27:39AM +0300, Sergey Kobzar wrote:


Валентин, спасибо

On 08/01/13 01:14, Валентин Бартенев wrote:



https://bugs.gentoo.org/show_bug.cgi?id=473036



1. upstream explained it and accepted the bug report, this is now on
their todo-list - это действительно так?


Ребята в очередной раз пришли с идеей, что надо не переоткрывать
логи рабочими процессами, а посылать им открытый файловый
дескриптор из мастера.  Это часть посылать была accepted, т.к. в
trac'е у нас её до сих пор не было (вопрос обсуждался столько раз,
что даже и в голову никому не приходило заводить это в trac'е).
Всё остальное - было explained.

http://trac.nginx.org/nginx/ticket/376


2. # la /var/log/ | grep nginx

drwxr-x---  2 rootroot 12K Aug  1 03:10 nginx

Т.е. фикс должен быть вида chown nginx /var/log/nginx?


Да.


3. Какой сигнал при ротации все же правильнее слать?


USR1 - правильный сигнал, предназначенный специально для ротации
логов.


Максим, спасибо большое за ответ.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Nginx and logrotate

2013-07-31 Пенетрантность ad...@sysadmins.el.kg

01.08.2013 03:07, Sergey Kobzar пишет:

Linux 3.8.13-gentoo x86_64
nginx-1.4.1-r2
logrotate-3.8.4

cat /etc/logrotate.d/nginx:
/var/log/nginx/*.log {
daily
rotate 5
missingok
nocompress
sharedscripts
postrotate
test -r /run/nginx.pid  kill -USR1 `cat /run/nginx.pid`
endscript
}

/etc/logrotate.conf:
weekly
rotate 4
create
dateext
compress
notifempty
nomail
noolddir
include /etc/logrotate.d
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}

# ls -alh /var/log/nginx/ | grep access.log
-rw-r--r--  1 nginx root0 Jul 30 03:10 access.log
-rw-r--r--  1 nginx root 4.7G Jul 18 10:09 access.log-20130712
-rw-r--r--  1 nginx root 7.6G Jul 29 09:46 access.log-20130719
-rw-r--r--  1 nginx root 1.4G Jul 31 22:04 access.log-20130730

Т.е. запись в access.log не идет, а растет access.log-20130730.

kill -USR1 `cat /run/nginx.pid` ситуацию не меняет.

Что я не так?

Спасибо.

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

У меня (RHEL 6) в качестве postrotate-команды используется эта:
/etc/init.d/nginx reload  /dev/null 2/dev/null || true
в скрипте /etc/init.d/nginx в функции отвечающей за reload используется
killproc $nginx -HUP

Попробуйте сменить -USR1 в вашей команде на -HUP?
Вот так это выглядит целиком:
/var/log/nginx/*log {
missingok
compress
notifempty
sharedscripts
postrotate
/sbin/service nginx reload  /dev/null 2/dev/null || true
endscript
}

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru