[ English | 日本語 | Deutsch | Indonesia ]
rsyslog¶
许多操作系统使用 rsyslog 作为默认的日志服务。由于它能够原生地将日志发送到远程位置,因此无需安装任何额外的软件即可启用此功能,只需修改配置文件即可。在执行此操作时,请考虑通过管理网络或使用加密 VPN 运行您的日志记录,以避免被截获。
rsyslog 客户端配置¶
首先,配置所有 OpenStack 组件,使其除了标准的日志文件位置之外,还将日志记录到 syslog 日志文件。此外,配置每个组件记录到不同的 syslog facility。这使得在中央服务器上将日志拆分为各个组件更容易。
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
默认情况下,对象存储会将日志记录到 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 作为在 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 日志的聚合日志文件。