Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第1章 ロギング

Red Hat OpenStack Platform は、特定のログファイルに情報メッセージを書き込みます。このメッセージは、トラブルシューティングやシステムイベントのモニタリングに使用することができます。

注記

個別のログファイルをサポートケースに手動で添付する必要はありません。必要な情報はすべて sosreport で自動的に収集されます。この件に関しては、「4章トラブルシューティング」で説明しています。

1.1. OpenStack サービスのログファイル

OpenStack のコンポーネントごとに、個別のロギングディレクトリーがあり、その中に各実行サービスに固有のファイルが格納されます。

1.1.1. Bare Metal Provisioning (Ironic) のログファイル

サービスサービス名ログへのパス

OpenStack Ironic API

openstack-ironic-api.service

/var/log/ironic/ironic-api.log

OpenStack Ironic Conductor

openstack-ironic-conductor.service

/var/log/ironic/ironic-conductor.log

1.1.2. Block Storage (cinder) ログファイル

サービスサービス名ログへのパス

Block Storage API

openstack-cinder-api.service

/var/log/cinder/api.log

Block Storage バックアップ

openstack-cinder-backup.service

/var/log/cinder/backup.log

情報メッセージ

cinder-manage コマンド

/var/log/cinder/cinder-manage.log

Block Storage スケジューラー

openstack-cinder-scheduler.service

/var/log/cinder/scheduler.log

Block Storage ボリューム

openstack-cinder-volume.service

/var/log/cinder/volume.log

1.1.3. Compute (nova) ログファイル

サービスサービス名ログへのパス

OpenStack Compute API サービス

openstack-nova-api.service

/var/log/nova/nova-api.log

OpenStack Compute 証明書サーバー

openstack-nova-cert.service

/var/log/nova/nova-cert.log

OpenStack Compute サービス

openstack-nova-compute.service

/var/log/nova/nova-compute.log

OpenStack Compute コンダクターサービス

openstack-nova-conductor.service

/var/log/nova/nova-conductor.log

OpenStack Compute VNC コンソールの認証サーバー

openstack-nova-consoleauth.service

/var/log/nova/nova-consoleauth.log

情報メッセージ

nova-manage コマンド

/var/log/nova/nova-manage.log

OpenStack Compute NoVNC プロキシーサービス

openstack-nova-novncproxy.service

/var/log/nova/nova-novncproxy.log

OpenStack Compute スケジューラーサービス

openstack-nova-scheduler.service

/var/log/nova/nova-scheduler.log

1.1.4. Dashboard (horizon) ログファイル

サービスサービス名ログへのパス

特定のユーザーとの対話ログ

Dashboard インターフェース

/var/log/horizon/horizon.log

Apache HTTP サーバーは、Dashboard Web インターフェース用に追加のログファイルを複数使用します。これらのファイルは、Web ブラウザーまたはコマンドラインクライアント (keystone、nova) を使用してアクセスできます。以下のログファイルは、Dashboard の使用のトラッキングや、問題診断に役立ちます。

目的ログへのパス

処理済みの HTTP 要求すべて

/var/log/httpd/horizon_access.log

HTTP エラー

/var/log/httpd/horizon_error.log

管理者ロールの API 要求

/var/log/httpd/keystone_wsgi_admin_access.log

管理者ロールの API エラー

/var/log/httpd/keystone_wsgi_admin_error.log

メンバーロールの API 要求

/var/log/httpd/keystone_wsgi_main_access.log

メンバーロールの API エラー

/var/log/httpd/keystone_wsgi_main_error.log

注記

nagios など、同じホスト上で実行する他の Web サービスから報告されたエラーを格納する /var/log/httpd/default_error.log もあります。

1.1.5. Data Processing (sahara) ログファイル

サービスサービス名ログへのパス

Sahara API サーバー

openstack-sahara-all.service
openstack-sahara-api.service

/var/log/sahara/sahara-all.log
/var/log/messages

Sahara Engine サーバー

openstack-sahara-engine.service

/var/log/messages

1.1.6. Database as a Service (trove) ログファイル

