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
 
关于日志的几点说明
 
    1、学习OpenStack 需要看日志吗?这个问题的答案取决于你是谁。如果你是OpenStack的最终用户,那么日志对你不重要。你只需要爱GUI 上操作就可以了,出过出了问题直接找管理员处理。但如果你是OpenStack的运维和管理人员,日志对你就非常重要了。因为OpenStack操作如果出错,GUI上给出的错误信息是非常笼统和简要的,日志则提供了大量的线索,特别是当debug选项打开之后。如果你正处于OpenStack的学习阶段,正如我们现在的状态,那么也强烈建议你多看日志。日志能够帮助你更加深入理解 OpenStack 的运行机制
 
    2、日志能够帮助我们深入学习OpenStack 和排查问题。但要想高效的使用日志还有个前提:必须先掌握OpenStack的运行机制,然后针对性的查看日志。就拿Instance Launch 的操作来说,如果之前不了解 nova-* 各子服务在操作中的协作关系,如果没有理解流程图,面对如此多而且分散的日志文件,我们也很难下手。
 
    3、对于OpenStack 的运维和管理员来说,在大部分情况下,我们不需要看源代码。因为OpenStack的日志记录的很详细了,足以帮助我们分析和定位问题。但还是有一些细节日志没有记录,必要时可以通过查看源代码来来接得更清楚。即便如此,日志也会为我们提供源代码查看的线索,不需要我们大海捞针。这一点我们会在后面的操作分析中看到。

O029、教你看懂OpenStack日志的更多相关文章

  1. 教你看懂 OpenStack 日志 - 每天5分钟玩转 OpenStack(29)

    instance 从创建到删除的整个生命周期都是由 Nova 管理的. 后面各小节我们以 instance 生命周期中的不同操作场景为例,详细分析 Nova 不同组件如何协调工作,并通过日志分析加深大 ...

  2. 教你看懂Code128条形码

    首     页 条码控件 条码技术 条码新闻 合作伙伴 联系我们 常见问题 电话:010-84827961 当前位置:条形码控件网 > 条形码控件技术文章 > >正文   教你看懂C ...

  3. emmm 深入浅出教你看懂现代金融游戏

    3303只信仰公平[网易陕西省西安网友]1 比特币是骗人的.你们都被“现代帼家纸币”概念茜脑了,而且茜的很彻底,所以你们看不透比特币的骗局.简单来说,现代纸币是“空气纸”,比特币是“空气币(空气数据) ...

  4. 教你看懂Docker和K8S!

    转载于 https://my.oschina.net/jamesview/blog/2994112 2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司. 这家公司主要 ...

  5. 一文看懂 K8s 日志系统设计和实践

    上一篇中我们介绍了为什么需要一个日志系统.为什么云原生下的日志系统如此重要以及云原生下日志系统的建设难点,相信DevOps.SRE.运维等同学看了是深有体会的.本篇文章单刀直入,会直接跟大家分享一下如 ...

  6. 教你看懂网上流传的60行JavaScript代码俄罗斯方块游戏

    早就听说网上有人仅仅用60行JavaScript代码写出了一个俄罗斯方块游戏,最近看了看,今天在这篇文章里面我把我做的分析整理一下(主要是以注释的形式). 我用C写一个功能基本齐全的俄罗斯方块的话,大 ...

  7. 一篇教你看懂spring bean工厂和aop

    这篇文章为spring回顾总结的第二篇,本篇主要分为两个部分,分别是spring的bean工厂的实现.spring的aop实现原理,这两部分也是面试当中问的比较多的. spring的bean工厂的实现 ...

  8. 教你看懂C++类库函数定义之二---STDMETHOD介绍

    一切从一个C++ 类库头文件开始,现在在做一个C++的项目,期间用到一个开源的界面库DUILib(类似MFC),这个东西还不错能很容易的写出漂亮的界面,比如QQ的界面,可以去下载下来研究研究,地址:h ...

  9. 教你看懂C++类库函数定义之三---_stdcall

    一切从一个C++ 类库头文件开始,现在在做一个C++的项目,期间用到一个开源的界面库DUILib(类似MFC),这个东西还不错能很容易的写出漂亮的界面,比如QQ的界面,可以去下载下来研究研究,地址:h ...

随机推荐

  1. Flume-概述

    Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统.Flume 基于流式架构,灵活简单. Flume最主要的作用就是,实时读取服务器本地磁盘的数据, ...

  2. 前端知识点回顾之重点篇——jQuery实现的原理

    jQuery jQuery的实现原理 参考:https://blog.csdn.net/zhouziyu2011/article/details/70256659 外层沙箱和命名空间$ 为了避免声明了 ...

  3. shift and add算法相关

    1.超分辨率 非均匀插值 Farsiu S, Robinson D, Milanfar P. Robust shift and add approach to superresolution[J]. ...

  4. 快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题

    快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题 转 https://www.jb51.net/article/144939.htm 今天小编就为大家分享一篇快速解决设置And ...

  5. VBA锁定指定单元格

    Then .Range("AF4").Value = pjno .Range("A1:AH56").Locked = False .Range("F6 ...

  6. python解析模块(ConfigParser)使用方法

    python解析模块(ConfigParser)使用方法 很多软件都有配置文件,今天介绍一下python ConfigParser模块解析配置文件的使用方法 测试配置文件test.conf内容如下: ...

  7. 关键字 using语句 大神的神扯

    using 是非托管资源: 解析:在C#应用托管到.NET Framework.但是他可以释放非托管资源. using 关键字有两个作用: 1:作为关键字,using可以导入命名空间 2:座位C#语句 ...

  8. linux之反向代理,反向代理实例,负载均衡实例

    目录 nginx反向代理 1. 概述 2. 反向代理服务器的工作原理 (1)作为内容服务器的替身 (2)作为内容服务器的负载均衡器 二. nginx反向代理实例 1.前期准备 2.代理服务器配置 3. ...

  9. android#编写一个聊天界面

    摘自<第一行代码>——郭霖 既然是要编写一个聊天界面,那就肯定要有收到的消息和发出的消息.上一节中我们制作的message_left.9.png可以作为收到消息的背景图,那么毫无疑问你还需 ...

  10. 如何查看linux系统安装时间

    第一种方法: 先查看系统盘挂到哪个分区上,然后用 dumpe2fs  查看这个磁盘分区 创建的时间,即可查出此 服务器 系统安装的时间.() # dumpe2fs /dev/sda3|grep -i ...