24.6. oVirt Engine Extension Logger log4j の有効化

ロガー実装には ovirt-engine-extension-logger-log4j パッケージが必要です。この実装により、Red 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 ディレクトリーに移動し、Log4jLogger.properties ファイルの log4j.appender.myappender.SyslogHost の値を編集します。

syslog 機能を定義するには、/etc/ovirt-engine/extensions.d ディレクトリーに移動し、Log4jLogger.properties ファイルで log4j.appender.myappender.Facility の値を編集します。たとえば、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. rsyslog トラフィックを許可するように SELinux を設定します。

    # 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. 次の 2 行のコメントを解除します。

    #$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 ファイルを受け取って保存できるようになります。