[ English | Indonesia | Deutsch | 日本語 ]
rsyslog¶
多くのオペレーティングシステムは、rsyslog をデフォルトのロギングサービスとして利用します。rsyslog は、リモートにログを送信する機能を持っているので、何かを追加でインストールする必要がなく、設定ファイルを変更するだけです。リモート転送を実施する際は、盗聴を防ぐためにログが自身の管理ネットワーク上を通る、もしくは暗号化VPNを利用することを考慮する必要があります。
rsyslog クライアント設定¶
まず始めに、全ての OpenStack コンポーネントのログを標準ログに加えて syslog のログファイルに出力するように設定します。また、各コンポーネントが異なる syslog ファシリティーになるように設定します。これによりログサーバー上で、個々のコンポーネントのログを分離しやすくなります。
nova.conf
:
use_syslog=True
syslog_log_facility=LOG_LOCAL0
glance-api.conf
と glance-registry.conf
:
use_syslog=True
syslog_log_facility=LOG_LOCAL1
cinder.conf
:
use_syslog=True
syslog_log_facility=LOG_LOCAL2
keystone.conf
:
use_syslog=True
syslog_log_facility=LOG_LOCAL3
デフォルトで Object Storage は syslog にログを出力します。
次に、 /etc/rsyslog.d/client.conf
を作成して、以下の行を書き込みます。
*.* @192.168.1.10
これは、rsyslogに全てのログを指定したIPアドレスに送るように命令しています。この例では、IPアドレスはクラウドコントローラーを指しています。
rsyslog サーバー設定¶
集中ログサーバーとして使用するサーバーを決めます。ログ専用のサーバーを利用するのが最も良いです。 /etc/rsyslog.d/server.conf
を次のように作成します。
# Enable UDP
$ModLoad imudp
# Listen on 192.168.1.10 only
$UDPServerAddress 192.168.1.10
# Port 514
$UDPServerRun 514
# Create logging templates for nova
$template NovaFile,"/var/log/rsyslog/%HOSTNAME%/nova.log"
$template NovaAll,"/var/log/rsyslog/nova.log"
# Log everything else to syslog.log
$template DynFile,"/var/log/rsyslog/%HOSTNAME%/syslog.log"
*.* ?DynFile
# Log various openstack components to their own individual file
local0.* ?NovaFile
local0.* ?NovaAll
& ~
これはnovaサービスのみを扱っています。はじめに rsyslog を UDP 514番ポートで動作するサーバーとして設定します。次に一連のログテンプレートを作成します。ログテンプレートは受け取ったログをどこに保管するかを指定します。最後の例を用いると、c01.example.comから送られるnovaのログは次の場所に保管されます。
/var/log/rsyslog/c01.example.com/nova.log
/var/log/rsyslog/nova.log
c02.example.comから送られたログはこちらに保管されます。
/var/log/rsyslog/c02.example.com/nova.log
/var/log/rsyslog/nova.log
この設定により、全ノードからの nova のログを含む集約されたログだけでなく、個々のコンピュートノードのログも持つことになります。