您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

OpenStack的日志管理介绍

时间:2022-04-21 11:41:20  来源:  作者:永远大胆实现梦想

本文是从OpenStack官网翻译出来,从多个方面描述了OpenStack在日志分析和日志管理方面的内容,可以供大家参考学习。

一、日志的位置

大多数服务都默认将日志写入子目录为/var/log,下面为OpenStack各服务的位置列表。

Node type

Service

Log location

Cloud controller

nova-*

/var/log/nova

Cloud controller

glance-*

/var/log/glance

Cloud controller

cinder-*

/var/log/cinder

Cloud controller

keystone-*

/var/log/keystone

Cloud controller

neutron-*

/var/log/neutron

Cloud controller

horizon

/var/log/Apache2/

All nodes

misc (swift, DNSmasq)

/var/log/syslog

Compute nodes

libvirt

/var/log/libvirt/libvirtd.log

Compute nodes

Console (boot up messages) for VM instances:

/var/lib/nova/instances/instance-<instance id>/console.log

Block Storage nodes

cinder-volume

/var/log/cinder/cinder-volume.log

 

二、日志查阅

OpenStack服务使用标准的loggin级别,严重程度逐渐增高,如TRACE, DEBUG, INFO, AUDIT, WARNING, ERROR, and CRITICAL。也就是说,只有当日志消息比特定日志级别更高时才出现在日志文件中,Debug允许所有日志语句通过。例如,仅当软件具有堆栈跟踪时才记录跟踪,而记录每条日志消息的信息,包括仅用于提供info的日志消息。

关闭DEBUG-level日志记录,编辑/etc/nova/nova.conf 文件如下

Debug=false

keystone的处理有些不同,修改logging级别,编辑
/etc/keystone/logging.conf文件,看logger_root和handler_file部分。

OpenStack的日志管理介绍

 


OpenStack的日志管理介绍

 

而Horizon的logging配置在
/etc/openstack_dashboard/local_settings.py,因为horizon是一个Django网页应用,遵守Dango logging framework约定。

查找错误源的第一步通常是从日志文件底部开始搜索日志中的关键或错误信息。

下面是一个日志消息的实例,其中紧接着出现了响应的错误(Python/ target=_blank class=infotextkey>Python traceback):

2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server [req-c0b38ace-2586-48ce-9336-6233efa1f035 6c9808c2c5044e1388a83a74da9364d5 e07f5395c
2eb428cafc41679e7deeab1 - default default] Exception during message handling
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server   File "/openstack/venvs/cinder-14.0.0/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 133, in _process_incoming
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server     res = self.dispatcher.dispatch(message)
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server   File "/openstack/venvs/cinder-14.0.0/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 150, in dispatch
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server     return self._do_dispatch(endpoint, method, ctxt, args)
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server   File "/openstack/venvs/cinder-14.0.0/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 121, in _do_dispatch
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server     result = func(ctxt, **new_args)
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server   File "/openstack/venvs/cinder-14.0.0/lib/python2.7/site-packages/cinder/volume/manager.py", line 4366, in create_volume
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server     allow_reschedule=allow_reschedule, volume=volume)
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server   File "/openstack/venvs/cinder-14.0.0/lib/python2.7/site-packages/cinder/volume/manager.py", line 634, in create_volume
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server     _run_flow()
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server   File "/openstack/venvs/cinder-14.0.0/lib/python2.7/site-packages/cinder/volume/manager.py", line 626, in _run_flow
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server     flow_engine.run()
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server   File "/openstack/venvs/cinder-14.0.0/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", line 247, in run
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server     for _state in self.run_iter(timeout=timeout):
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server   File "/openstack/venvs/cinder-14.0.0/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", line 340, in run_iter
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server     fAIlure.Failure.reraise_if_any(er_failures)
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server   File "/openstack/venvs/cinder-14.0.0/lib/python2.7/site-packages/taskflow/types/failure.py", line 336, in reraise_if_any
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server     failures[0].reraise()
2017-01-18 15:54:00.467 32552 ERROR oslo_messaging.rpc.server   File "/openstack/venvs/cinder-14.0.0/lib/python2.7/site-packages/taskflow/types/failure.py", line 343, in reraise

在这个例子,cinder-volume启动失败和提供一个stack trace(堆栈跟踪)。因为其卷后端无法设置存储卷,这可能因为配置中预期的LVM卷不存在。

备注:Stacktrace(堆栈跟踪)是一个非常有用的调试工具. 在未捕获的异常被抛出时(或者手动制造堆栈跟踪的时候)它让你看到你调到的堆(意思是,在某一点调用方法的堆). 不仅显示出出现错误的地方, 也显示出程序在那个地方是如何结束的.

