[ English | 日本語 | Deutsch | Indonesia ]

rsyslog

许多操作系统使用 rsyslog 作为默认的日志服务。由于它能够原生地将日志发送到远程位置,因此无需安装任何额外的软件即可启用此功能,只需修改配置文件即可。在执行此操作时,请考虑通过管理网络或使用加密 VPN 运行您的日志记录,以避免被截获。

rsyslog 客户端配置

首先,配置所有 OpenStack 组件,使其除了标准的日志文件位置之外,还将日志记录到 syslog 日志文件。此外,配置每个组件记录到不同的 syslog facility。这使得在中央服务器上将日志拆分为各个组件更容易。

nova.conf:

use_syslog=True
syslog_log_facility=LOG_LOCAL0

glance-api.confglance-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 日志的聚合日志文件。