Ротация логов apache хостинг freebsd

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
wien
мл. сержант
Сообщения: 146
Зарегистрирован: 2014-06-26 18:38:44
Откуда: DafaultCity
Контактная информация:

Ротация логов apache хостинг freebsd

Непрочитанное сообщение wien » 2016-04-27 8:46:48

Всем здравым - мира!

Имеется скромный сервер веб хостинга под FreeBSD 9.3. Использую Apache 2.2 + MySQL 5.6 + fastcgi.

Структура папок каждого пользователя выглядит следующим образом:
www - файлы веб проектов данного юзера;
cgi-bin - враппер и настройки пхп;
tmp - файлы сессий и всякая хня;
log - логи апача access.log и error.log (о них и пойдет речь далее).

Файлы логов со временем растут, хотелось бы организовать правильную ротацию. Ротация остальных логов у меня настроена /etc/newsyslog.conf. Есть ли у кого готовые решения (скрипты или конфиги) для ротации логов на хостинге? Вопрос задаю не просто так. Поскольку при вышеобозначенной связке каждый сайт "запущен" от собственного пользователя, возможно есть какие-то нюансы.

Буду признателен за любую информацию.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 331
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

Ротация логов apache хостинг freebsd

Непрочитанное сообщение Amadeus » 2016-04-27 18:44:44

wien писал(а): Файлы логов со временем растут, хотелось бы организовать правильную ротацию. Ротация остальных логов у меня настроена /etc/newsyslog.conf. Есть ли у кого готовые решения (скрипты или конфиги) для ротации логов на хостинге? Вопрос задаю не просто так. Поскольку при вышеобозначенной связке каждый сайт "запущен" от собственного пользователя, возможно есть какие-то нюансы.
Эм.., а user:group в newsyslog в этом случае не подойдет? Там же элементарно все
Нет ничего невозможного

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35147
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Ротация логов apache хостинг freebsd

Непрочитанное сообщение Alex Keda » 2016-04-28 22:36:27

кстати - толи с 10 толи уже даже в 9 - оно инклюды поддерживает.
очень удобно - не надо один файл феерического размера пилить

Код: Выделить всё

manager# ll /usr/local/etc/newsyslog.conf.d/
total 12
-rw-r--r--  1 root  wheel  -  1,7K 27 апр 23:55 httpd.conf
-rw-r--r--  1 root  wheel  -  253B 19 мар 05:37 net-snmp.conf
-rw-r--r--  1 root  wheel  -  372B 23 фев  2015 nginx.conf
Убей их всех! Бог потом рассортирует...

Аватара пользователя
wien
мл. сержант
Сообщения: 146
Зарегистрирован: 2014-06-26 18:38:44
Откуда: DafaultCity
Контактная информация:

Ротация логов apache хостинг freebsd

Непрочитанное сообщение wien » 2016-04-29 20:25:46

2 Amadeus: Оно конечно ротируется, но после ротации в файлах access.log, errors.log лишь одна строчка:

Код: Выделить всё

Apr 28 20:44:00 multisrv newsyslog[775]: logfile turned over due to size>8192K
И запись в файл не идет. Сделал apachectl graceful и запись пошла, но руками делать не очень удобно. Есть еще идеи?

2 Alex Keda На 9.3 у меня уже эта фишка поддерживается.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35147
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Ротация логов apache хостинг freebsd

Непрочитанное сообщение Alex Keda » 2016-04-29 21:24:32

Код: Выделить всё

vm1# head -7 /usr/local/etc/newsyslog.conf.d/httpd.conf 
# configuration file for newsyslog for net-snmp
#
# see newsyslog.conf(5) for details
#
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
/home/httpd-logs/www.lissyara.su.access.log   644  7     *    @T00    JC      /var/run/httpd.pid
/home/httpd-logs/www.lissyara.su.error.log    644  7     *    @T00    JC      /var/run/httpd.pid
Убей их всех! Бог потом рассортирует...

Аватара пользователя
wien
мл. сержант
Сообщения: 146
Зарегистрирован: 2014-06-26 18:38:44
Откуда: DafaultCity
Контактная информация:

Ротация логов apache хостинг freebsd

Непрочитанное сообщение wien » 2016-04-30 12:19:21

