跳转至

Openstack

OpenStack 是一个美国国家航空航天局和 Rackspace 合作研发的云端运算软件,以 Apache 许可证授权,并且是一个自由软件和开放源代码项目。

OpenStack 是 IaaS 软件,让任何人都可以自行建立和提供云端运算服务。此外,OpenStack 也用作建立防火墙内的私有云,提供机构或企业内各部门共享资源。


配置 Openstack 监控

登录认证服务器创建角色和用户

使用 Cloud Insight 监控 Openstak 前,需要在 Openstack 为 Cloud Insight Agent 创建单独的角色,确保 Keystone 模块可以让 Agent 访问指标数据。

使用以下指令为 Cloud Insight 创建角色。

openstack role create Cloud Insight_monitoring
openstack user create Cloud Insight --password my_password --project my_project_name
openstack role add Cloud Insight_monitoring --project my_project_name --user Cloud Insight

由以上指令可知,您创建了 Cloud Insight_monitoring 的角色。

注:您可以根据实际情况,来修改 `my_password` 和 `my_project_name`。但请注意在之后的指令,请将相应的字段修改过来。

更新 policy.json 文件来获得必要的权限

需要编辑 Openstack 3 个模块 Nova, Neutron, Keystone 来让 role:Cloud Insight_monitoring 获取相应权限。

一般来说,Nova 的权限文件会在 /etc/nova/policy.json 路径下。打开并新增如下权限。

Nova

    - "compute_extension:aggregates",
    - "compute_extension:hypervisors",
    - "compute_extension:server_diagnostics",
    - "compute_extension:v3:os-hypervisors",
    - "compute_extension:v3:os-server-diagnostics",
    - "compute_extension:availability_zone:detail",
    - "compute_extension:v3:availability_zone:detail",
    - "compute_extension:used_limits_for_admin",
    - "os_compute_api:os-aggregates:index",
    - "os_compute_api:os-aggregates:show",
    - "os_compute_api:os-hypervisors",
    - "os_compute_api:os-hypervisors:discoverable",
    - "os_compute_api:os-server-diagnostics",
    - "os_compute_api:os-used-limits"

一条完整的权限配置方法,是需要在权限后跟上角色信息。如:

    - "compute_extension:aggregates" : "role:Cloud Insight_monitoring"

注:请根据以上列举的权限和方法,逐个添加权限。若您修改过角色名称 `role:Cloud Insight_monitoring`,请修改角色名称为您自定义的名称。

Neutron

Neutron 同理可以使用以上的方法,添加如下权限。而权限配置文件一般在 /etc/neutron/policy.json

    - "get_network"

Keystone

Keystone 同理可以使用以上的方法,添加如下权限。而权限配置文件一般在 /etc/keystone/policy.json

    - "identity:get_project"
    - "identity:list_projects"

保存所有的 policy.json 文件后,需要重启 Keystone, Neutron 和 Nova API 来应用新的权限配置。

配置 Cloud Insight Agent 连接到 Keystone

接下来,需要前往 Cloud Insight Agent 的平台服务配置文件中,新增 Openstack 相关配置。

不熟悉的如何配置情况下,请查看 开始使用 Cloud Insight

切换路径至 /etc/CiAgent

cd /etc/CiAgent

开启配置文件 conf.d/openstack.yaml

cp conf.d/openstack.yaml.example conf.d/openstack.yaml

修改 keystone_server_url 配置项。通常来说,默认的端口号为 5000

init_config:
  keystone_server_url: "https://my-keystone-server.com:port/"

除此之外,您还需要前往 <yourHorizonserver>/identity 查询您的 Project ID 来修改配置项 id。以下是示例:

instances:
    - name: instance_1 # A required unique identifier for this instance

      # The authorization scope that will be used to request a token from Identity API v3
      # The auth scope must resolve to 1 of the following structures:
      # {'project': {'name': 'my_project', 'domain': 'my_domain} OR {'project': {'id': 'my_project_id'}}
      auth_scope:
          project:
              id: b9d363ac9a5b4cceae228e03639357ae

前往配置项的 # User credentials 部分,修改角色的账户和密码:

      # User credentials
      # Password authentication is the only auth method supported right now
      # User expects username, password, and user domain id

      # `user` should resolve to a structure like {'password': 'my_password', 'name': 'my_name', 'domain$
      user:
          password: my_password
          name: Cloud Insight
          domain:
              id: default

注:若您在第一步修改过角色的默认账户 `cloud insight` 和密码 `my_password`,请在此处改为对应的。

配置 RabbitMQ 服务

有关 RabbitMQ 的监控配置可以查阅文档:平台服务示例 • RabbitMQ

想要快速开启 RabbitMQ,可以使用以下指令安装 RabbitMQ 监控插件:

rabbitmq-plugins enable rabbitmq_management

重启 Rabbit 使插件生效。安装成功后,插件为您创建 URL: http://localhost:15672/api/ 来展示指标数据,而 Cloud Insight 也是通过该地址采集指标数据。

service rabbitmq-server restart

