24.6. 启用 oVirt Engine Extension Logger log4j

日志记录器实施需要 ovirt-engine-extension-logger-log4j 软件包。通过实施,Red Hat Had Virtualization Manager 将记录委托为 log4j。Log4j 是一个可自定义框架,可为各种技术(包括 SNMP 和 syslog)提供附加器。

oVirt Engine Extension Logger log4j 将 engine.log 文件传递给现有的 syslog 服务器。配置过程与 设置主机日志记录服务器 重叠。

在中央 syslog 服务器上使用这个步骤。您可以使用单独的日志记录服务器,或使用此流程将 engine.log 文件从 Manager 传递给 syslog 服务器。

注意

要为这个扩展定义 syslog 服务器,请导航到 /etc/ovirt-engine/extensions.d 目录,并编辑 log4j.appender.myappender.myappender . SyslogHost 的值。

要定义 syslog 工具,请导航到 /etc/ovirt-engine/extensions.d 目录,并编辑 Log 4j.appender.myappender.Facility 文件中的 log 4jLogger.properties 文件中的值。例如,log4j.appender.myappender.Facility=local1

配置 oVirt Engine Extension Logger log4j

  1. 安装 扩展名。

    # yum install ovirt-engine-extension-logger-log4j
  2. /etc/ovirt-engine/extensions.d/ 目录中创建 Log4jLogger.properties 文件,并包含以下内容:

    ovirt.engine.extension.name = log4jlogger
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.logger.Logger
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine-extensions.logger.log4j
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engineextensions.logger.log4j.Log4jLogger
    log4j.rootLogger=DEBUG, myappender
    log4j.appender.myappender=org.apache.log4j.net.SyslogAppender
    log4j.appender.myappender.SyslogHost=localhost
    log4j.appender.myappender.layout=org.apache.log4j.PatternLayout
    log4j.appender.myappender.layout.ConversionPattern=[%c] %m%n
  3. 安装和配置 rsyslog。

    # yum install rsyslog
  4. 配置 SELinux 以允许 rsyslog 流量。

    # semanage port -a -t syslogd_port_t -p udp 514
  5. 编辑 /etc/rsyslog.conf 并添加以下行:

    $template TmplAuth, "/var/log/%fromhost%/secure"
    $template TmplMsg, "/var/log/%fromhost%/messages"
    
    $RuleSet remote
    authpriv.*   ?TmplAuth
    *.info,mail.none;authpriv.none,cron.none   ?TmplMsg
    $RuleSet RSYSLOG_DefaultRuleset
    $InputUDPServerBindRuleset remote
  6. 取消注释以下两行:

    #$ModLoad imudp
    #$UDPServerRun 514
  7. 重启 rsyslog 服务:

    # systemctl restart rsyslog.service
  8. 如果启用了防火墙并处于活动状态,请运行以下命令添加在 Firewalld 中打开 rsyslog 端口所需的规则。

    # firewall-cmd --permanent --add-port=514/udp
    # firewall-cmd --reload
  9. 重启 Red Hat Virtualization Manager。

    # restart ovirt-engine

现有的 syslog 服务器现在可以接收和存储 engine.log 文件。