下面是一个Error日志实例:

2013-02-25 20:26:33 6619 ERROR nova.openstack.common.rpc.common [-] AMQP server on localhost:5672 is unreachable:
 [Errno 111] ECONNREFUSED. Trying again in 23 seconds.

在这错误中,一个nova服务不能连接到RabbitMQ服务器,因为它有一个拒绝连接的错误。

三、跟踪实例请求

当一个实例无法正常运行时,您通常需要在各种nova-*服务的日志文件中以及在云控制器和计算节点上跟踪与该实例相关的活动。

典型的方法是在服务日志中跟踪与实例关联的UUID。

考虑下面的例子:

 

OpenStack的日志管理介绍

 

在这里,与实例关联的ID是
faf7ded8-4a46-413b-b113-f19590746ffe,如果是在云控制器的/var/log/nova-*日志文件中搜索此字符串,它出现在nova-api.log和nova-scheduler.log中。如果你在计算点的/var/log/nova-*.log日志文件中搜索,它会出现在nova-compute.log中。日志如果没有出现Error或Critical消息,则在最新日志条目可能会提示出现了什么问题。

四、添加自定义日志语句

如果现有日志中没有足够的信息,您可能需要将自己的自定义日志语句添加到nova-*服务中。

源文件位于
/usr/lib/python2.7/dist-packages/nova.

添加日志记录语句,下面一行应该位于文件顶部附近。对于大多数文件,这些文件应该已经存在。

OpenStack的日志管理介绍

 

要添加DEBUG 日志记录语句,你要做:

OpenStack的日志管理介绍

 

您可能注意到,所有现有日志消息前面都有一个下划线,并用括号括起来,例如:

OpenStack的日志管理介绍

 

此格式用于支持使用gettex 国际化库将日志消息转换为不同语言。您不需要为自己的自定义日志消息执行此操作。但是,如果希望将代码贡献回包含日志语句的OpenStack项目,则必须用下划线和括号将日志消息括起来。

五、RabbitMQ Web管理界面或rabbitmqctl

除了连接失败之外,RabbitMQ日志文件通常对调试OpenStack相关问题没有用处。相反,我们建议使用RabbitMQ web管理界面。在云控制器上启用它:

# /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management

# service rabbitmq-server restart

RabbitMQ网页管理界面通过http://localhost:55672来访问。

其中Ubuntu的不同版本的访问端口会有所不同,如2.7.1是使用55672,而3.0以上则使用15672。

可以通过以下命令查看版本

OpenStack的日志管理介绍

 

另外,使用rabbitmqctl命令行也是可以查看队列情况,如

rabbitmqctl list_queues| grep cinder 可以显示剩余在队列中的消息。如果有消息,可能表明cinder服务未正确连接到rabbitmq,可能必须重新启动。

RabbitMQ要监视的项目包括每个队列中的项目数以及服务器的处理时间统计信息。

六、集中管理日志

因为云平台很可能由许多服务器组成,所以你必须检查每台服务器上的日志,才能正确地将一个事件关联在一起。更好的解决方案是将所有服务器的日志发送到一个集中的地方,以便可以统一管理和方便查阅。

统一日志管理方案的选择将取决于所使用的操作系统以及对日志工具的需求。目前业内比较有名的ElasticStack,是一个比较流行的开源解决方案。

OpenStack的日志管理介绍

 



