云计算国产化之路 vnc登录 文件系统直通(virtio-9p) 扩展qemu接口 gpg WARNING 珍藏博客 虚拟内存情况dommemstat分析 免密码自动登录脚本 Linux网桥 测试网段IP占用情况 Linux 进程状态 systemc强制依赖 调试openstack ut uefi p2v 重做ubuntu内核 virsh创建虚拟机简介 virtio IO路径 虚拟化层升级后磁盘无法卸载卷 vmtouch使用 Taint flags 主机和虚拟机文件共享处理的几种方法 kvm分析工具 kvm中对磁盘的io cache 虚拟化不同导致的guestos中软件安装差异(未解决) 设备直通(PCI Assignment)到底是咋整的 virtio到底是咋整的 内核启动参数 虚拟化实时性提升(零)之配置步骤 中断虚拟化(pic)到底是咋整的 中断虚拟化(apic)到底是咋整的 Raid卡配置丢失导致服务器无法启动 tainted kernels cpu stuck for 23s问题分析 虚拟化实时性提升(一)之hostOS切换为强实时系统 内存虚拟化到底是咋整的 qemu-kvm中vcpu虚拟化到底是咋整的 风河虚拟化技术点分析 使用qga的好处 qemu迁移代码分析 虚拟机串口配置及其导出到主机pts和console.log System-based I/O vs. Raw I/O 虚拟机使用Hugepage(大页) 硬件辅助分页(hardware assisted paging) 修改centos7默认启动项目 virtio的工作流程——kernel中virtio-pci初始化(2) virtio的工作流程——qemu中virtio-backend初始化(1) qmp ceilometer取不到memory.usage指标 Virtio-Balloon超详细分析 slabtop输出 虚拟机磁盘cache导致的host os kernel崩溃 虚拟机cpu和memory性能优化测评 PCI配置空间(PCI Configuration Space) centos下网卡设备直通(VT-dpci passthrough)遇到的问题及其解决思路 libguestfs详解 yum卸载软件包及其依赖 通过原始Centos ISO来定制自己的ISO centos下网卡设备直通(VT-d,pci passthrough) (占位符)window虚拟机中拔盘如何通知到libvirt和qemu后端的 cirrus漏洞分析CVE-2017-2615 XSA-208 qcow2随笔 控制寄存器概览 ceilometer对接postgresql 解压initrd和vmlinuz qemu guest agent验证 QEMU升级指南(待续) ubuntu中kdump的配置 qemu(2.3)接口梳理 热迁移导致的FC存储场景下的multipath卷残留问题分析 virsh命令(4)secret,snapshot,pool,volume部分 virsh命令(3)之interface,filter,network virsh命令(2)monitor,host,nodedev部分 virsh命令(1)之domain部分 QEMU内存管理之FlatView模型(QEMU2.0.0) ovirt基于sanock的高可用(主机粒度HA) Sanlock防脑裂场景功能测试用例 gnocchi配置及与ceilometer对接指南 make patch for libvirt in centos centos使用sanlock指导 高可用nfs资料 ubuntu14中使用sanlock指导 LVM操作指南 sanlock相关功能验证流程汇总 make patch for libvirt in ubuntu libvirt.so.0-version `LIBVIRT_PRIVATE_1.2.7' not found gdb debug libvirt 基于ubuntu社区源码包编译libvirt compile libvirt(centos) No PCI buses available nfs lead to Linux halt nfs install and config anti-virus for cloud platform nova fetch image from glance(something about _base) token auth process ovs入门指南 virt software anti-virus something about ceilometer disk sample context interview questions openstack vm injection openstack Restful and RPC murano 概览 创建虚拟机流程(compute节点)之网络创建 创建虚拟机流程之compute_api之虚拟机实例填充之配额检测 创建虚拟机流程之compute_api之基本参数生成 创建虚拟机流程之compute_api 创建虚拟机流程(主) 创建虚拟机之image 创建虚拟机流程之准备网桥 创建虚拟机流程之virt 创建虚拟机流程之compute节点 CI/CD研发流程之工程创建 CI/CD研发流程之代码合入 CI/CD研发流程之UT(单元测试) 向openstack社区合入代码记 openstack/ceilometer/gnocchi杂谈 影子页表原理 mem_add(exec.c) qemu编译安装调试 openstack/ceilometer/gnocchi之Grafana简介 openstack wiki etcd openstack计量ceilometer openstack计费cloudKitty enventlet backdoor USB 安装VMWARE ESX pycharm设置指南 无法执行modprobe -a kvm-intel解决办法 QEMU配置项 网络不通小记 libvirt之XML(虚拟机定义文件) openstack-horizon 证书认证 ceilometer与ceph对接 openstack定时任务剖析(TODO) 服务器重启后mongodb进程无法启动 ubuntu14下新增openstack服务到service的导引 ERROR 1045(28000)-数据库连不上 Python两个内置函数—locals和globals unknown exit, hardware reason 31

gnocchi配置及与ceilometer对接指南

2016年08月16日

背景介绍


ceilometer中数据是通过collector进程放置到数据库中的。
一开始数据库是用的mongodb,由于mongo会有很明显的性能问题。
社区逐渐废弃使用mongo,开始推广gnocchi

原理: 通过gnocchi的处理,将采集的指标分离。索引部分可以存到mysql中,数据部分存储到文件中。

还是上图:
在使用mongodb的时候,storage abstration layer=mongo driver.
在使用gnocchi的时候,storage abstration layer=gnocchi.

预置

创建数据库

登陆数据库节点,为gnocchi创建数据库。

mysql -u root -p

CREATE DATABASE gnocchi;
 
GRANT ALL PRIVILEGES ON  gnocchi.* TO 'gnocchi'@'localhost' IDENTIFIED BY 'Abc12345';
 
GRANT ALL PRIVILEGES ON  gnocchi.* TO 'gnocchi'@'%' IDENTIFIED BY 'Abc12345';

创建gnocchi用户

openstack user create --domain default --password-prompt gnocchi

给gnocchi用户赋admin角色

openstack role add --project service --user gnocchi admin

创建服务

openstack service create --name gnocchi --description "OpenStack Resource metering as a Service" metric

创建endpoint

注意: 如果需要HA,则需要HAproxy配置 并把这里的Ip在实际环境中替换为haproxy的IP

openstack endpoint create --region RegionOne metric public http://192.168.2.203:8041

openstack endpoint create --region RegionOne metric internal http://192.168.2.203:8041

openstack endpoint create --region RegionOne metric admin http://192.168.2.203:8041

安装gnocchi的包

gnocchi从源码安装

源码安装2.0.2版本 python setup.py install

####gnocchi-client从源码安装####

安装客户端gnocchiclient2.2.0 python setup.py install

注意
请不要忘记安装gnocchiclient

配置gnocchi

####创建相关目录####

如果已经有以下路径,可忽略

  mkdir /var/lib/gnocchi
  mkdir /var/log/gnocchi

配置ceph相关

1、在controller节点安装ceph-common包。
如果openstack+ceph环境已经搭建完毕的话,该包就已经安装好了。

2、给gnocchi创建一个专用的ceph pool,用来存放计量数据。(ceph mon node)
ceph osd pool create gnocchi 128 128
gnocchi pool的pg_num需要根据实际的ceph环境确定。

3、给gnocchi创建一个ceph用户。
ceph auth get-or-create client.gnocchi mon ‘allow r’ osd ‘allow class-read object_prefix rbd_children, allow rwx pool=gnocchi’

4、保存keyring文件。
ceph auth get-or-create client.gnocchi | tee ceph.client.gnocchi.keyring

5、拷贝gnocchi的keyring文件ceph.client.gnocchi.keyring到所有controller节点的/etc/ceph目录下。

6、获取gnocchi用户的ceph key,用于gnocchi.conf中的ceph_secret配置项。
[root@hx11 ceph_cluster]# ceph auth get-key client.gnocchi
AQAvAr1XN4BtDRAAR8O6ubQMZhCov26b8/f7hg==

配置文件

修改对应的配置项 将对于配置文件放置到/etc/gnocchi目录下 (api-paste.ini,gnocchi.conf,policy.json )

初始化数据库

gnocchi-upgrade

验证方法如下:

启动服务

systemctl start openstack-gnocchi-api.service openstack-gnocchi-metricd.service

bin文件处理

拷贝gnocchi文件到/usr /bin目录下,修改权限为

设置gnocchi

gnocchi archive-policy create -d granularity:5m,points:12 -d granularity:1h,points:24 -d granularity:1d,points:30 low

配置ceilometer

将dispatchers配置为gnocchi 在dispatcher_gnocchi制定uri

meter_dispatchers = gnocchi
event_dispatchers = gnocchi
[dispatcher_gnocchi]
filter_service_activity = false
url = http://192.168.2.203:8041
archive_policy = low

将/etc/ceilometer/ceilometer.conf以上内容修改完成(注意,如有需要url的地址修改为haproxy的ip)
重启ceilometer-collector服务

systemctl restart openstack-ceilometer-collector.service

验证

使用gnocchi相关的命令查询到指标,说明配置正确

注意: 使用gnocchi后,原来的ceilometer接口被废弃。

问题解决指引

error1:

pip install osc-lib

参考文档

http://blog.sina.com.cn/s/blog_6de3aa8a0102vgp1.html
http://gnocchi.xyz