Здравствуйте, уважаемые читатели сайта shargaev-group.ru! После установки и настройки LAMP на VDS хостинге, следует уделить внимание корректной настройки ротации логов. Зачем это надо?
По умолчанию Apache пишет логи в определенный файл, указанный в его конфигурации. Со временем log достигает огромных размеров, тем самым переполняя жесткий диск на сервере, вызывает определенные ошибки в работе сайта.
Как этого избежать?
Можно периодически подключаться по FTP к серверу и в ручную чистить данную директорию и перезапускать Apache, а можно воспользоваться классной утилитой logrotate и автоматизировать данный процесс.
Приступим к настройке ротации логов
Обычно lograte установлен в системе по умолчанию, но если у вас его нет, запустите процесс его установки:
aptitude install logrotate
Создаем конфигурационный файл
nano /etc/logrotate.d/mylogrotate
Имя файла вы можете указать любое.
В созданном конфигурационном файле пишем следующие настройки (возле каждой настройки дал описание, что за что отвечает):
/var/www/logs/*.log { // путь до папки с логами daily // регулярность ротации логов, может быть daily, monthly, weekly size 10м // По достижению заданного размера файл будет ротироваться (можно не указывать). missingok // не проверять наличие файла, если логов нет в указанной директории ошибки не будет rotate 30 // количество сохраняемых копий compress // сжатие копии логов, по умолчанию стоит gzip nodelaycompress // не откладывать сжатие лога на следующий цикл notifempty // не ротировать лог если он пустой create 640 www-data www-data //сразу после ротации создаем новый лог с соответствующими правами пользователя sharedscripts // запускает скрипт и утилиту после ротации логов (в данном случае перезагружает Apache) postrotate apache2ctl restart > /dev/null endscript }
Сохраняем файл Сtr+O и закрываем конфигурационный файл Сtr+X.
Далее нам нужно протестировать созданный конфигурационный файл:
logrotate -d /etc/logrotate.d/mylogrotate
Данной командой происходит тест конфигурационного файла.
Если в процессе отладки возникает ошибка because parent directory has insecure permissions (It’s world writable or writable by group which is not «root») Set «su» directive in config file to tell logrotate which user/group should be used for rotation.
Следует добавить в конфиг параметр su и указать в нем имя и группу администратора (su root root)
Если тест прошел без ошибок, запускаем ротацию логов:
logrotate -v -f /etc/logrotate.d/mylogrotate
Вот и все, теперь логи на вашем сервере будут ротироваться автоматически!
На сегодня все, берегите себя!
Оставить Комментарий