logrotate
— утилита Linux, которая позволяет решить задачу хранения логов на сервере. Основная её задача — это обойти по заданному списку лог-файлы и совершить с ними те действия, которые прописаны в её конфиге. Проверить, установлена ли эта утилита на сервере, можно просто введя её название logrotate
в консоли. Если её нет в системе, (в большинстве систем она идёт в стандартном пакете), то её можно установить: apt install logrotate
.
Исходная конфигурация logrotate в Debian 9
Для того, чтобы двигаться дальше с настройками сервера и оптимизации его работы, лучше фиксировать состояние системы «до», чтобы можно было откатиться до него в точке «после», если что-то пойдёт не так.
logrotate.conf
— это основной файл конфигурации утилиты logrotate
. Находится он обычно по этому пути: /etc/logrotate.conf
. Сразу после установки Debian 9 он имеет следующее содержание:
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
}
# system-specific logs may be configured here
С управляющими директивами этого конфига разберусь после. Пока только фиксирую исходное состояние.
Интерес ещё представляет строчка подключения дополнительных файлов конфигураций: include /etc/logrotate.d
.
Папка с файлами дополнительной конфигурации /etc/logrotate.d
В этой папке изначально находится 8 файлов для настройки тех сервисов, которые ведут логи, и разработчики которых позаботились о том, чтобы их программы попали в список работы logrotate. Собственно, список этих файлов:
# tree -ugp /etc/logrotate.d
/etc/logrotate.d
├── [-rw-r--r-- root root ] apache2
├── [-rw-r--r-- root root ] apt
├── [-rw-r--r-- root root ] dbconfig-common
├── [-rw-r--r-- root root ] dpkg
├── [-rw-r--r-- root root ] mysql-server
├── [-rw-r--r-- root root ] nginx
├── [-rw-r--r-- root root ] proftpd-basic
└── [-rw-r--r-- root root ] rsyslog
0 directories, 8 files
Все эти дополнительные конфиги настроены для стандартных настроек. У себя на сервере я поднял виртуальные хосты с нестандартным расположением файлов логов Apache и NGiNX, поэтому нужна донастройка logrotate. Но об этом в другой статье. Цель этой статьи — зафиксировать начальное состояние системы. И она выполнена. =)
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)