Alex Keda, огромное человеческое спасибо, все работает как надо.

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 331
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

Ротация логов apache хостинг freebsd

Непрочитанное сообщение Amadeus » 2016-05-01 22:50:55

2 Amadeus: Оно конечно ротируется, но после ротации в файлах access.log, errors.log лишь одна строчка:
Alex Keda, огромное человеческое спасибо, все работает как надо.

Я позволю себе дополнить, а почему, можете объяснить? Что вам Лис показал? И почему цитата 1 стало 2?

Даже. давайте вот так
signal_number
This optional field specifies the signal number that will be sent
to the daemon process (or to all processes in a process group, if
the U flag was specified). If this field is not present, then a
SIGHUP signal will be sent.
Нет ничего невозможного

Аватара пользователя
wien
мл. сержант
Сообщения: 146
Зарегистрирован: 2014-06-26 18:38:44
Откуда: DafaultCity
Контактная информация:

Ротация логов apache хостинг freebsd

Непрочитанное сообщение wien » 2016-05-04 7:55:49

Amadeus писал(а): Я позволю себе дополнить, а почему, можете объяснить? Что вам Лис показал?
Я добавил в конец строки /var/run/httpd.pid и все заработало, логи стали ротироваться в пользовательских папках.
Хотя 2 основных лог файла апача /var/log/httpd-access.log и /var/log/httpd-error.log ротируются спокойно и без вышеобозначенной строки.
И почему цитата 1 стало 2?
Не понял вопрос.

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 331
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

Ротация логов apache хостинг freebsd

Непрочитанное сообщение Amadeus » 2016-05-04 12:35:38

Я добавил в конец строки /var/run/httpd.pid и все заработало, логи стали ротироваться в пользовательских папках.
Что вы добавили?) и почему заработало? В этом был вопрос
Нет ничего невозможного

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35147
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Ротация логов apache хостинг freebsd

Непрочитанное сообщение Alex Keda » 2016-05-04 12:52:46

http://man.freebsd.org/newsyslog.conf/
просто он не прочёл ... и всё.
Убей их всех! Бог потом рассортирует...

FiL
ст. лейтенант
Сообщения: 1368
Зарегистрирован: 2010-02-05 0:21:40

Ротация логов apache хостинг freebsd

Непрочитанное сообщение FiL » 2016-05-11 17:29:47

Не нравится мне такой подход. И вот почему - если у апача много логов, то в конфиге newsyslog'a будет много записей. А потом newsyslog их процессит по одному. И для каждого лога он отдельно лог переименовывает, а потом перезапускает апач. При том, что на деле перезапустить апач хватает одного раза.

Ну и по-любому, если даже при ротации каждого лога перезапускать апач, то не _HUP, а -USR1. В мане написано почему.

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 331
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

Ротация логов apache хостинг freebsd

Непрочитанное сообщение Amadeus » 2016-05-11 17:35:22

И вот почему - если у апача много логов, то в конфиге newsyslog'a будет много записей
Вообще то нет) там в том же мане написано как сделать в 1 строчку. Если соблюдать здоровую логику.

Отправлено спустя 39 секунд:
FiL писал(а): а -USR1
А тут да согласен, у самого везде -30.
Нет ничего невозможного

FiL
ст. лейтенант
Сообщения: 1368
Зарегистрирован: 2010-02-05 0:21:40

Ротация логов apache хостинг freebsd

Непрочитанное сообщение FiL » 2016-05-11 17:37:37

Amadeus писал(а):
И вот почему - если у апача много логов, то в конфиге newsyslog'a будет много записей
Вообще то нет) там в том же мане написано как сделать в 1 строчку. Если соблюдать здоровую логику.
Я ведь не сказал, что нельзя сделать в 1 строчку. Я сказал, что мне не нравится так, как тут предложено. А тут предложено с одной строчкой на каждый лог. И именно это мне и не нравится.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35147
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Ротация логов apache хостинг freebsd

Непрочитанное сообщение Alex Keda » 2016-05-18 7:59:06

Звёздочку юзайте.
Мне, на десятке сайтов, - красивость конфига дороже
Убей их всех! Бог потом рассортирует...

