更新时间:2022-05-12 GMT+08:00
分享

安装配置并验证Ceilometer

先决环境配置

在控制节点执行以下操作。

  1. 使用admin用户登录OpenStack 命令行。

    1
    source /etc/keystone/admin-openrc
    

  2. 创建服务凭据。

    1. 创建ceilometer用户,并为该用户设置密码。
      1
      openstack user create --domain default --password-prompt ceilometer
      
    2. 将admin角色添加到ceilometer用户。
      1
      openstack role add --project service --user ceilometer admin
      

  3. 在Keystone注册Gnocchi服务。

    1. 创建gnocchi用户,并设置密码。
      1
      openstack user create --domain default --password-prompt gnocchi
      
    2. 创建gnocchi服务实体。
      1
      openstack service create --name gnocchi --description "Metric Service" metric
      
    3. 将admin角色添加到gnocchi用户。
      1
      openstack role add --project service --user gnocchi admin
      

  4. 创建度量服务API端点。

    1
    2
    3
    openstack endpoint create --region RegionOne metric public http://controller:8041
    openstack endpoint create --region RegionOne metric internal http://controller:8041
    openstack endpoint create --region RegionOne metric admin http://controller:8041
    

安装配置Gnocchi

在控制节点执行以下操作。

  1. 安装Gnocchi包。

    1
    yum -y install openstack-gnocchi-api openstack-gnocchi-metricd python-gnocchiclient
    

  2. 为Gnocchi服务创建数据库。

    本文中将涉及的密码均设置为“<PASSWORD>”,请用户根据环境实际情况进行修改。

    1
    2
    3
    4
    5
    mysql -u root -p
    CREATE DATABASE gnocchi;
    GRANT ALL PRIVILEGES ON gnocchi.* TO 'gnocchi'@'localhost' IDENTIFIED BY '<PASSWORD>';
    GRANT ALL PRIVILEGES ON gnocchi.* TO 'gnocchi'@'%' IDENTIFIED BY '<PASSWORD>';
    exit
    

  3. 编辑配置文件/etc/gnocchi/gnocchi.conf。

    1
    vim /etc/gnocchi/gnocchi.conf
    
    并且修改以下配置:
    1. 配置Gnocchi功能参数,log地址以及对接redis url端口。
      1
      2
      3
      4
      5
      6
      [DEFAULT]
      debug = true
      verbose = true
      log_dir = /var/log/gnocchi
      parallel_operations = 4
      coordination_url = redis://controller:6379
      
    1. 配置Gnocchi工作端口信息,host为控制节点管理IP
      1
      2
      3
      4
      5
      6
      [api]
      auth_mode = keystone
      host = 172.168.201.11
      port = 8041
      uwsgi_mode = http-socket
      max_limit = 1000
      
    1. 配置元数据默认存储方式。
      1
      2
      [archive_policy]
      default_aggregation_methods = mean,min,max,sum,std,count
      
    1. 配置允许的访问来源。
      1
      2
      [cors]
      allowed_origin = http://controller:3000
      
    1. 配置数据库检索。
      1
      2
      [indexer]
      url = mysql+pymysql://gnocchi:<PASSWORD>@controller/gnocchi
      
    1. 配置ceilometer测试指标。
      1
      2
      3
      4
      5
      6
      [metricd]
      workers = 4
      metric_processing_delay = 60
      greedy = true
      metric_reporting_delay = 120
      metric_cleanup_delay = 300
      
    2. 配置Gnocchi存储方式以及位置,在这种配置下将其存储到本地文件系统。
      1
      2
      3
      4
      [storage]
      coordination_url = redis://controller:6379
      file_basepath = /var/lib/gnocchi
      driver = file
      
    3. 配置Keystone认证信息,该模块需要另外添加。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      [keystone_authtoken]
      region_name = RegionOne
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000/v3
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = gnocchi
      password = <PASSWORD>
      service_token_roles_required = true
      

安装配置redis

在控制节点执行以下操作。

  1. 安装redis server。

    1
    yum -y install redis
    

  2. 编辑配置文件“/etc/redis.conf”,修改以下配置:

    1
    vim etc/redis.conf
    
    1. 配置redis可以在后台启动。
      1
      daemonize yes
      
    2. 配置redis关闭安全模式。
      1
      protected-mode no
      
    3. 配置redis绑定控制节点主机。
      1
      bind 172.168.201.11
      

  3. 以配置好的redis.conf启动redis server service。

    1
    redis-server /etc/redis.conf
    

    redis服务不会开机自启动,可以将上述命令放入开机启动项里,否则每次开机都需要手动启动,方法如下:

    1. 编辑配置文件“/etc/rc.d/rc.local”。
      1
      vim /etc/rc.d/rc.local
      
      并新增以下内容:
      1
      redis-server /etc/redis.conf
      
    2. 保存退出后,赋予“/etc/rc.d/rc.local”文件执行权限。
      1
      chmod +x /etc/rc.d/rc.local
      

安装uWSGI插件

在控制节点执行以下操作。

安装uWSGI插件。

1
yum -y install uwsgi-plugin-common uwsgi-plugin-python uwsgi

完成Gnocchi的安装

