O02九、教你看懂OpenStack日志

 
instance 从建立到删除的整个生命周期都是有 Nova 管理的,后面各小节咱们以instance生命周期中不一样操做场景为例,详细分析 Nova不一样组件如何协调工做,并经过日志分析加深你们对 Nova 的理解
 
在研究 Nova 各个操做以前,咱们先来学习一个重要的内容:OpenStack 日志。OpenStack 的日志记录了很是详细的细节信息,是咱们学习和Troubleshooting的利器。
 
日志的位置
 
咱们实验环境使用的是DevStack ,日志统一放在 /opt/stack/logs 下面,每一个服务都有本身的日志文件,从命名上很容易区分。
 
对于非 DevStack 安装的OpenStack ,日志通常放在 /var/log/xxx/ 目录下
 
各个子服务的日志文件也是单独保存的,命名也很规范,容易区分。好比nova-api 的日志,存放路径  /var/log/nova/api.log
 
root@DevStack-Controller:~# ls /opt/stack/logs/ | grep -v 2019
c-api.log    #    cinder日志
c-sch.log
c-vol.log
dstat-csv.log
dstat.log
g-api.log    #    glance-api 日志
g-reg.log    #    glance-registry日志
horizon.log
key-access.log
key.log    #    keystone日志
n-api.log    #    nova-api日志
n-cauth.log
n-cond.log
n-cpu.log    #    nova-compute日志
n-dhcp.log
n-novnc.log
n-sch.log
placement-api.log
q-agt.log
q-dhcp.log    #    q- 是Neutron日志
q-l3.log
q-meta.log
q-svc.log
screen
stack.sh.log
stack.sh.log.summary
 
日志的格式
 
OpenStack 的日志格式都是统一的,以下:
 
<时间戳><日志等级><代码模块><Request ID><日志内容><源代码位置>
 
简单说一下:
    <时间戳>            日志记录的时间点,年月日时分秒
    <日志等级>        INFO  WARNING  ERROR  DEBUG 等
    <代码模块>        当前运行的模块1
    <Request ID>    日志会记录连续不一样的操做,为了便于区分和增长可读性,每一个操做都被分配惟一的 Request ID ,便于查找日志内容
    <日志内容>        这是日志的主体,记录当前正在执行的操做和结果等重要信息
    <源代码位置>     日志代码的位置,包括方法名称、源代码文件的目录位置和行号,这一项不是全部日志都有
 
2019-05-23 16:35:16.430 
DEBUG 
nova.compute.manager 
[req-808daefa-2cd8-4c34-bd34-2730453805da admin admin] 
[instance: a0e2b485-f40c-43e4-beb6-049b6399f0ec] Starting instance... 
from (pid=4613) _do_build_and_run_instance /opt/stack/nova/nova/compute/manager.py:1766
 
2019-05-23 16:35:16.528 
INFO 
nova.compute.claims 
[req-808daefa-2cd8-4c34-bd34-2730453805da admin admin] 
[instance: a0e2b485-f40c-43e4-beb6-049b6399f0ec] Attempting claim: memory 256 MB, disk 0 GB, vcpus 1 CPU
 
关于日志的几点说明
 
    一、学习OpenStack 须要看日志吗?这个问题的答案取决于你是谁。若是你是OpenStack的最终用户,那么日志对你不重要。你只须要爱GUI 上操做就能够了,出过出了问题直接找管理员处理。但若是你是OpenStack的运维和管理人员,日志对你就很是重要了。由于OpenStack操做若是出错,GUI上给出的错误信息是很是笼统和简要的,日志则提供了大量的线索,特别是当debug选项打开以后。若是你正处于OpenStack的学习阶段,正如咱们如今的状态,那么也强烈建议你多看日志。日志可以帮助你更加深刻理解 OpenStack 的运行机制
 
    二、日志可以帮助咱们深刻学习OpenStack 和排查问题。但要想高效的使用日志还有个前提:必须先掌握OpenStack的运行机制,而后针对性的查看日志。就拿Instance Launch 的操做来讲,若是以前不了解 nova-* 各子服务在操做中的协做关系,若是没有理解流程图,面对如此多并且分散的日志文件,咱们也很难下手。
 
    三、对于OpenStack 的运维和管理员来讲,在大部分状况下,咱们不须要看源代码。由于OpenStack的日志记录的很详细了,足以帮助咱们分析和定位问题。但仍是有一些细节日志没有记录,必要时能够经过查看源代码来来接得更清楚。即使如此,日志也会为咱们提供源代码查看的线索,不须要咱们大海捞针。这一点咱们会在后面的操做分析中看到。
相关文章
相关标签/搜索