Страница 1 из 1
Ротация логов apache хостинг freebsd
Добавлено: 2016-04-27 8:46:48
wien
Всем здравым - мира!
Имеется скромный сервер веб хостинга под FreeBSD 9.3. Использую Apache 2.2 + MySQL 5.6 + fastcgi.
Структура папок каждого пользователя выглядит следующим образом:
www - файлы веб проектов данного юзера;
cgi-bin - враппер и настройки пхп;
tmp - файлы сессий и всякая хня;
log - логи апача access.log и error.log (о них и пойдет речь далее).
Файлы логов со временем растут, хотелось бы организовать правильную ротацию. Ротация остальных логов у меня настроена /etc/newsyslog.conf. Есть ли у кого готовые решения (скрипты или конфиги) для ротации логов на хостинге? Вопрос задаю не просто так. Поскольку при вышеобозначенной связке каждый сайт "запущен" от собственного пользователя, возможно есть какие-то нюансы.
Буду признателен за любую информацию.
Ротация логов apache хостинг freebsd
Добавлено: 2016-04-27 18:44:44
Amadeus
wien писал(а): Файлы логов со временем растут, хотелось бы организовать правильную ротацию. Ротация остальных логов у меня настроена /etc/newsyslog.conf. Есть ли у кого готовые решения (скрипты или конфиги) для ротации логов на хостинге? Вопрос задаю не просто так. Поскольку при вышеобозначенной связке каждый сайт "запущен" от собственного пользователя, возможно есть какие-то нюансы.
Эм.., а user:group в newsyslog в этом случае не подойдет? Там же элементарно все
Ротация логов apache хостинг freebsd
Добавлено: 2016-04-28 22:36:27
Alex Keda
кстати - толи с 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
Ротация логов apache хостинг freebsd
Добавлено: 2016-04-29 20:25:46
wien
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 у меня уже эта фишка поддерживается.
Ротация логов apache хостинг freebsd
Добавлено: 2016-04-29 21:24:32
Alex Keda
Код: Выделить всё
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
Ротация логов apache хостинг freebsd
Добавлено: 2016-04-30 12:19:21
wien
Alex Keda, огромное человеческое спасибо, все работает как надо.
Ротация логов apache хостинг freebsd
Добавлено: 2016-05-01 22:50:55
Amadeus
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.
Ротация логов apache хостинг freebsd
Добавлено: 2016-05-04 7:55:49
wien
Amadeus писал(а):
Я позволю себе дополнить, а почему, можете объяснить? Что вам Лис показал?
Я добавил в конец строки
/var/run/httpd.pid и все заработало, логи стали ротироваться в пользовательских папках.
Хотя 2 основных лог файла апача /var/log/httpd-access.log и /var/log/httpd-error.log ротируются спокойно и без вышеобозначенной строки.
И почему цитата 1 стало 2?
Не понял вопрос.
Ротация логов apache хостинг freebsd
Добавлено: 2016-05-04 12:35:38
Amadeus
Я добавил в конец строки /var/run/httpd.pid и все заработало, логи стали ротироваться в пользовательских папках.
Что вы добавили?) и почему заработало? В этом был вопрос
Ротация логов apache хостинг freebsd
Добавлено: 2016-05-04 12:52:46
Alex Keda
Ротация логов apache хостинг freebsd
Добавлено: 2016-05-11 17:29:47
FiL
Не нравится мне такой подход. И вот почему - если у апача много логов, то в конфиге newsyslog'a будет много записей. А потом newsyslog их процессит по одному. И для каждого лога он отдельно лог переименовывает, а потом перезапускает апач. При том, что на деле перезапустить апач хватает одного раза.
Ну и по-любому, если даже при ротации каждого лога перезапускать апач, то не _HUP, а -USR1. В мане написано почему.
Ротация логов apache хостинг freebsd
Добавлено: 2016-05-11 17:35:22
Amadeus
И вот почему - если у апача много логов, то в конфиге newsyslog'a будет много записей
Вообще то нет) там в том же мане написано как сделать в 1 строчку. Если соблюдать здоровую логику.
Отправлено спустя 39 секунд:
А тут да согласен, у самого везде -30.
Ротация логов apache хостинг freebsd
Добавлено: 2016-05-11 17:37:37
FiL
Amadeus писал(а):И вот почему - если у апача много логов, то в конфиге newsyslog'a будет много записей
Вообще то нет) там в том же мане написано как сделать в 1 строчку. Если соблюдать здоровую логику.
Я ведь не сказал, что нельзя сделать в 1 строчку. Я сказал, что мне не нравится так, как тут предложено. А тут предложено с одной строчкой на каждый лог. И именно это мне и не нравится.
Ротация логов apache хостинг freebsd
Добавлено: 2016-05-18 7:59:06
Alex Keda
Звёздочку юзайте.
Мне, на десятке сайтов, - красивость конфига дороже
Ротация логов apache хостинг freebsd
Добавлено: 2016-05-19 23:30:01
icb
Amadeus писал(а): Вообще то нет) там в том же мане написано как сделать в 1 строчку. Если соблюдать здоровую логику.
Имеется ввиду флаг U или иное?
Amadeus писал(а): у самого везде -30
А зачем минус?
В этом поле (signal) он же вроде даже не предусмотрен.
Ротация логов apache хостинг freebsd
Добавлено: 2016-05-22 1:40:12
Amadeus
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) он же вроде даже не предусмотрен.
Это "жаргон"), на самом деле да, тут просто обозначение сигнала
Ротация логов apache хостинг freebsd
Добавлено: 2018-10-11 21:19:52
WideAreaNetwork
всем привет!
ведутся логи апача 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, что бы он запустил
# свою часть обработки ротации журналов.
Ротация логов apache хостинг freebsd
Добавлено: 2018-10-12 10:24:25
WideAreaNetwork
путем проб добился результата, вот запись
Код: Выделить всё
#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 файл указывать обязательно, нужно давать сигнал процессу апача, чтобы "отпустил" файл логов и стал писать в новый, иначе в новом лог файле будет пусто