The Logging System For Openstack Swift (linux Syslog)

Openstack Swift 的日志系统

Linux 系统日志

syslog and syslog-ng 详解, SAIO 配置日志系统的方法

Openstack swift 的日志和 linux 系统日志是混合在一起的。在没有特别配置的情况下,日志信息将被记录在 /var/log/messages 中。Linux 使用的日志系统为 syslog。在 Centos 7 中与之对应的服务为 rsyslog.service

rsyslog 配置文件一个重要作用是建立“日志主体”与日志文件之间的关系。例如,下面的配置指定“日志主体”(local1,local2,local3,etc.)中的数据被写入的文件名。不同的程序可以选择不同的“日志主体”用于日志记录。例如,swift proxy-server 可以指定将日志放入 local1 中,因此,根据下面的配置文件,proxy-server 的日志数据将被记录在 /var/log/swift/proxy.log 中。

# Uncomment the following to have a log containing all logs together
#local1,local2,local3,local4,local5.*   /var/log/swift/all.log

# Uncomment the following to have hourly proxy logs for stats processing
#$template HourlyProxyLog,"/var/log/swift/hourly/%$YEAR%%$MONTH%%$DAY%%$HOUR%"
#local1.*;local1.!notice ?HourlyProxyLog

local1.*;local1.!notice /var/log/swift/proxy.log
local1.notice           /var/log/swift/proxy.error
local1.*                ~

local2.*;local2.!notice /var/log/swift/storage1.log
local2.notice           /var/log/swift/storage1.error
local2.*                ~

local3.*;local3.!notice /var/log/swift/storage2.log
local3.notice           /var/log/swift/storage2.error
local3.*                ~

local4.*;local4.!notice /var/log/swift/storage3.log
local4.notice           /var/log/swift/storage3.error
local4.*                ~

local5.*;local5.!notice /var/log/swift/storage4.log
local5.notice           /var/log/swift/storage4.error
local5.*                ~

local6.*;local6.!notice /var/log/swift/expirer.log
local6.notice           /var/log/swift/expirer.error
local6.*                ~

系统包含的一般性的日志也对应于不同的“日志主体”,具体配置在 /etc/rsyslog.conf 中。需要注意的是 local0, 即写入/var/log/messages 的日志主体。其日志等级默认被设为 info, 即 debug 日志信息将无法被记录。相关配置如下。如果将日志文件删除,需要重启 rsyslog 服务,被删除的日子文件才会被重新创建。

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

Openstack Swift 日志系统

proxy_logging middleware, openstack swift 获取系统logger的方法, Proxy Server Configuration, Openstack swift logs

Openstack swift 不同服务的各自的配置文件中包含日志系统的配置信息,例如,在 proxy-server.conf 文件中添加如下指令可以控制 proxy-server 记录日志的行为。注意:日志还受 syslog 配置的影响。 例如,配置 proxy-server 记录 debug level 的日志,但是在 rsyslog 中对应的日志主体配置为记录 info level 的日志,最终,debug level 的日子将不会被记录。

这些配置语句可以放在配置文件中所有的 app 或者 filter 块之外,即,发挥全局作用,所有的 app 或者 middleware 将默认使用全局配置。但是,也可以放在具体某一个 app 或者 filter 块之内,作为相应的 app 或者 middleware 的局部配置,用于覆盖全局配置。

set log_name = tempauth
set log_facility = LOG_LOCAL0
set log_level = DEBUG
set log_headers = false
set log_address = /dev/log

另外,eventlet_debug = true 可以使一些调试事件被记录在 stderr 中,对应于日志主体中的 notice, 例如, rsyslog 配置中 local1.notice /var/log/swift/proxy.error.

Category: Tags:
blog comments powered by Disqus