轮转日志文件

大部分 Linux 分发版都包含 logrotate 实用程序。使用此实用程序可简化日志文件管理。通过设置 logrotate 配置文件,您可以使用此实用程序自动完成以下一项或多项任务:

  • 压缩和轮转日志文件

  • 自动删除日志文件

  • 通过电子邮件将日志文件发送给指定的收件人

可将 logrotate 配置为定期或在日志文件达到特定大小时完成这些任务。

如果安装 Vertica 时存在 logrotate,则 Vertica 会自动将此实用程序设置为查找配置文件。因此,logrotate 会在每个节点的 /opt/vertica/config/logrotate 目录中搜索配置文件。

当您创建数据库时,Vertica 会在群集中的每个节点上创建特定于数据库的 logrotate 配置,以供 logrotate 实用程序使用。之后,它会为每个单独的数据库创建一个路径为 /opt/vertica/config/logrotate/ 的文件。

有关其他设置的信息,请使用 man logrotate 命令。

通过 dbadmin logrotate cron 作业执行 Python 脚本

在 Vertica 安装期间,安装程序会为 dbadmin 用户配置 cron 作业。此 cron 作业被配置为执行运行 logrotate 实用程序的 Python 脚本。您可以通过查看 dbadmin.cron 文件(位于 /opt/vertica/config 目录中)查看此 cron 作业的详细信息。

如果要自定义 cron 作业,以便为 Vertica 数据库配置 logrotate,您必须dbadmin 用户下创建 cron 作业。

使用管理工具 logrotate 实用程序

可借助 admintools logrotate 选项为数据库配置 logrotate 脚本并在整个群集上分发这些脚本。使用 logrotate 选项可以指定:

  • 轮转日志的频率

  • 可轮转的日志大小

  • 日志的保留时长

例如:

以下示例显示如何将日志设置为每周轮转一次并保留三个月(12 个日志)。

$ admintools -t logrotate -d <dbname> -r weekly -k 12

有关详细使用信息,请参阅编写管理工具脚本

为 MC 配置 logrotate

管理控制台日志文件是:

/opt/vconsole/log/mc/mconsole.log

要为 MC 配置 logrotate,请配置以下文件:

/opt/vconsole/temp/webapp/WEB-INF/classes/log4j.xml

编辑 log4j.xml 文件并按如下方式设置相应的参数:

  1. 限制日志的大小:

    <param name="MaxFileSize" value="1MB"/>
    
  2. 限制日志的文件备份数量:

    <param name="MaxBackupIndex" value="1"/>
    
  3. 以 root 用户身份重新启动 MC:

    # etc/init.d/vertica-consoled restart
    

手动轮转日志

要实施自定义日志轮转过程,请执行以下步骤:

  1. 对现有的 vertica.log 文件进行重命名或存档。例如:

    $ mv vertica.log vertica.log.1
    
  2. 使用以下任一方法向 Vertica 进程发送 USR1 信号:

    $ killall -USR1 vertica
    

    $ ps -ef | grep -i vertica
    $ kill -USR1 process-id
    

另请参阅