Openstack日志

Openstack日志

日志对于一个稳定的系统来说相当重要,对于OpenStack这样一个大型的系统,日志当然也是必不可少,理解Openstack系统的日志对于保证OpenStack环境稳定非常重要。对于出现系统错误,查看日志是一个很好的习惯。

OpenStack通过生成大量日志信息来帮助排查系统安装运行期间出现的问题,接下来介绍几个常见服务的相关日志位置。

Nova日志

OpenStack计算服务日志位于/var/log/nova,默认权限拥有者是nova用户。需要注意的是,并不是每台服务器上都包含所有的日志文件,例如nova-compute.log仅在计算节点生成。

  • nova-api.log:用户与OpenStack交互以及OpenStack组件间交互的消息相关日志
  • nova-compute.log:虚拟机实例在启动和运行中产生的日志
  • nova-scheduler.log:有关调度的,分配任务给节点以及消息队列的相关日志
  • nova-conductor.log:nova-compute和数据库操作均通过conductor实现
  • nova-consoleauth.log:关于nova-console服务的验证细节
  • nova-manage.log:运行nova-manage命令时产生的日志
  • nova-novncproxy.log:关于nova的VNC服务的详细信息

Dashboard是一个DJango的web应用程序,默认运行在Apache服务器上,相应的运行日志也都记录在Apache的日志中,用户可以在/var/log/apache2/中查看。

存储日志

对象存储Swift默认日志写到syslog中,在Ubuntu系统中,可以通过/var/log/syslog查看,在其他系统中,可能位于/var/log/messages中。
块存储Cinder产生的日志默认存放在/var/log/cinder目录中

  • cinder-api.log:关于cinder-api服务的细节
  • cinder-scheduler.log:关于cinder调度服务的操作的细节
  • cinder-volume.log:与cinder卷服务相关的日志项

Keystone日志

身份认证Keystone服务的日志记录在
/var/log/apache2/keystone_access.log
/var/log/apache2/keystone.log

Glance日志

镜像服务Glance的日志默认存放在/var/log/glance目录中

  • api.log:Glance API相关的日志
  • registry.log:Glance registry服务相关的日志

根据日志配置的不同,会保存诸如元信息更新和访问记录这些信息。

Neutron日志

网络服务Neutron的日志默认存放在/var/log/neutron目录中

  • dhcp-agent.log:关于dhcp-agent的日志
  • l3-agent.log:与l3代理及其功能相关的日志
  • neutron-metadata-agent.log:通过neutron代理给Nova元数据服务的相关日志
  • openvswitch-agent.log:与openvswitch相关操作的日志项,在具体实现OpenStack网络时,如果使用了不同的插件,就会有相应的日志文件名
  • neutron-server.log:与Neutron API服务相关的日志

改变日志级别

每个OpenStack服务的默认日志级别均为警告级(Warning),该级别的日志对于了解运行中系统的状态或者基本的错误定位已经够用,但是有时候需要上调日志级别来帮助诊断问题,或者下调日志级别以减少日志噪声。由于各个服务的日志设置方式类似,因此这里就以Nova服务为例。

设置Nova服务的日志级别

vi /etc/nova/logging.conf
将列出的服务的日志级别修改为DEBUG、INFO或WARNING

[logger_root]
level = WARNING
handlers = null

[logger_nova]
level = INFO
handlers = stderr
qualname = nova
......
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

设置其他OpenStack服务中的日志级别

其他服务(如Glance和Keystone)目前都在它们的主配置文件中设置了日志级别,例如/etc/glance/glance-api.conf。可以通过修改这些文件中对应设置来将日志级别调整到DEBUG:

[DEFAULT]
#set DEBUG log level output
debug = True
  
  
  • 1
  • 2
  • 3

以上内容转载自:http://blog.csdn.net/henulwj/article/details/47953989,并有一些小的改动。

logrotate

logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。OpenStack的日志,也是由它管理。

logrotate 的配置文件是 /etc/logrotate.conf。主要参数如下:

daily: 日志文件每天进行滚动
missingok: 如果找不到这个log档案,就忽略过去
rotate: 保留最进52次滚动的日志
compress: 通过gzip压缩转储以后的日志
delaycompress: 和compress一起使用时,转储的日志文件到下一次转储时才压缩
notifempty 如果是空文件的话,不转储
create mode owner group:转储文件,使用指定的文件模式创建新的日志文件
sharedscripts: 运行postrotate脚本(该脚本作用为让nginx重新生成日志文件)
postrotate/endscript: 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

root@controller:/etc/logrotate.d# ls
aodh-common  apt                cinder-common  keystone        libvirtd.lxc   mongodb-server  nova-common         ppp              ufw
apache2      aptitude           dpkg           libvirtd        libvirtd.qemu  mysql-server    openvswitch-switch  rabbitmq-server  unattended-upgrades
apport       ceilometer-common  glance-common  libvirtd.libxl  libvirtd.uml   neutron-common  pm-utils            rsyslog          upstart
root@controller:/etc/logrotate.d# cat nova-common 
/var/log/nova/*.log {
    daily
    missingok
    compress
    delaycompress
    copytruncate
}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

根据上面的配置可以知道nova-*.log 是每天转存并且压缩。

logrotate默认被加入到cron的/etc/cron.daily中作为每日任务执行,配置定义在:
/etc/cron.daily/logrotate
查看logrotate最近进行了哪些日志归档:
less /var/lib/logrotate/status

......
"/var/log/neutron/openvswitch-agent.log" 2017-3-17-6:53:6
"/var/log/neutron/neutron-ns-metadata-proxy-9615cb3b-b774-466a-8932-1830a7e9cf98.log" 2017-2-17-6:27:37
"/var/log/nova/nova-novncproxy.log" 2017-3-28-6:43:1
"/var/log/ufw.log" 2017-3-28-6:0:0
"/var/log/unattended-upgrades/unattended-upgrades.log" 2017-3-28-6:0:0
"/var/log/aodh/aodh-expirer.log" 2017-3-28-6:43:1
"/var/log/neutron/ovs-cleanup.log" 2017-2-22-6:41:51
"/var/log/libvirt/qemu/instance-00000013.log" 2016-11-10-6:0:0
"/var/log/mysql/error.log" 2017-3-28-6:43:1
"/var/log/mail.err" 2017-3-28-6:0:0
"/var/log/cinder/cinder-api.log" 2017-3-17-6:53:6
"/var/log/upstart/ceilometer-api.log" 2017-3-28-6:43:1
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

查看/etc/cron.daily每日任务是什么时候运行的:
cat /etc/crontab

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
发布了59 篇原创文章 · 获赞 66 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42953006/article/details/104869748