cookbooks/fb_logrotate/attributes/default.rb (83 lines of code) (raw):

# # Copyright (c) 2016-present, Facebook, Inc. # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # globals = { 'rotate' => '14', 'maxage' => '14', } rhel_configs = { 'syslog' => { 'files' => [ '/var/log/cron', '/var/log/maillog', '/var/log/messages', '/var/log/secure', '/var/log/spooler', ], 'overrides' => { 'nocreate' => true, 'nocopytruncate' => true, 'missingok' => true, 'sharedscripts' => true, 'postrotate' => (node.systemd? ? '/bin/systemctl kill -s HUP rsyslog || true' : '(/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> ' + '/dev/null || true) && ' + '(/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> ' + '/dev/null || true)'), }, }, } debian_configs = { 'rsyslog-syslog' => { 'files' => ['/var/log/syslog'], 'overrides' => { 'rotate' => '7', 'missingok' => true, 'delaycompress' => true, # This script handles if we're using systemd or sysvinit to HUP rsyslog 'postrotate' => '/usr/lib/rsyslog/rsyslog-rotate', }, }, 'rsyslog' => { 'files' => [ '/var/log/auth.log', '/var/log/cron.log', '/var/log/debug', '/var/log/daemon.log', '/var/log/kern.log', '/var/log/lpr.log', '/var/log/mail.info', '/var/log/mail.warn', '/var/log/mail.err', '/var/log/mail.log', '/var/log/messages', '/var/log/user.log', ], 'overrides' => { 'rotate' => '4', 'missingok' => true, 'delaycompress' => true, 'sharedscripts' => true, # This script handles if we're using systemd or sysvinit to HUP rsyslog 'postrotate' => '/usr/lib/rsyslog/rsyslog-rotate', }, }, } # Debian/Ubuntu have different default files to rotate than RHEL/CentOS if node.debian? || node.ubuntu? configs = debian_configs else configs = rhel_configs end unless node.centos6? globals['compresscmd'] = '/usr/bin/pigz' end systemd_timer = node.systemd? && !(node.centos6? || node.macos?) default['fb_logrotate'] = { 'globals' => globals, 'configs' => configs, 'add_locking_to_logrotate' => false, 'debug_log' => false, 'systemd_timer' => systemd_timer, 'systemd_settings' => { 'OnCalendar' => 'daily', 'RandomizedDelaySec' => 0, 'Nice' => 19, 'IOSchedulingClass' => 3, }, }