在控制节点执行以下操作。

  1. 初始化Gnocchi。

    1
    gnocchi-upgrade
    

  2. 赋予“/var/lib/gnocchi”文件可读写权限。

    1
    chmod -R 777 /var/lib/gnocchi
    

  3. 完成Gnocchi的安装。

    1. 启动Gnocchi服务并将其配置为在系统引导时启动。
      1
      2
      systemctl enable openstack-gnocchi-api.service openstack-gnocchi-metricd.service
      systemctl start openstack-gnocchi-api.service openstack-gnocchi-metricd.service
      
    2. 查看Gnocchi服务状态。
      1
      systemctl status openstack-gnocchi-api.service openstack-gnocchi-metricd.service
      

安装和配置Ceilometer(控制节点)

在控制节点执行以下操作。

  1. 安装Ceilometer包。

    1
    yum -y install openstack-ceilometer-notification openstack-ceilometer-central
    

  2. 编辑配置文件“/etc/ceilometer/pipeline.yaml”并完成以下部分:

    配置Gnocchi连接。

    1
    2
    publishers:
       - gnocchi://?filter_project=service&archive_policy=low
    

  3. 编辑配置文件“/etc/ceilometer/ceilometer.conf”并完成以下操作:

    1. 配置身份认证方式以及消息列队访问。
      1
      2
      3
      4
      5
      [DEFAULT]
      debug = true
      auth_strategy = keystone
      transport_url = rabbit://openstack:<PASSWORD>@controller
      pipeline_cfg_file = pipeline.yaml
      
    1. 配置日志消息窗口。
      1
      2
      3
      [notification]
      store_events = true
      messaging_urls = rabbit://openstack:<PASSWORD>@controller
      
    1. 定义轮询配置文件。
      1
      2
      [polling]
      cfg_file = polling.yaml
      
    1. 配置服务凭据。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      [service_credentials]
      auth_type = password
      auth_url = http://controller:5000/v3
      project_domain_id = default
      user_domain_id = default
      project_name = service
      username = ceilometer
      password = <PASSWORD>
      interface = internalURL
      region_name = RegionOne
      

  4. 在Gnocchi创建Ceilometer资源。

    1
    ceilometer-upgrade
    

    Gnocchi必须在这个阶段状态为运行。

  5. 完成Ceilometer安装。

    1
    2
    3
    4
    systemctl enable openstack-ceilometer-notification.service \
    openstack-ceilometer-central.service
    systemctl start openstack-ceilometer-notification.service \
    openstack-ceilometer-central.service
    

  6. 查看Ceilometer服务状态。

    1
    2
    systemctl status openstack-ceilometer-notification.service \
    openstack-ceilometer-central.service
    

安装和配置Ceilometer(计算节点)

在计算节点执行以下操作。

  1. 安装软件,其中openstack-ceilometer-ipmi为可选安装项。

    1
    2
    yum -y install openstack-ceilometer-compute
    yum -y install openstack-ceilometer-ipmi
    

  2. 编辑配置文件“/etc/ceilometer/ceilometer.conf”并完成以下操作。

    1. 配置消息列队访问。
      1
      2
      [DEFAULT]
      transport_url = rabbit://openstack:<PASSWORD>@controller
      
    1. 配置度量服务凭据。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      [service_credentials]
      auth_type = password
      auth_url = http://controller:5000/v3
      project_domain_id = default
      user_domain_id = default
      project_name = service
      username = ceilometer
      password = <PASSWORD>
      interface = internalURL
      region_name = RegionOne
      

配置nova

在计算节点执行以下操作。

  1. 编辑“/etc/nova/nova.conf”文件并在以下[DEFAULT]部分配置消息通知:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [DEFAULT]
    instance_usage_audit = True
    instance_usage_audit_period = hour
    
    [notifications]
    notify_on_state_change = vm_and_task_state
    
    [oslo_messaging_notifications]
    driver = messagingv2
    

配置轮询ipmi

在计算节点执行以下操作。

  1. 编辑“/etc/sudoers”文件使其包含以下内容:

    1
    ceilometer ALL = (root) NOPASSWD: /usr/bin/ceilometer-rootwrap /etc/ceilometer/rootwrap.conf *
    

    “/etc/sudoers”文件属性为只读,需要执行:wq!强制保存退出。

  2. 编辑“/etc/ceilometer/polling.yaml”,添加以下度量项目(注意格式对齐):

    1
    2
    3
    4
    - name: ipmi
    interval: 300
    meters:
    - hardware.ipmi.temperature
    

完成安装

在计算节点执行以下操作。

  1. 启动代理并将其配置为在系统引导时启动。

    1
    2
    3
    4
    systemctl enable openstack-ceilometer-compute.service
    systemctl start openstack-ceilometer-compute.service
    systemctl enable openstack-ceilometer-ipmi.service (optional)
    systemctl start openstack-ceilometer-ipmi.service (optional)
    

  2. 重新启动Compute服务。

    1
    systemctl restart openstack-nova-compute.service
    

源码修改

在控制节点执行以下操作。

  1. OpenStack源码脚本有一处报错,在使用Ceilometer之前需要进行修改。

    1
    vim /usr/lib/python2.7/site-packages/gnocchiclient/shell.py
    

    将130行内容修改为:

    os.environ["OS_AUTH_TYPE"] = "password"

    修改前:

    修改后:

验证操作

在控制节点执行以下操作。

请确保前面所有内容安装配置无误后再进行以下验证操作。

  1. 列出所有计量resource资源。

    1
    gnocchi resource list
    

  2. 列出所有可计量的metric计量类型。

    1
    gnocchi metric list
    

  3. 验证Ceilometer对虚拟机中硬件资源的监控。

    1
    gnocchi measures show ID
    

分享:

    相关文档

    相关产品

close