nova 示例配置文件 nova¶
此示例配置文件演示了 OpenStack 计算服务 (nova) 的配置方式。
# nova_sample.conf
[loggers]
keys = root, nova
[handlers]
keys = stderr, stdout, watchedfile, syslog, fluent, null
[formatters]
keys = context, default, fluent
[logger_root]
level = WARNING
handlers = null
[logger_nova]
level = INFO
handlers = stderr
qualname = nova
[logger_amqp]
level = WARNING
handlers = stderr
qualname = amqp
[logger_amqplib]
level = WARNING
handlers = stderr
qualname = amqplib
[logger_sqlalchemy]
level = WARNING
handlers = stderr
qualname = sqlalchemy
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARNING" logs neither. (Recommended for production systems.)
[logger_boto]
level = WARNING
handlers = stderr
qualname = boto
# NOTE(mikal): suds is used by the vmware driver, removing this will
# cause many extraneous log lines for their tempest runs. Refer to
# https://review.opendev.org/#/c/219225/ for details.
[logger_suds]
level = INFO
handlers = stderr
qualname = suds
[logger_eventletwsgi]
level = WARNING
handlers = stderr
qualname = eventlet.wsgi.server
[handler_stderr]
class = StreamHandler
args = (sys.stderr,)
formatter = context
[handler_stdout]
class = StreamHandler
args = (sys.stdout,)
formatter = context
[handler_watchedfile]
class = handlers.WatchedFileHandler
args = ('nova.log',)
formatter = context
[handler_syslog]
class = handlers.SysLogHandler
args = ('/dev/log', handlers.SysLogHandler.LOG_USER)
formatter = context
[handler_fluent]
class = fluent.handler.FluentHandler
args = ('openstack.nova', 'localhost', 24224)
formatter = fluent
[handler_null]
class = logging.NullHandler
formatter = default
args = ()
[formatter_context]
class = oslo_log.formatters.ContextFormatter
[formatter_default]
format = %(message)s
[formatter_fluent]
class = oslo_log.formatters.FluentFormatter
设置了两个 logger 节点,root 和 nova。
[loggers]
keys = root, nova
创建了几个 handlers,用于将消息发送到不同的输出。
[handlers]
keys = stderr, stdout, watchedfile, syslog, fluent, null
并创建了两个 formatters,根据日志记录位置是否具有 OpenStack 请求上下文信息来使用。还展示了一个 Fluentd formatter。
[formatters]
keys = context, default, fluent
配置 root logger 将消息发送到 null handler,从而静默除 nova 应用程序代码命名空间之外的大多数消息。
[logger_root]
level = WARNING
handlers = null
配置 nova logger 将标记为 INFO 及更高级别的消息发送到标准错误流。
[logger_nova]
level = INFO
handlers = stderr
qualname = nova
配置 amqp 和 amqplib loggers(由将应用程序连接到消息总线的模块使用)将警告消息发送到标准错误流。
[logger_amqp]
level = WARNING
handlers = stderr
qualname = amqp
[logger_amqplib]
level = WARNING
handlers = stderr
qualname = amqplib
配置 sqlalchemy logger(由将应用程序连接到数据库的模块使用)将警告消息发送到标准错误流。
[logger_sqlalchemy]
level = WARNING
handlers = stderr
qualname = sqlalchemy
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARNING" logs neither. (Recommended for production systems.)
类似地,boto、suds 和 eventlet.wsgi.server 被配置为将警告发送到标准错误流。
[logger_boto]
level = WARNING
handlers = stderr
qualname = boto
# NOTE(mikal): suds is used by the vmware driver, removing this will
# cause many extraneous log lines for their tempest runs. Refer to
# https://review.opendev.org/#/c/219225/ for details.
[logger_suds]
level = INFO
handlers = stderr
qualname = suds
[logger_eventletwsgi]
level = WARNING
handlers = stderr
qualname = eventlet.wsgi.server
上述大多数 logger 使用的 stderr handler 被配置为将内容写入控制台的标准错误流。
[handler_stderr]
class = StreamHandler
args = (sys.stderr,)
formatter = context
stderr handler 使用 context formatter,该 formatter 从 oslo.config 获取其配置设置。
[formatter_context]
class = oslo_log.formatters.ContextFormatter
定义了 stdout 和 syslog handlers,但未被使用。
fluent handler 对于将日志发送到 fluentd 非常有用。它是 fluent-logger-python 的一部分,您可以按以下方式安装它。
$ pip install fluent-logger
此 handler 被配置为使用 fluent formatter。
[handler_fluent]
class = fluent.handler.FluentHandler
args = ('openstack.nova', 'localhost', 24224)
formatter = fluent
[formatter_fluent]
class = oslo_log.formatters.FluentFormatter