第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 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
バックグラウンドデーモンからのアドホックメッセージ例
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 |
httpd.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
debug=TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細ロギングを有効化します。
verbose=True
verbose=TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow ログファイルのパスを変更します。
log_dir=/var/log/nova
log_dir=/var/log/novaCopy to Clipboard Copied! Toggle word wrap Toggle overflow ログを中央の syslog サーバーに送信します。
use_syslog=True syslog_log_facility=LOG_USER
use_syslog=True syslog_log_facility=LOG_USERCopy to Clipboard Copied! Toggle word wrap Toggle overflow
タイムスタンプの設定やログのフォーマットなどのオプションも利用できます。追加のロギングオプションについてはコンポーネントの設定ファイルを確認してください。
1.3. リモートロギングのインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
1.3.1. リモートロギングの概要 リンクのコピーリンクがクリップボードにコピーされました!
すべてのシステムは、直面した問題やアクションを記録するログファイルを作成して更新します。多くのシステムが含まれる分散またはクラウドコンピューティング環境では、中央ロケーションでこれらのログファイルをまとめることで、デバッグを簡素化します。
rsyslog サービスにより、集中ロギングサーバーを実行したり、個別システムがログファイルを集中ロギングサーバーに送信するように設定したりする機能が提供されます。これは、システムのリモートロギング 設定と呼びます。
1.3.2. rsyslog サーバーのインストール リンクのコピーリンクがクリップボードにコピーされました!
rsyslog パッケージは、集中ロギングサーバーとして使用予定のシステムおよびログの送信元として設定する全システムにインストールする必要があります。これには、root ユーザーとしてログインして rsyslog パッケージをインストールします。
yum install rsyslog
# yum install rsyslog
rsyslog パッケージがインストールされ、設定の準備ができました。
1.3.3. 集中ロギングサーバーでの rsyslog の設定 リンクのコピーリンクがクリップボードにコピーされました!
集中ロギングサーバーとして使用予定のシステム上で、以下の手順に記載するステップを行うようにしてください。また、すべてのステップは root ユーザーとしてログインして実行する必要があります。
SELinux が
rsyslogトラフィックを許可するように設定します。semanage port -a -t syslogd_port_t -p udp 514
# semanage port -a -t syslogd_port_t -p udp 514Copy to Clipboard Copied! Toggle word wrap Toggle overflow テキストエディターで
/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
$template TmplMsg, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" $template TmplAuth, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" authpriv.* ?TmplAuth *.info,mail.none,authpriv.none,cron.none ?TmplMsgCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイル内の以下の行から、行頭のコメント文字 (
#) を削除します。#$ModLoad imudp #$UDPServerRun 514
#$ModLoad imudp #$UDPServerRun 514Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
/etc/rsyslog.confファイルへの変更を保存します。
環境内の他のシステムからのログファイルを受信し、保管するための集中ログサーバーの設定が完了しました。
1.3.4. 個々のノードでの rsyslog 設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に記載するステップを各システムに適用して、集中ログサーバーにログを送信するように設定します。これらのステップはすべて root ユーザーとしてログインして実行する必要があります。
/etc/rsyslog.confを編集して以下を追加し、集中ログサーバーのアドレスを指定します。*.* @YOURSERVERADDRESS:YOURSERVERPORT
*.* @YOURSERVERADDRESS:YOURSERVERPORTCopy to Clipboard Copied! Toggle word wrap Toggle overflow YOURSERVERADDRESS は集中ログサーバーのアドレスに、YOURSERVERPORT は、rsyslog サービスをリッスンするポートに置き換えます。以下はその例です。
*.* @192.168.20.254:514
*.* @192.168.20.254:514Copy to Clipboard Copied! Toggle word wrap Toggle overflow または
*.* @@log-server.example.com:514
*.* @@log-server.example.com:514Copy to Clipboard Copied! Toggle word wrap Toggle overflow @が 1 つの場合は、転送プロトコルに UDP が指定されます。TCP 転送プロトコルを指定するには、@@を使用してください。重要上記の例で、ワイルドカード文字 (
*) を使用している箇所は、全ログファシリティーからの全ログプライオリティーのログエントリーをリモートの rsyslog サーバーに送信する必要があることを rsyslog に対して示しています。より厳密なフィルターをログファイルに適用する方法についての説明は、rsyslog 設定ファイル (
rsyslog.conf) の man ページを参照してください。このページには、man rsyslog.confのコマンドを実行するとアクセスすることができます。- rsyslog サービスが起動または再起動されると、システムは全ログメッセージを集中ログサーバーに送信します。
1.3.5. rsyslog サーバーの起動 リンクのコピーリンクがクリップボードにコピーされました!
rsyslog サービスは、集中ログサーバーと、そのサーバーにログ記録を試みるシステムの両方で実行する必要があります。
以下の手順に記載するステップは root ユーザーとしてログインして実行する必要があります。
rsyslog サービスを起動します。
service rsyslog start
# service rsyslog startCopy to Clipboard Copied! Toggle word wrap Toggle overflow 今後 rsyslog サービスが自動的に起動するように設定します。
chkconfig rsyslog on
# chkconfig rsyslog onCopy to Clipboard Copied! Toggle word wrap Toggle overflow
rsyslog サービスが起動されました。サービスは、ローカル設定に基づいて、ログの送受信を開始します。