You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenStack Pike版本Ceilometer报错及自动扩缩容指标获取问题求助

针对OpenStack Pike环境下Ceilometer/Aodh告警与Gnocchi指标问题的解决方法

让我结合你使用的OpenStack Pike、Ceilometer 2.9.0和Keystone v3环境,一步步拆解和解决这些问题——本质上这些问题都是Pike版本中Ceilometer向Gnocchi迁移计量存储后的配置、权限及服务适配问题。

先理清三个命令的差异原因

  • ceilometer meter-list返回404:Pike版本已经完成了Ceilometer计量数据向Gnocchi的迁移,旧的Ceilometer v2 API默认已被禁用,直接调用旧命令找不到对应的端点是正常现象。
  • gnocchi metric list返回401:这是权限认证问题,要么你的用户没有Gnocchi的操作权限,要么环境变量里的Keystone v3认证参数(比如域、项目信息)没配置正确,导致Gnocchi客户端无法通过Keystone校验。
  • openstack metric list正常:OpenStack CLI已经原生适配了Gnocchi的API,且你的认证上下文(环境变量或clouds.yaml)配置正确,能通过Keystone v3拿到合法的访问权限。

核心问题:自动扩缩容YAML中OS:Ceilometer::Alarm无法获取指标的解决

Pike版本中,Ceilometer的告警服务已经独立为Aodh,且告警必须基于Gnocchi的指标创建,旧的OS:Ceilometer::Alarm类型已经过时,需要调整配置并适配新的告警类型:

1. 确保Ceilometer和Aodh正确指向Gnocchi后端

编辑配置文件并重启相关服务:

  • Ceilometer配置(/etc/ceilometer/ceilometer.conf):
    [dispatcher_gnocchi]
    dispatcher_gnocchi = True
    url = http://<gnocchi-host>:8041
    auth_url = http://<keystone-host>:5000/v3
    project_name = service
    username = ceilometer
    password = <你的ceilometer服务密码>
    user_domain_name = Default
    project_domain_name = Default
    
  • Aodh配置(/etc/aodh/aodh.conf):
    [service_credentials]
    auth_url = http://<keystone-host>:5000/v3
    project_name = service
    username = aodh
    password = <你的aodh服务密码>
    user_domain_name = Default
    project_domain_name = Default
    
    [gnocchi]
    url = http://<gnocchi-host>:8041
    
  • 重启服务:
    systemctl restart ceilometer-agent-central ceilometer-agent-notification aodh-api aodh-evaluator aodh-notifier aodh-listener
    

2. 替换自动扩缩容YAML中的告警类型

把过时的OS:Ceilometer::Alarm替换为Aodh针对Gnocchi的告警类型,以下是两种常见场景的示例:

场景1:基于单个Gnocchi指标的告警

resources:
  cpu_scale_alarm:
    type: OS:Aodh::Alarm::Gnocchi::AggregationByMetrics
    properties:
      metric:
        metric_name: cpu_util
        resource_id: <你的实例ID>
      aggregation_method: mean
      granularity: 60
      evaluation_periods: 3
      threshold: 80
      alarm_actions: ['http://<你的自动扩缩容服务地址>/scale-up']
      ok_actions: ['http://<你的自动扩缩容服务地址>/scale-down']
      auth_url: http://<keystone-host>:5000/v3
      project_id: <你的项目ID>
      domain_id: default

场景2:基于一组资源的聚合指标告警(比如同一个栈下的所有实例)

resources:
  stack_cpu_scale_alarm:
    type: OS:Aodh::Alarm::Gnocchi::AggregationByResources
    properties:
      resource_type: instance
      query: {'=': {'metadata.stack': '<你的栈名称>'}}
      metric: cpu_util
      aggregation_method: mean
      granularity: 60
      evaluation_periods: 3
      threshold: 80
      alarm_actions: ['http://<你的自动扩缩容服务地址>/scale-up']
      ok_actions: ['http://<你的自动扩缩容服务地址>/scale-down']

3. 辅助解决gnocchi metric list的401问题(用于排查验证)

  • 配置正确的Keystone v3环境变量:
    export OS_AUTH_URL=http://<keystone-host>:5000/v3
    export OS_PROJECT_NAME=<你的项目名>
    export OS_USERNAME=<你的用户名>
    export OS_PASSWORD=<你的密码>
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_IDENTITY_API_VERSION=3
    
  • 给用户添加Gnocchi的访问角色:
    openstack role add --user <你的用户名> --project <你的项目名> metric_reader
    

临时规避方案(不推荐长期使用)

如果暂时无法修改告警类型,可尝试重新启用Ceilometer v2 API并保留旧存储后端,但这不符合Pike版本的演进方向,后续会被彻底淘汰:

  1. 在Ceilometer配置中启用dispatcher_file或配置MongoDB作为后端
  2. 确保Ceilometer的v2 API服务(ceilometer-api)处于运行状态
  3. 在告警配置中明确指定使用Ceilometer v2 API的端点

内容的提问来源于stack exchange,提问作者scorp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:51:18