サービスサービス名ログへのパス

OpenStack Trove API サービス

openstack-trove-api.service

/var/log/trove/trove-api.log

OpenStack Trove Conductor サービス

openstack-trove-conductor.service

/var/log/trove/trove-conductor.log

OpenStack Trove guestagent サービス

openstack-trove-guestagent.service

/var/log/trove/logfile.txt

OpenStack Trove taskmanager サービス

openstack-trove-taskmanager.service

/var/log/trove/trove-taskmanager.log

1.1.7. Identity サービス (keystone) ログファイル

サービスサービス名ログへのパス

OpenStack Identity サービス

openstack-keystone.service

/var/log/keystone/keystone.log

1.1.8. Image Service (glance) ログファイル

サービスサービス名ログへのパス

OpenStack Image Service API サーバー

openstack-glance-api.service

/var/log/glance/api.log

OpenStack Image Service レジストリーサーバー

openstack-glance-registry.service

/var/log/glance/registry.log

1.1.9. Networking (neutron) ログファイル

サービスサービス名ログへのパス

OpenStack Neutron DHCP エージェント

neutron-dhcp-agent.service

/var/log/neutron/dhcp-agent.log

OpenStack Networking レイヤー 3 エージェント

neutron-l3-agent.service

/var/log/neutron/l3-agent.log

メタデータエージェントサービス

neutron-metadata-agent.service

/var/log/neutron/metadata-agent.log

メタデータの名前空間プロキシー

なし

/var/log/neutron/neutron-ns-metadata-proxy-UUID.log

Open vSwitch エージェント

neutron-openvswitch-agent.service

/var/log/neutron/openvswitch-agent.log

OpenStack Networking サービス

neutron-server.service

/var/log/neutron/server.log

1.1.10. Object Storage (swift) ログファイル

OpenStack Object Storage は、システムのロギング機能にのみ、ログを送信します。

注記

デフォルトでは、Object Storage ログファイルはすべて local0、local1、local2 syslog 機能を使用して /var/log/swift/swift.log に送られます。

Object Storage のログメッセージは主に、REST API サービスのログメッセージと、バックグラウンドデーモンのログメッセージの 2 つのカテゴリーに分類されます。API サービスのメッセージには、API 要求ごとに 1 行含まれています。これは、一般的に使用されている HTTP サーバーによく似た形式となっており、フロントエンド (プロキシー) およびバックエンド (アカウント、コンテナー、オブジェクト) の両サービスがこのようなメッセージをポストします。デーモンメッセージは、(API サービスのものと比べ) 構造化されておらず、通常、定期的なタスクを実行するデーモンに関する情報が人間が判読できる形で含まれています。ただし、Object Storage のどの部分がメッセージを生成するかに関わらず、ソースのアイデンティティーは必ず行頭に記載されます。

プロキシーメッセージ例

Apr 20 15:20:34 rhev-a24c-01 proxy-server: 127.0.0.1 127.0.0.1 20/Apr/2015/19/20/34 GET /v1/AUTH_zaitcev%3Fformat%3Djson%26marker%3Dtestcont HTTP/1.0 200 - python-swiftclient-2.1.0 AUTH_tk737d6... - 2 - txc454fa8ea4844d909820a-0055355182 - 0.0162 - - 1429557634.806570053 1429557634.822791100

バックグラウンドデーモンからのアドホックメッセージ例

Apr 27 17:08:15 rhev-a24c-02 object-auditor: Object audit (ZBF). Since Mon Apr 27 21:08:15 2015: Locally: 1 passed, 0 quarantined, 0 errors files/sec: 4.34 , bytes/sec: 0.00, Total time: 0.23, Auditing time: 0.00, Rate: 0.00
Apr 27 17:08:16 rhev-a24c-02 object-auditor: Object audit (ZBF) "forever" mode completed: 0.56s. Total quarantined: 0, Total errors: 0, Total files/sec: 14.31, Total bytes/sec: 0.00, Auditing time: 0.02, Rate: 0.04
Apr 27 17:08:16 rhev-a24c-02 account-replicator: Beginning replication run
Apr 27 17:08:16 rhev-a24c-02 account-replicator: Replication run OVER
Apr 27 17:08:16 rhev-a24c-02 account-replicator: Attempted to replicate 5 dbs in 0.12589 seconds (39.71876/s)
Apr 27 17:08:16 rhev-a24c-02 account-replicator: Removed 0 dbs
Apr 27 17:08:16 rhev-a24c-02 account-replicator: 10 successes, 0 failures