etc/conf.d/rabbitmq.yaml 中添加该地址:

instances:
    -  rabbitmq_api_url: http://localhost:15672/api/
       rabbitmq_user: guest # defaults to 'guest'
       rabbitmq_pass: guest # defaults to 'guest'

注:若您的 RabbitMQ 已经自定义 API URL 或者用户名和密码,请修改相应配置项。

重启 Agent

重启 Cloud Insight Agent,使配置生效 。

/etc/init.d/CiAgent restart

您也可以通过查看 Agent Info 信息,来验证配置是否成功 。

/etc/init.d/CiAgent info

当出现以下信息,则代表安装成功 。

Checks
======

 [...]

openstack
------
  - instance #0  [OK]
  - Collected 8 metrics & 0 events

性能指标

Cloud Insight 采集 Openstack 以下性能指标:

指标 单位 具体含义
openstack.nova.current_workload Hypervisor 当前运行的任务数量
openstack.nova.disk_available_least gibibytes Hypervisor 剩余可用磁盘空间,默认单位 GB
openstack.nova.free_disk_gb gibibytes Hypervisor 当前可用的磁盘空间,默认单位 GB
openstack.nova.free_ram_mb mebibytes Hypervisor 当前可用的 RAM 大小,默认单位 MB
openstack.nova.hypervisor_load.1 Hypervisor 在过去 1 分钟内的平均负载
openstack.nova.hypervisor_load.15 Hypervisor 在过去 15 分钟内的平均负载
openstack.nova.hypervisor_load.5 Hypervisor 在过去 5 分钟内的平均负载
openstack.nova.limits.max_image_meta 分配给租户的最大 image metadata 定义数
openstack.nova.limits.max_personality 分配给租户的最大 personality 数量
openstack.nova.limits.max_personality_size 分配给租户的最大单个 personality 大小
openstack.nova.limits.max_security_group_rules 分配给租户的最大安全组规则数量
openstack.nova.limits.max_security_groups 分配给租户的最大安全组数量
openstack.nova.limits.max_server_meta 分配给租户的最大 server metadata 定义数
openstack.nova.limits.max_total_cores 分配给租户的最大 core 数量
openstack.nova.limits.max_total_floating_ips 分配给租户的最大浮动 IP 数量
openstack.nova.limits.max_total_instances 分配给租户的最大 instance 数量
openstack.nova.limits.max_total_keypairs 分配给租户的最大 keypair 数量
openstack.nova.limits.max_total_ram_size gibibytes 分配给租户的最大 RAM 大小
openstack.nova.limits.total_cores_used 租户当前使用的 core 数量
openstack.nova.limits.total_floating_ips_used 租户当前使用的浮动 IP 数量
openstack.nova.limits.total_instances_used 租户当前使用 instance 数量
openstack.nova.limits.total_ram_used gibibytes 租户当前使用 RAM 大小
openstack.nova.limits.total_security_groups_used 租户当前使用的安全组总数
openstack.nova.local_gb gibibytes Hypervisor 主机当前临时磁盘大小,默认单位 GB
openstack.nova.local_gb_used gibibytes Hypervisor 主机当前磁盘使用量,默认单位 GB
openstack.nova.memory_mb mebibytes Hypervisor 主机当前 RAM 大小,默认单位 MB
openstack.nova.memory_mb_used mebibytes Hypervisor 主机当前 RAM 使用量,默认单位 MB
openstack.nova.running_vms Hypervisor 主机当前运行的虚拟机数量
openstack.nova.server.cpu0_time nanoseconds 虚拟 CPU 的 CPU 时间,默认单位 ns
openstack.nova.server.hdd_errors Sever 访问 HDD 设备时看到的的错误数
openstack.nova.server.hdd_read bytes Sever 从 HDD 设备读取的字节数
openstack.nova.server.hdd_read_req Sever 向 HDD 设备发出的读请求数
openstack.nova.server.hdd_write bytes Sever 写入 HDD 设备的字节数
openstack.nova.server.hdd_write_req Sever 向 HDD 设备发出的写请求数
openstack.nova.server.memory mebibytes 为当前 sever 配置的内存量
openstack.nova.server.memory_actual mebibytes 为当前 sever 配置的内存量
openstack.nova.server.memory_rss mebibytes Sever 进程当前使用的内存量,即与磁盘页面没有关联(例如堆栈和对内存)
openstack.nova.server.vda_errors Sever 访问 VDA 设备时的错误数
openstack.nova.server.vda_read bytes Sever 从 VDA 设备读取的字节数
openstack.nova.server.vda_read_req Sever 向 VDA 设备发出的读请求数
openstack.nova.server.vda_write bytes Sever 写入 VDA 设备的字节数
openstack.nova.server.vda_write_req Sever 向 VDA 设备发出的写请求数
openstack.nova.vcpus Hypervisor 主机的 vCPU 配额
openstack.nova.vcpus_used Hypervisor 主机当前使用的 vCPU 数量

5分钟,开启你的跨云监控之旅 (`⌄´ )


常见问题