Tags:OpenStack   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
OpenStack的日志管理介绍
本文是从OpenStack官网翻译出来,从多个方面描述了OpenStack在日志分析和日志管理方面的内容,可以供大家参考学习。一、日志的位置大多数服务都默认将日志写入子目录为/var/log...【详细内容】
2022-04-21  Search: OpenStack  点击:(678)  评论:(0)  加入收藏
OpenStack是什么,为什么华为也用OpenStack
很多人听说过云计算,这已经不算新名词了。还有一个词叫虚拟化,它是云计算的奠基了。本文尝试用通俗易懂的方式,讲述OpenStack是什么。OpenStack是什么?OpenStack是云计算管理的...【详细内容】
2020-07-24  Search: OpenStack  点击:(657)  评论:(0)  加入收藏
openstack基础构架以及服务方式解析
一:什么是openstackRackspace是(美国航天局)和NASA(一家公司)共同发起的开源项目,他是一系列软件项目的组合。 这些项目是松耦合的关系,可以进行独立的安装,启动和停止,只有在必要的...【详细内容】
2019-11-27  Search: OpenStack  点击:(620)  评论:(0)  加入收藏
5款管理OpenStack服务器的开源工具
OpenStack是一个开源平台,可让你构建在商用硬件上运行的基础架构即服务(IaaS)云。OpenStack背后的技术由一系列项目组成,这些项目为云基础架构解决方案提供了各种组件。它可以处...【详细内容】
2019-11-11  Search: OpenStack  点击:(551)  评论:(0)  加入收藏
▌简易百科推荐
为什么Nginx被称为“反向”代理呢?
Nginx(发音为"engine-x")是一款高性能、轻量级的开源Web服务器软件,也可用作反向代理服务器、负载均衡器和HTTP缓存。Nginx之所以有被称为“反向”代理,是因为它充当客户端设备...【详细内容】
2024-02-01  coderidea  微信公众号  Tags:Nginx   点击:(61)  评论:(0)  加入收藏
哪种服务器操作系统更好呢?
在当今的IT世界中,服务器操作系统扮演着至关重要的角色。它们是确保服务器能够高效、安全地运行的关键因素。然而,对于许多人来说,服务器操作系统的种类和特点可能是一个复杂的...【详细内容】
2024-01-30    简易百科  Tags:操作系统   点击:(80)  评论:(0)  加入收藏
什么是VPS服务器
VPS服务器是一种虚拟化技术,它将一台物理服务器划分为多个虚拟的独立服务器,每个虚拟服务器都可以拥有自己的操作系统、运行环境、应用程序等。这种技术使得每个虚拟服务器可...【详细内容】
2024-01-30    简易百科  Tags:VPS服务器   点击:(75)  评论:(0)  加入收藏
VPS服务器下载速度慢?这五招帮你提速
VPS服务器下载速度慢可能会让用户感到沮丧,尤其是对于需要大量下载和上传数据的用户。幸运的是,有一些方法可以帮助您提高VPS服务器的下载速度,使您的在线体验更加顺畅。在本文...【详细内容】
2024-01-30  IDC行业观察者    Tags:VPS服务器   点击:(60)  评论:(0)  加入收藏
美国VPS和英国VPS:地理位置对服务器性能的影响
在今天的数字时代,VPS已成为在线业务和网站托管的关键组成部分。然而,选择合适的VPS主机服务时,地理位置通常被忽视,尽管它对服务器性能有着重要的影响。本文将探讨美国VPS和英...【详细内容】
2024-01-26  IDC行业观察者    Tags:服务器   点击:(56)  评论:(0)  加入收藏
如何判断服务器所需带宽:基于业务需求和流量模式的关键考量
在选择服务器时,带宽是一个重要的考虑因素。带宽的大小直接影响到网站的加载速度和用户的访问体验。那么,如何判断服务器需要多大的带宽呢?本文将为你揭示这一关键问题的答案...【详细内容】
2024-01-26  源库科技    Tags:服务器   点击:(80)  评论:(0)  加入收藏
服务器内存空间及IO操作原理解析
服务器的内存空间分为内核空间和用户空间,而我们编写的程序通常在用户空间中运行。在进行读写操作时,我们直接操作的是用户缓冲区,而用户缓冲区的内容来自于内核缓冲区。这种内...【详细内容】
2024-01-23  王建立    Tags:服务器   点击:(46)  评论:(0)  加入收藏
如何在Java环境中安装Nginx?
1. 下载Nginx:首先,前往Nginx官方网站(https://nginx.org/en/download.html)下载新版本的Nginx。选择适合您操作系统的版本,通常有Windows、Linux和Mac等不同操作系统的版本可供...【详细内容】
2024-01-22  敲代码的小动    Tags:Nginx   点击:(71)  评论:(0)  加入收藏
服务器证书和SSL证书有啥区别?
在互联网经济时代,随着越来越多的信息以及合作都是从企业官网开始的,因此绝大多数企业都会为自己的网站配置SSL证书,以提高安全性。在接触SSL证书时,也有很多人称之为服务器证书...【详细内容】
2024-01-10  安信SSL证书    Tags:服务器证书   点击:(66)  评论:(0)  加入收藏
宝塔面板怎样部署java项目?
宝塔面板怎样部署java项目?在使用宝塔面板部署Java项目之前,需要确保已经安装了Java Development Kit (JDK)。接下来,将介绍如何使用宝塔面板来部署Java项目的步骤。步骤一:安装...【详细内容】
2024-01-09  西部数码    Tags:宝塔面板   点击:(123)  评论:(0)  加入收藏
站内最新
站内热门
站内头条