1.1.11. Orchestration (heat) ログファイル

サービスサービス名ログへのパス

OpenStack Heat API サービス

openstack-heat-api.service

/var/log/heat/heat-api.log

Openstack Heat エンジンサービス

openstack-heat-engine.service

/var/log/heat/heat-engine.log

Orchestration サービスのイベント

なし

/var/log/heat/heat-manage.log

1.1.12. Shared Filesystem サービス (manila) ログファイル

サービスサービス名ログへのパス

OpenStack Manila API サーバー

openstack-manila-api.service

/var/log/manila/api.log

OpenStack Manila スケジューラー

openstack-manila-scheduler.service

/var/log/manila/scheduler.log

OpenStack Manila 共有用サービス

openstack-manila-share.service

/var/log/manila/share.log

注記

Manila Python ライブラリーからの情報の一部は /var/log/manila/manila-manage.log にロギングすることもできます。

1.1.13. Telemetry (ceilometer) ログファイル

サービスサービス名ログへのパス

OpenStack ceilometer 通知エージェント

openstack-ceilometer-notification.service

/var/log/ceilometer/agent-notification.log

OpenStack ceilometer アラーム評価

openstack-ceilometer-alarm-evaluator.service

/var/log/ceilometer/alarm-evaluator.log

OpenStack ceilometer アラーム通知

openstack-ceilometer-alarm-notifier.service

/var/log/ceilometer/alarm-notifier.log

OpenStack ceilometer API

openstack-ceilometer-api.service

/var/log/ceilometer/api.log

情報メッセージ

MongoDB integration

/var/log/ceilometer/ceilometer-dbsync.log

OpenStack ceilometer 中央エージェント

openstack-ceilometer-central.service

/var/log/ceilometer/central.log

OpenStack ceilometer コレクション

openstack-ceilometer-collector.service

/var/log/ceilometer/collector.log

OpenStack ceilometer コンピュートエージェント

openstack-ceilometer-compute.service

/var/log/ceilometer/compute.log

1.1.14. 補足サービスのログファイル

以下のサービスは、中核となる OpenStack コンポーネントにより使用されており、サービスごとに独自のログのディレクトリーとファイルが存在します。

サービスサービス名ログへのパス

メッセージブローカー (RabbitMQ)

rabbitmq-server.service

/var/log/rabbitmq/rabbit@short_hostname.log
/var/log/rabbitmq/rabbit@short_hostname-sasl.log (Simple Authentication and Security Layer 関連のログメッセージ)

データベースサーバー (MariaDB)

mariadb.service

/var/log/mariadb/mariadb.log

ドキュメント指向データベース (MongoDB)

mongod.service

/var/log/mongodb/mongodb.log

仮想ネットワークスイッチ (Open vSwitch)

openvswitch-nonetwork.service

/var/log/openvswitch/ovsdb-server.log
/var/log/openvswitch/ovs-vswitchd.log

1.2. ロギングオプションの設定

コンポーネントごとに、別のロギング設定が適切な設定ファイルに保管されています。たとえば、Compute ではこれらのオプションは /etc/nova/nova.conf に設定されます。

  • デバッグを有効化することで、情報ロギングのレベルを上げます。このオプションにより、取得する情報量が大幅に増加するため、この機能を一時的にだけ使用するか、またはログの回転設定を先に確認するようにしてください。

    debug=True
  • 詳細ロギングを有効化します。

    verbose=True
  • ログファイルのパスを変更します。

    log_dir=/var/log/nova
  • ログを中央の syslog サーバーに送信します。

    use_syslog=True
    syslog_log_facility=LOG_USER
注記