icb
лейтенант
Сообщения: 736
Зарегистрирован: 2008-07-15 16:11:11

Ротация логов apache хостинг freebsd

Непрочитанное сообщение icb » 2016-05-19 23:30:01

Amadeus писал(а): Вообще то нет) там в том же мане написано как сделать в 1 строчку. Если соблюдать здоровую логику.
Имеется ввиду флаг U или иное?
FiL писал(а):а -USR1
Amadeus писал(а): у самого везде -30
А зачем минус?
В этом поле (signal) он же вроде даже не предусмотрен.

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 331
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

Ротация логов apache хостинг freebsd

Непрочитанное сообщение Amadeus » 2016-05-22 1:40:12

U indicates that the file specified by path_to_pid_cmd_file
will contain the ID for a process group instead of a
process. This option also requires that the first line
in that file be a negative value to distinguish it from a
process ID.
Хде?)

Наверное все таки тут
G indicates that the specified logfile_name is a shell pat-
tern, and that newsyslog(8) should archive all filenames
matching that pattern using the other options on this
line. See glob(3) for details on syntax and matching
rules.
#custom_log
/home/sphinx/*.log _sphinx:_sphinx 644 7 * @T00 JG
/home/sphinx/*.txt _sphinx:_sphinx 644 7 * @T00 JG

#sphinx_log
/var/log/sphinxsearch/*.log _sphinx:_sphinx 600 7 * @T00 JG /var/run/sphinxsearch/searchd.pid 30

Ротирует штук дцать логов

А зачем минус?
В этом поле (signal) он же вроде даже не предусмотрен.
Это "жаргон"), на самом деле да, тут просто обозначение сигнала
Нет ничего невозможного

WideAreaNetwork
ефрейтор
Сообщения: 57
Зарегистрирован: 2017-01-10 14:37:13

Ротация логов apache хостинг freebsd

Непрочитанное сообщение WideAreaNetwork » 2018-10-11 21:19:52

всем привет!
ведутся логи апача httpd-access.log и httpd-error.log, вопрос в том как правильно сделать запись в newsyslog

Код: Выделить всё

/var/log/httpd-access.log               644  7     102400  *     JC
/var/log/httpd-error.log                644  7     102400  *     JC
или же

Код: Выделить всё

/var/log/httpd-access.log  www:wheel   600  7    102400  *     JC      /var/run/httpd.pid 30
/var/log/httpd-error.log   www:wheel   600  7    102400  *     JC      /var/run/httpd.pid 30
так как владельца и группу указывать не обязательно то можно ли свести к виду?

Код: Выделить всё

/var/log/httpd-access.log     600  7    102400  *     JC      /var/run/httpd.pid 30
/var/log/httpd-error.log      600  7    102400  *     JC      /var/run/httpd.pid 30
насколько важно указывать пид.файл? или же можно обойтись и без него как в первом варианте?
#[/pid_file] - задает путь к «pid-файлу» процесса пишущего журнал.
# Использование pid-файлов является простым способом записи поля ID процесса в системе,
# так что бы другие программы могли его легко прочитать.
# Большинство программ хранят свои pid-файлы в каталоге /var/run – поглядите их у
# себя на машине.
# Если в этом поле вы укажете полный путь к pid-файлу, то newsyslog будет посылать сигнал этому
# процессу когда будет производиться ротация. Например веб-сервер Apache должен быть оповещен
# при ротации его журналов. Записав в этом поле полный путь к его pid-файлу вы заставите
# newsyslog посылать процессу Apache сигнал kill -1, что бы он запустил
# свою часть обработки ротации журналов.

WideAreaNetwork
ефрейтор
Сообщения: 57
Зарегистрирован: 2017-01-10 14:37:13

Ротация логов apache хостинг freebsd

Непрочитанное сообщение WideAreaNetwork » 2018-10-12 10:24:25

путем проб добился результата, вот запись

Код: Выделить всё

#apache
/var/log/httpd-access.log               600  10 102400  *     JC   /var/run/httpd.pid
/var/log/httpd-error.log                600  10 102400  *     JC   /var/run/httpd.pid
pid файл указывать обязательно, нужно давать сигнал процессу апача, чтобы "отпустил" файл логов и стал писать в новый, иначе в новом лог файле будет пусто