【CEPH】针对RBD客户端libvirt开启admin socket的日志调试功能

版权声明:原创文章,转载注明出处! https://blog.csdn.net/u010317005/article/details/81164895

目录

CEPH端配置

参考网址

APPArmor

概述

访问模式

参考网址

配置过程

环境信息

查看rbd客户端信息

配置ceph

创建目标路径,并修改权限

重启服务

验证

排错

针对单个rbd块开启日志

查看rbd的参数配置信息

设置日志等级

查看perf信息


CEPH端配置

       如果想针对某个RBD客户端开启日志调试功能,可以选择在/etc/ceph/ceph.conf的指定区增加以下内容:

[client.libvirt]

log file = /var/log/qemu/$cluster-$type.$id.$pid.$cctid.log

admin socket = /var/run/qemu/$cluster-$type.$id.$pid.$cctid.asok

       其中client.libvirt区名称需要匹配于对应客户端的cephx认证,可以使用ceph auth list查看所有的cephx客户端,或者在指定的rbd客户端的配置文件中查看cephx的用户信息。如果激活了SELinux或者AppArmor,需要注意的是这些安全应用可能会阻止RBD的用户进程把LOG或者是admin socket写到指定的目标路径上(例如/var/log/ceph和/var/run/ceph)

参考网址

http://docs.ceph.com/docs/master/rbd/libvirt/

APPArmor

概述

       AppArmor是一个高效和易于使用的Linux系统安全应用程序。AppArmor对操作系统和应用程序所受到的威胁进行从内到外的保护,甚至是未被发现的0day漏洞和未知的应用程序漏洞所导致的攻击。AppArmor安全策略可以完全定义个别应用程序可以访问的系统资源与各自的特权。AppArmor包含大量的默认策略,它将先进的静态分析和基于学习的工具结合起来,AppArmor甚至可以使非常复杂的应用可以使用在很短的时间内应用成功。

访问模式

参考网址

http://manpages.ubuntu.com/manpages/trusty/en/man5/apparmor.d.5.html

 

配置过程

环境信息

OS信息:ubuntu 14.04 内核为3.13.0

libvirt信息:1.2.9

查看rbd客户端信息

       此次针对的RBD客户端是libvirt,因此先查看下libvirt配置的cephx认证信息:

配置ceph

       因此在libvirt所在的服务器上,找到/etc/ceph/ceph.conf,加入以下字段

[client.compute]

admin_socket = /var/run/qemu/$cluster-$type.$id.$pid.$cctid.asok

log_file = /var/log/qemu/$cluster-$type.$id.$pid.$cctid.log

创建目标路径,并修改权限

mkdir –p /var/run/qemu /var/log/qemu

chmod 777 /var/run/qemu

chmod 777 /var/log/qemu

重启服务

       重启libvirt相关的服务,即重启以下两个服务

service libvirtd restart && service libvirt-guests restart

验证

       使用相关命令调用一次libvirt的创建,发现报权限错误

       但是明明/var/run/qemu的权限已经是777了,因此联想到可能是系统的安全机制产生的。因此就联想到apparmor。

排错

打开/etc/apparmor.d/abstractions/libvirt-qemu,找个地方加入以下字段

/run/qemu/* rw,

/var/log/qemu/* rw,

例如

这边的配置路上是/run/qemu/*是因为/var/run是连接到/run上去的,因此找个坑卡了很久。。。APPArmor估计是不支持软连接穿透的,或者是我还不知道。

然后再重启服务

service apparmor restart

service libvirtd restart && service libvirt-guests restart

再次通过创建云主机,就发现有对应的asok了

接着就可以开启rbd查看log之旅了

针对单个rbd块开启日志

       先确定要查看的uuid,然后写入到以下变量中

ls /var/run/qemu | grep `ps -aux| grep $uuid | head -1 | awk '{print $2}'`

注意/var/run/qemu是前面写到/etc/ceph/ceph.conf中的配置文件,例如

得出asok后,就可以调用ceph的命令了

查看rbd的参数配置信息

ceph --admin-daemon /path/to/asok config show

设置日志等级

       日志等级的格式为:<输出日志等级>/<内存日志等级>

       直接写一个数字没有带斜杠表示全部等级都设置为这个值。

ceph –admin-daemon /path/to/asok config set <var> <value>

查看perf信息

 

猜你喜欢

转载自blog.csdn.net/u010317005/article/details/81164895