Rotating log files
Most Linux distributions include the logrotate
utility. Using this utility simplifies log file administration. By setting up a logrotate
configuration file, you can use the utility to complete one or more of these tasks automatically:
-
Compress and rotate log files
-
Remove log files automatically
-
Email log files to named recipients
You can configure logrotate
to complete these tasks at specific intervals, or when log files reach a particular size.
If logrotate
is present when Vertica is installed, then Vertica automatically sets this utility to look for configuration files. Thus, logrotate searches for configuration files in the /opt/vertica/config/logrotate
directory on each node.
When you create a database, Vertica creates database-specific logrotate
configurations on each node in your cluster, which are used by the logrotate
utility. It then creates a file with the path /opt/vertica/config/logrotate/<dbname>
for each individual database.
For information about additional settings, use the man logrotate
command.
Executing the Python script through the dbadmin logrotate cron job
During the installation of Vertica, the installer configures a cron job for the dbadmin
user. This cron job is configured to execute a Python script that runs the logrotate
utility. You can view the details of this cron job by viewing the dbadmin.cron
file, which is located in the /opt/vertica/config
directory.
If you want to customize a cron job to configure logrotate for your Vertica database, you must create the cron job under the dbadmin
user.
Using the administration tools logrotate utility
You can use the admintools logrotate
option to help configure logrotate
scripts for a database and distribute the scripts across the cluster. The logrotate
option allows you to specify:
-
How often to rotate logs
-
How large logs can become before being rotated
-
How long to keep the logs
Example:
The following example shows you how to set up log rotation on a weekly schedule and keeps for three months (12 logs).
$ admintools -t logrotate -d <dbname> -r weekly -k 12
See Writing administration tools scripts for more usage information.
Configure logrotate for MC
The Management Console log file is:
/opt/vconsole/log/mc/mconsole.log
To configure logrotate
for MC, configure the following file:
/opt/vconsole/temp/webapp/WEB-INF/classes/log4j.xml
Edit the log4j.xml
file and set these parameters as follows:
-
Restrict the size of the log:
<param name="MaxFileSize" value="1MB"/>
-
Restrict the number of file backups for the log:
<param name="MaxBackupIndex" value="1"/>
-
Restart MC as the root user:
# etc/init.d/vertica-consoled restart
Rotating logs manually
To implement a custom log rotation process, follow these steps:
-
Rename or archive the existing vertica.log file. For example:
$ mv vertica.log vertica.log.1
-
Send the Vertica process the USR1 signal, using either of the following approaches:
$ killall -USR1 vertica
or
$ ps -ef | grep -i vertica $ kill -USR1 process-id