Morning,
If you have a Apache Kafka version which is below 1.0.0 and you don’t have garbage collect rotate as shown here:
with:
-Xloggc:/opt/kafka/bin/../logs/kafkaServer-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M
without:
-Xloggc:/opt/kafka/bin/../logs/kafkaServer-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps
One option is to modify the parameters in order to include them in the process that starts but this involves also restarting the services.
However, you can use also logrotate daemon with the following configuration, and i will put the block that you need to add on hiera using:
logrotate::rule:
'kafka_gc':
path: '/opt/kafka/logs/kafkaServer-gc.log'
copytruncate: true
rotate_every: 'day'
compress: true
missingok: true
su: true
su_owner: 'kafka'
su_group: 'kafka'
ifempty: false
size: '50M'
maxsize: '50M'
rotate: 5
Or if you want to write it in a class, it should look like
$version = lookup('kafka::version')
if ($_role =~ /\Akafka/) and ($version != '1.0.0') {
logrotate::rule { 'kafkagc_logs':
path => '/opt/kafka/logs/kafkaServer-gc.log',
copytruncate => true,
rotate => 5,
rotate_every => 'daily',
missingok => true,
ifempty => false,
su => true,
su_owner => 'kafka',
su_group => 'kafka',
size => '50M',
maxsize => '50M',
}
Cheers!