第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 | /var/log/sahara/sahara-all.log |
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.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 |
データベースサーバー (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 |
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 ユーザーとしてログインして実行する必要があります。
SELinux が
rsyslog
トラフィックを許可するように設定します。# semanage port -a -t syslogd_port_t -p udp 514
テキストエディターで
/etc/rsyslog.conf
ファイルを開きます。ファイルに以下の行を追加して、ログの保存先となる場所を定義します。
$template TmplMsg, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" $template TmplAuth, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" authpriv.* ?TmplAuth *.info,mail.none,authpriv.none,cron.none ?TmplMsg
ファイル内の以下の行から、行頭のコメント文字 (
#
) を削除します。#$ModLoad imudp #$UDPServerRun 514
/etc/rsyslog.conf
ファイルへの変更を保存します。
環境内の他のシステムからのログファイルを受信し、保管するための集中ログサーバーの設定が完了しました。
1.3.4. 個々のノードでの rsyslog 設定
以下の手順に記載するステップを各システムに適用して、集中ログサーバーにログを送信するように設定します。これらのステップはすべて root ユーザーとしてログインして実行する必要があります。
/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
のコマンドを実行するとアクセスすることができます。- rsyslog サービスが起動または再起動されると、システムは全ログメッセージを集中ログサーバーに送信します。
1.3.5. rsyslog サーバーの起動
rsyslog
サービスは、集中ログサーバーと、そのサーバーにログ記録を試みるシステムの両方で実行する必要があります。
以下の手順に記載するステップは root ユーザーとしてログインして実行する必要があります。
rsyslog サービスを起動します。
# service rsyslog start
今後 rsyslog サービスが自動的に起動するように設定します。
# chkconfig rsyslog on
rsyslog
サービスが起動されました。サービスは、ローカル設定に基づいて、ログの送受信を開始します。
Comments