タイムスタンプの設定やログのフォーマットなどのオプションも利用できます。追加のロギングオプションについてはコンポーネントの設定ファイルを確認してください。

1.3. リモートロギングのインストールおよび設定

1.3.1. リモートロギングの概要

すべてのシステムは、直面した問題やアクションを記録するログファイルを作成して更新します。多くのシステムが含まれる分散またはクラウドコンピューティング環境では、中央ロケーションでこれらのログファイルをまとめることで、デバッグを簡素化します。

rsyslog サービスにより、集中ロギングサーバーを実行したり、個別システムがログファイルを集中ロギングサーバーに送信するように設定したりする機能が提供されます。これは、システムのリモートロギング 設定と呼びます。

1.3.2. rsyslog サーバーのインストール

rsyslog パッケージは、集中ロギングサーバーとして使用予定のシステムおよびログの送信元として設定する全システムにインストールする必要があります。これには、root ユーザーとしてログインして rsyslog パッケージをインストールします。

# yum install rsyslog

rsyslog パッケージがインストールされ、設定の準備ができました。

1.3.3. 集中ロギングサーバーでの rsyslog の設定

集中ロギングサーバーとして使用予定のシステム上で、以下の手順に記載するステップを行うようにしてください。また、すべてのステップは root ユーザーとしてログインして実行する必要があります。

  1. SELinux が rsyslog トラフィックを許可するように設定します。

    # semanage port -a -t syslogd_port_t -p udp 514
  2. テキストエディターで /etc/rsyslog.conf ファイルを開きます。

    1. ファイルに以下の行を追加して、ログの保存先を定義します。

      $template TmplMsg, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
      $template TmplAuth, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
      
      authpriv.*   ?TmplAuth
      *.info,mail.none,authpriv.none,cron.none   ?TmplMsg
    2. ファイル内の以下の行から、行頭のコメント文字 (#) を削除します。

      #$ModLoad imudp
      #$UDPServerRun 514
    3. /etc/rsyslog.conf ファイルへの変更を保存します。

環境内の他のシステムからのログファイルを受信し、保管するための集中ログサーバーの設定が完了しました。

1.3.4. 個々のノードでの rsyslog 設定

以下の手順に記載するステップを各システムに適用して、集中ログサーバーにログを送信するように設定します。これらのステップはすべて root ユーザーとしてログインして実行する必要があります。

  1. /etc/rsyslog.conf を編集して以下を追加し、集中ログサーバーのアドレスを指定します。

    *.*   @YOURSERVERADDRESS:YOURSERVERPORT

    YOURSERVERADDRESS は集中ログサーバーのアドレスに、YOURSERVERPORT は、rsyslog サービスをリッスンするポートに置き換えます。以下はその例です。

    *.*   @192.168.20.254:514

    または

    *.*   @@log-server.example.com:514

    @ が 1 つの場合は、転送プロトコルに UDP が指定されます。TCP 転送プロトコルを指定するには、@@ を使用してください。

    重要

    上記の例で、ワイルドカード文字 (*) を使用している箇所は、全ログファシリティーからの全ログプライオリティーのログエントリーをリモートの rsyslog サーバーに送信する必要があることを rsyslog に対して示しています。

    より厳密なフィルターをログファイルに適用する方法についての説明は、rsyslog 設定ファイル (rsyslog.conf) の man ページを参照してください。このページには、man rsyslog.conf のコマンドを実行するとアクセスすることができます。

  2. rsyslog サービスが起動または再起動されると、システムは全ログメッセージを集中ログサーバーに送信します。

1.3.5. rsyslog サーバーの起動

rsyslog サービスは、集中ログサーバーと、そのサーバーにログ記録を試みるシステムの両方で実行する必要があります。

以下の手順に記載するステップは root ユーザーとしてログインして実行する必要があります。

  1. rsyslog サービスを起動します。

    # service rsyslog start
  2. 今後 rsyslog サービスが自動的に起動するように設定します。

    # chkconfig rsyslog on

rsyslog サービスが起動されました。サービスは、ローカル設定に基づいて、ログの送受信を開始します。