前言:简单概述4个服务做什么,如何协同起来
ceilometer负责采集数据,采集的数据分为计量数据和事件数据,计量数据交给gnocchi处理(本文gnocchi将计量数据存储在ceph存储池中),事件数据存储在panko中,aodh负责监控告警
我的部署大体参考下文:
转:CentOS7安装OpenStack-10.安装Telemetry服务组件(计量系统)-OpenStack-rocky版(centos7.7下安装)_centos7下部署opentelemetry collector-CSDN博客
在有出处的地方我进行详细说明:
注意:gnocchi部分没有配置好,验证的时候就频繁出现 error:controller:8041connection连接失败,而且也会影响ceilometer的部署
1.编辑配置文件/etc/gnocchi/gnocchi.conf文件时,在[storage]部分作如下修改
[storage]
driver = ceph
ceph_pool = gnocchi
ceph_username = gnocchi
ceph_keyring = /etc/ceph/ceph.client.gnocchi.keyring
ceph_timeout = 30
ceph_conffile = /etc/ceph/ceph.conf
下面两行的意思是 ,用文件系统作存储后端代替了ceph,此处用ceph作存储后端
#file_basepath = /var/lib/gnocchi
#file_subdir_len = 2
2.安装uwsgi
插件安装:
yum -y install uwsgi-plugin-common uwsgi-plugin-python uwsgi
gnocchi-upgrade
chmod -R 777 /var/lib/gnocchi
systemctl restart openstack-gnocchi-api.service openstack-gnocchi-metricd.service
systemctl status openstack-gnocchi-api.service openstack-gnocchi-metricd.service
systemctl enable openstack-gnocchi-api.service openstack-gnocchi-metricd.service
源码修改:
/usr/lib/python2.7/site-packages/gnocchiclient/shell.py 的130行改为os.environ["OS_AUTH_TYPE"] = "password"
验证
gnocchi status
3.ceph集群的问题解决:
3.1执行ceph -s 错误:HEALTH_WARN
解决:
systemctl stop ceph-mon.target
systemctl start ceph-mon.target
3.2执行ceph -s 错误:HEALTH_WARN
HEALTH_WARN: application not enabled on 1 pool(s)"通常表示系统或应用程序的健康状态出现警告。在这种情况下,它表明系统中的一个池子中未启用某个应用程序。
之前通过ceph osd pool 创建了名为gnocchi的存储池来作为gnocchi的存储后端,现在你需要将存储池和应用程序gnocchi进行关联
#第一个gnocchi表示存储池 第二个gnocchi表示应用程序
ceph osd pool application enable gnocchi gnocchi
4.部署ceilometer服务,下列配置根据自己来定义
[root@controller ceilometer]# cat polling.yaml
---
sources:
- name: some_pollsters
interval: 300
meters:
- cpu
resources:
- physical_cpu
sinks:
- meter_sink
[root@controller ceilometer]# cat pipeline.yaml
---
sources:
- name: meter_source
meters:
- "*"
sinks:
- meter_sink
sinks:
- name: meter_sink
publishers:
- gnocchi://
[root@controller ceilometer]#
ceilometer-upgrade之前你还需要配置了endpoint
openstack service create --name ceilometer --description "Telemetry" metering
openstack endpoint create --region RegionOne metering public http://controller:8777
openstack endpoint create --region RegionOne metering internal http://controller:8777
openstack endpoint create --region RegionOne metering admin http://controller:8777