Openstack配置手册-配置Ceilometer

snow chuai汇总、整理、撰写---2020/2/7


1. 拓扑
     ------------+---------------------------+---------------------------+------------
                 |                           |                           |
             eth0|192.168.10.11          eth0|192.168.10.12          eth0|192.168.10.13
     +-----------+-----------+   +-----------+-----------+   +-----------+-----------+
     |    [ Control Node ]   |   |    [ Compute Node ]   |   |   [ Network Node ]    |
     |   [node1.1000cc.net]  |   |   [node2.1000cc.net]  |   |  [node3.1000cc.net]   |
     |  MariaDB    RabbitMQ  |   |         ibvirt        |   |      Open-vSwitch     |
     |  Memcached  httpd     |   |       Nova_Compute    |   |        L2_Agent       |
     |  Keystone   Glance    |   |       Open-vSwitch    |   |        L3_Agent       |
     |  Nova_API  Cinder_API |   |        L2_Agent       |   |      Metadata_Agent   |
     |  Neutron_Server       |   |   Ceilometer_Compute  |   |      Cinder-Volume    |
     |  Metadata_Agent       |   |                       |   |        Heat_API       |
     |       Gnocchi         |   |                       |   |       Heat_Engine     |
     |  Ceilometer_Central   |   |                       |   |                       |
     |    Aodh_Evaluator     |   |                       |   |                       |
     +-----------------------+   +-----------------------+   +-----------------------+
2. 实现Gnocchi
2.1 将Gnocchi信息注册到Keystone中
[root@node1 ~(keystone)]# openstack user create --domain default --project service --password servicepassword gnocchi
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | 1be75e85ec9445ab9ff7dd7ec2f02b71 |
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 21f1bc3dbb0d4d2fad83e4b960c322ce |
| name                | gnocchi                          |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@node1 ~(keystone)]# openstack role add --project service --user gnocchi admin
[root@node1 ~(keystone)]# openstack service create --name gnocchi --description "Metric Service" metric +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Metric Service | | enabled | True | | id | 9061594a75724b7387f912cca661860b | | name | gnocchi | | type | metric | +-------------+----------------------------------+
[root@node1 ~(keystone)]# openstack endpoint create --region RegionOne metric public http://192.168.10.11:8041 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | a2ea60105c204bd299ebf7b92c771398 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 9061594a75724b7387f912cca661860b | | service_name | gnocchi | | service_type | metric | | url | http://192.168.10.11:8041 | +--------------+----------------------------------+
[root@node1 ~(keystone)]# openstack endpoint create --region RegionOne metric internal http://192.168.10.11:8041 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | d99642a72d1f430aaf4f878da6c0fb00 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 9061594a75724b7387f912cca661860b | | service_name | gnocchi | | service_type | metric | | url | http://192.168.10.11:8041 | +--------------+----------------------------------+
[root@node1 ~(keystone)]# openstack endpoint create --region RegionOne metric admin http://192.168.10.11:8041 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 3f6531de141f4ad1a53e0e44f361e355 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 9061594a75724b7387f912cca661860b | | service_name | gnocchi | | service_type | metric | | url | http://192.168.10.11:8041 | +--------------+----------------------------------+
2.2 配置Gnocchi数据库
[root@node1 ~(keystone)]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 106
Server version: 10.1.20-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database gnocchi; Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on gnocchi.* to gnocchi@'localhost' identified by 'password'; Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on gnocchi.* to gnocchi@'%' identified by 'password'; Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit Bye
2.3 安装及配置Gnocchi数据库
1) 安装Gnocchi
[root@node1 ~(keystone)]# yum --enablerepo=centos-openstack-queens,epel install openstack-gnocchi-api openstack-gnocchi-metricd python2-gnocchiclient -y
2) 配置Gnocchi [root@node1 ~(keystone)]# mv /etc/gnocchi/gnocchi.conf /etc/gnocchi/gnocchi.conf.bak [root@node1 ~(keystone)]# vim /etc/gnocchi/gnocchi.conf [DEFAULT] log_dir = /var/log/gnocchi
[api] auth_mode = keystone
[database] backend = sqlalchemy
[indexer] url = mysql+pymysql://gnocchi:password@192.168.10.11/gnocchi
[storage] driver = file file_basepath = /var/lib/gnocchi
[keystone_authtoken] www_authenticate_uri = http://192.168.10.11:5000 auth_url = http://192.168.10.11:5000 memcached_servers = 192.168.10.11:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = gnocchi password = servicepassword service_token_roles_required = true

[root@node1 ~(keystone)]# vim /etc/httpd/conf.d/10-gnocchi_wsgi.conf Listen 8041 <VirtualHost *:8041> DocumentRoot /var/www/cgi-bin/gnocchi
<Directory /var/www/cgi-bin/gnocchi> AllowOverride None Require all granted </Directory>
CustomLog /var/log/httpd/gnocchi_wsgi_access.log combined ErrorLog /var/log/httpd/gnocchi_wsgi_error.log SetEnvIf X-Forwarded-Proto https HTTPS=1 WSGIApplicationGroup %{GLOBAL} WSGIDaemonProcess gnocchi display-name=gnocchi_wsgi user=gnocchi group=gnocchi processes=6 threads=6 WSGIProcessGroup gnocchi WSGIScriptAlias / /var/www/cgi-bin/gnocchi/app </VirtualHost>

[root@node1 ~(keystone)]# chmod 640 /etc/gnocchi/gnocchi.conf [root@node1 ~(keystone)]# chgrp gnocchi /etc/gnocchi/gnocchi.conf [root@node1 ~(keystone)]# mkdir /var/www/cgi-bin/gnocchi [root@node1 ~(keystone)]# cp /usr/lib/python2.7/site-packages/gnocchi/rest/gnocchi-api /var/www/cgi-bin/gnocchi/app [root@node1 ~(keystone)]# chown -R gnocchi. /var/www/cgi-bin/gnocchi [root@node1 ~(keystone)]# su -s /bin/bash gnocchi -c "gnocchi-upgrade" [root@node1 ~(keystone)]# systemctl enable --now openstack-gnocchi-metricd [root@node1 ~(keystone)]# systemctl restart httpd
3) 验证Gnocchi [root@node1 ~(keystone)]# export OS_AUTH_TYPE=password [root@node1 ~(keystone)]# gnocchi resource list
# 空行无显示,代表没有问题 [root@node1 ~(keystone)]#
4) SELinux及防火墙认证 [root@node1 ~(keystone)]# semanage port -a -t http_port_t -p tcp 8041
[root@node1 ~(keystone)]# firewall-cmd --add-port=8041/tcp --permanent success [root@node1 ~(keystone)]# firewall-cmd --reload success
3. 实现Ceilometer
3.1 将Ceilometer的信息注册到keystone
[root@node1 ~(keystone)]# openstack user create --domain default --project service --password servicepassword ceilometer
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | 1be75e85ec9445ab9ff7dd7ec2f02b71 |
| domain_id           | default                          |
| enabled             | True                             |
| id                  | c42521d207bb4dd885c30f059c1242af |
| name                | ceilometer                       |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@node1 ~(keystone)]# openstack role add --project service --user ceilometer admin
[root@node1 ~(keystone)]# openstack service create --name ceilometer --description "OpenStack Telemetry Service" metering +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Telemetry Service | | enabled | True | | id | 91e07343ea2c4c02b66a0df68490f8b0 | | name | ceilometer | | type | metering | +-------------+----------------------------------+
3.2 在控制节点上安装并配置Ceilometer
1) 安装Ceilometer
[root@node1 ~(keystone)]# yum --enablerepo=centos-openstack-queens,epel install openstack-ceilometer-central openstack-ceilometer-notification python2-ceilometerclient -y
2) 配置Ceilometer [root@node1 ~(keystone)]# mv /etc/ceilometer/ceilometer.conf /etc/ceilometer/ceilometer.conf.bak [root@node1 ~(keystone)]# vim /etc/ceilometer/ceilometer.conf [DEFAULT] transport_url = rabbit://openstack:password@192.168.10.11
[api] auth_mode = keystone
[dispatcher_gnocchi] filter_service_activity = False
# 验证Gnocchi账户 [keystone_authtoken] www_authenticate_uri = http://192.168.10.11:5000 auth_url = http://192.168.10.11:5000 memcached_servers = 192.168.10.11:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = gnocchi password = servicepassword
[service_credentials] auth_url = http://192.168.10.11:5000 memcached_servers = 192.168.10.11:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = ceilometer password = servicepassword

[root@node1 ~(keystone)]# chmod 640 /etc/ceilometer/ceilometer.conf [root@node1 ~(keystone)]# chgrp ceilometer /etc/ceilometer/ceilometer.conf [root@node1 ~(keystone)]# su -s /bin/bash ceilometer -c "ceilometer-upgrade --skip-metering-database" [root@node1 ~(keystone)]# systemctl enable --now openstack-ceilometer-central openstack-ceilometer-notification
3.3 在计算节点上安装并配置Ceilometer
1) 安装Ceilometer
[root@node2 ~]# yum --enablerepo=centos-openstack-queens,epel install openstack-ceilometer-compute -y
2) 配置Ceilometer [root@node2 ~]# mv /etc/ceilometer/ceilometer.conf /etc/ceilometer/ceilometer.conf.bak [root@node2 ~]# vim /etc/ceilometer/ceilometer.conf [DEFAULT] transport_url = rabbit://openstack:password@192.168.10.11
[service_credentials] auth_url = http://192.168.10.11:5000 memcached_servers = 192.168.10.11:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = ceilometer password = servicepassword

[root@node2 ~]# chmod 640 /etc/ceilometer/ceilometer.conf [root@node2 ~]# chgrp ceilometer /etc/ceilometer/ceilometer.conf [root@node2 ~]# systemctl enable --now openstack-ceilometer-compute
4. 使用Celiometer
4.1 监控Nova Compute
1) 编辑nova配置文件
[root@node2 ~]# vim /etc/nova/nova.conf
# 于[DEFAULT]区段最后追加如下内容
[DEFAULT]
......
......
instance_usage_audit = True
instance_usage_audit_period = hour
notify_on_state_change = vm_and_task_state
......
......
# 于文档最后追加如下内容 [oslo_messaging_notifications] driver = messagingv2
[root@node2 ~]# systemctl restart openstack-nova-compute
3) 创建实例 [snow@node1 ~(keystone)]$ Int_Net_ID=$(openstack network list | grep int_net | awk '{ print $2 }') [snow@node1 ~(keystone)]$ openstack server create \ --flavor m1.small \ --image c77 \ --security-group secgroup1 \ --nic net-id=$Int_Net_ID \ --key-name snowkey \ c77-1
[snow@node1 ~(keystone)]$ openstack floating ip create ext_net [snow@node1 ~(keystone)]$ openstack server add floating ip c77-1 192.168.10.221 [snow@node1 ~(keystone)]$ openstack server list +----------------+------+--------+---------------------------------------+-------+----------+ | ID | Name | Status | Networks | Image | Flavor | +----------------+------+--------+---------------------------------------+-------+----------+ | 0b95443b...... | c77-1| ACTIVE | int_net=192.168.188.5, 192.168.10.221 | c77 | m1.small | +----------------+------+--------+---------------------------------------+-------+----------+
3) 显示资源 [snow@node1 ~(keystone)]$ openstack metric resource list +--------------------------------------+----------------------------+---------------------- | id | type | project_id +--------------------------------------+----------------------------+---------------------- |b8405894-c884-4779-ad94-0792227fd963 | instance | 7146...... +--------------------------------------+----------------------------+----------------------- +----------------------------------+-------------------------------------------------------- | user_id | original_resource_id +----------------------------------+--------------------------------------------------------- | 54f3ece13d6147928303ef4112e1f0e9 | b8405894-c884-4779-ad94-0792227fd963 +----------------------------------+----------------------------------------------------------- +----------------------------------+----------+----------------------------------+------------- | started_at | ended_at | revision_start | revision_end +----------------------------------+----------+----------------------------------+-------------- | 2020-02-07T09:59:10.765506+00:00 | None | 2020-02-07T09:59:10.765529+00:00 | None +----------------------------------+----------+----------------------------------+------------- +-------------------------------------------------------------------+ | creator | +-------------------------------------------------------------------+ | c42521d207bb4dd885c30f059c1242af:1be75e85ec9445ab9ff7dd7ec2f02b71 | +-------------------------------------------------------------------+
4) 显示实例的相信信息 [snow@node1 ~(keystone)]$ openstack metric resource show b8405894-c884-4779-ad94-0792227fd963 +-----------------------+---------------------------------------------------------------------+ | Field | Value | +-----------------------+---------------------------------------------------------------------+ | created_by_project_id | 1be75e85ec9445ab9ff7dd7ec2f02b71 | | created_by_user_id | c42521d207bb4dd885c30f059c1242af | | creator | c42521d207bb4dd885c30f059c1242af:1be75e85ec9445ab9ff7dd7ec2f02b71 | | ended_at | None | | id | b8405894-c884-4779-ad94-0792227fd963 | | metrics | compute.instance.booting.time: ac20b071-6d9b-4833-a08b-a59c63bd7c91 | | | cpu.delta: ad1e5ac6-eaf4-490a-8eef-360725fef311 | | | cpu: 9e697dcc-3b3e-47cd-8f8e-87ef766b2f71 | | | cpu_l3_cache: b5b13fa7-0682-4b31-890b-49940bdfda9a | | | cpu_util: 719092b3-efce-4edf-81a9-d159833b0733 | | | disk.allocation: cf991494-c7c2-4c5d-b01b-81f1588d616e | | | disk.capacity: 4a3d3399-1226-4f1a-adcc-f466ce60af06 | | | disk.ephemeral.size: 585afe33-ed02-4812-9e20-2d08df29211b | | | disk.iops: 52a551b0-5e00-4f8a-aa19-4d176d8bf2fb | | | disk.latency: 54a73cc1-39a6-4e5b-bc66-077ada1018e1 | | | disk.read.bytes.rate: 240528fc-812f-4343-87a7-a9ca99ac62ee | | | disk.read.bytes: 599bf51d-0440-4b47-be1c-97ee1538d54c | | | disk.read.requests.rate: b0b253df-2ba1-4cc4-8d84-25adef7168a8 | | | disk.read.requests: 749525f7-9a0c-46b9-9d5a-64be258beafd | | | disk.root.size: 1d392d89-d396-4a2b-8621-35306a7e39b0 | | | disk.usage: 699a7df7-025d-4ec4-adfe-13c60ee05576 | | | disk.write.bytes.rate: 43bd4fff-a605-414b-af76-b730d1c0ed82 | | | disk.write.bytes: 132028d2-875f-47b8-ba1c-18695b3afd56 | | | disk.write.requests.rate: 7f94dba1-4df6-499c-bd07-5f231d2ad5a1 | | | disk.write.requests: 708f3228-2e13-4244-88f5-d4f9bfb964e5 | | | memory.bandwidth.local: adbb4b09-f148-462b-a0c4-7b30811fa571 | | | memory.bandwidth.total: 840ce870-0f03-4529-862d-f9fe476e2eb7 | | | memory.resident: 943cf353-0452-4731-bb47-8067eebe2d64 | | | memory.swap.in: 4870759d-ed68-4f7c-a654-e51f1efa9f21 | | | memory.swap.out: bf84bcf4-657e-4fda-9790-a61ea18a79da | | | memory.usage: 5d8b7cf3-8d10-4659-b971-f545053b7403 | | | memory: 535ea7a9-afbc-4459-b19a-adb537b5a35d | | | perf.cache.misses: fef20e1e-8988-4590-98ca-e1520f974d6c | | | perf.cache.references: 8922c623-58be-4aba-9aa5-668db75e91ea | | | perf.cpu.cycles: 34b1110e-a3e4-4ac8-9ae4-2a4797bd2ab5 | | | perf.instructions: 692658f5-e963-4091-85c2-9899d7196ae2 | | | vcpus: 6fba3e4f-ce2e-44b6-90df-ef1632390b9b | | original_resource_id | b8405894-c884-4779-ad94-0792227fd963 | | project_id | 7146a34d5b744320b2ed45af5b2e761b | | revision_end | None | | revision_start | 2020-02-07T09:59:10.765529+00:00 | | started_at | 2020-02-07T09:59:10.765506+00:00 | | type | instance | | user_id | 54f3ece13d6147928303ef4112e1f0e9 | +-----------------------+---------------------------------------------------------------------+
5) 查看计量信息-举例 (1) 实例的内存总数(资源ID请查openstack metric resource show命令所列出的对应项) [snow@node1 ~(keystone)]$ openstack metric measures show 535ea7a9-afbc-4459-b19a-adb537b5a35d +---------------------------+-------------+--------+ | timestamp | granularity | value | +---------------------------+-------------+--------+ | 2020-02-07T17:55:00+08:00 | 300.0 | 2048.0 | +---------------------------+-------------+--------+
(1) 实例的vcpus的情况(资源ID请查openstack metric resource show命令所列出的对应项) [snow@node1 ~(keystone)]$ openstack metric measures show 6fba3e4f-ce2e-44b6-90df-ef1632390b9b +---------------------------+-------------+-------+ | timestamp | granularity | value | +---------------------------+-------------+-------+ | 2020-02-07T17:55:00+08:00 | 300.0 | 1.0 | +---------------------------+-------------+-------+
4.2 监控Glance
1) 配置Glance
[root@node1 ~(keystone)]# vim /etc/glance/glance-api.conf
# 于文件最后追加如下内容
[oslo_messaging_notifications]
driver = messagingv2
transport_url = rabbit://openstack:password@192.168.10.11
[root@node1 ~(keystone)]# vim /etc/glance/glance-registry.conf # 于文件最后追加如下内容 [oslo_messaging_notifications] driver = messagingv2 transport_url = rabbit://openstack:password@192.168.10.11
[root@node1 ~(keystone)]# systemctl restart openstack-glance-api openstack-glance-registry
2) 显示计量资源 (1) 显示现有资源列表 [root@node1 ~(keystone)]# openstack metric resource list +--------------------------------------+----------------------------+------------------------ | id | type | project_id +--------------------------------------+----------------------------+------------------------ | b8405894-c884-4779-ad94-0792227fd963 | instance | 7146a34d5b744320b2... | 9ae3f804-b1a1-570d-933b-50c05208c178 | instance_disk | 7146a34d5b744320b2... | ae47a10f-7cf1-5080-bfa0-98b2f921ccdd | instance_network_interface | 7146a34d5b744320b2... +--------------------------------------+----------------------------+-----------------------
3) 操作Glance,让其产生数据 (1) 上传镜像到Glance [root@node1 ~(keystone)]# curl -O ftp://192.168.10.10/pub/images/cloud-centos76.img [root@node1 ~(keystone)]# openstack image create "c76" \ --file cloud-centos76.img \ --disk-format qcow2 \ --container-format bare \ --public +------------------+------------------------------------------------------+ | Field | Value | +------------------+------------------------------------------------------+ | checksum | 79a33a4f2b141928dfbb2f469d6aacb2 | | container_format | bare | | created_at | 2020-02-07T10:41:25Z | | disk_format | qcow2 | | file | /v2/images/030b0860-a29e-4f35-b6b8-9b27c3b6c859/file | | id | 030b0860-a29e-4f35-b6b8-9b27c3b6c859 | | min_disk | 0 | | min_ram | 0 | | name | c76 | | owner | 6f83afcc475b440bb9816ea20ba26c5f | | protected | False | | schema | /v2/schemas/image | | size | 1475739648 | | status | active | | tags | | | updated_at | 2020-02-07T10:41:50Z | | virtual_size | None | | visibility | public | +------------------+------------------------------------------------------+
[root@node1 ~(keystone)]# openstack image list +--------------------------------------+------+--------+ | ID | Name | Status | +--------------------------------------+------+--------+ | 030b0860-a29e-4f35-b6b8-9b27c3b6c859 | c76 | active | | d2cf4454-09a0-43fa-83b4-aaa9df0f5919 | c77 | active | +--------------------------------------+------+--------+
(2) 从Glance服务下载镜像 [root@node1 ~(keystone)]# rm -rf cloud-centos76.img [root@node1 ~(keystone)]# openstack image save --file c76.qcow2 c76 [root@node1 ~(keystone)]# ll c76.qcow2 -rw-r--r-- 1 root root 1475739648 Feb 7 18:44 c76.qcow2
(3) 刷新资源列表 [root@node1 ~(keystone)]# openstack metric resource list +--------------------------------------+----------------------------+------------------------ | id | type | project_id +--------------------------------------+----------------------------+------------------------ | b8405894-c884-4779-ad94-0792227fd963 | instance | 7146a34d5b744320b2... | 9ae3f804-b1a1-570d-933b-50c05208c178 | instance_disk | 7146a34d5b744320b2... | ae47a10f-7cf1-5080-bfa0-98b2f921ccdd | instance_network_interface | 7146a34d5b744320b2... | 030b0860-a29e-4f35-b6b8-9b27c3b6c859 | image | 6f83afcc475b440bb9... +--------------------------------------+----------------------------+-----------------------
4) 查看资源信息及计量信息 (1) 查看image资源 [root@node1 ~(keystone)]# openstack metric resource show 030b0860-a29e-4f35-b6b8-9b27c3b6c859 +-----------------------+-------------------------------------------------------------------+ | Field | Value | +-----------------------+-------------------------------------------------------------------+ | created_by_project_id | 1be75e85ec9445ab9ff7dd7ec2f02b71 | | created_by_user_id | c42521d207bb4dd885c30f059c1242af | | creator | c42521d207bb4dd885c30f059c1242af:1be75e85ec9445ab9ff7dd7ec2f02b71 | | ended_at | None | | id | 030b0860-a29e-4f35-b6b8-9b27c3b6c859 | | metrics | image.download: 6f141bba-62d0-437c-9718-575f7f4edb70 | | | image.serve: 01d3ce88-9de4-4d7e-91c2-5edf1ae79881 | | | image.size: 1f633556-7977-49d6-9884-e943913f4c08 | | original_resource_id | 030b0860-a29e-4f35-b6b8-9b27c3b6c859 | | project_id | 6f83afcc475b440bb9816ea20ba26c5f | | revision_end | None | | revision_start | 2020-02-07T10:41:51.857631+00:00 | | started_at | 2020-02-07T10:41:51.857613+00:00 | | type | image | | user_id | None | +-----------------------+-------------------------------------------------------------------+
(2) 显示下载镜像的信息 [root@node1 ~(keystone)]# openstack metric measures show 6f141bba-62d0-437c-9718-575f7f4edb70 +---------------------------+-------------+--------------+ | timestamp | granularity | value | +---------------------------+-------------+--------------+ | 2020-02-07T18:40:00+08:00 | 300.0 | 1475739648.0 | +---------------------------+-------------+--------------+
(2) 显示镜像的大小 [root@node1 ~(keystone)]# openstack metric measures show 1f633556-7977-49d6-9884-e943913f4c08 +---------------------------+-------------+--------------+ | timestamp | granularity | value | +---------------------------+-------------+--------------+ | 2020-02-07T18:40:00+08:00 | 300.0 | 1475739648.0 | +---------------------------+-------------+--------------+
4.3 监控Cinder
1) 配置cinder
(1) 配置控制节点的cinder
[root@node1 ~(keystone)]# vim /etc/cinder/cinder.conf
# 于文件最底部追加如下内容
[oslo_messaging_notifications]
driver = messagingv2
transport_url = rabbit://openstack:password@192.168.10.11
[root@node1 ~(keystone)]# systemctl restart openstack-cinder-api openstack-cinder-scheduler
(2) 配置存储节点的cinder [root@node3 ~]# vim /etc/cinder/cinder.conf # 于文件最底部追加如下内容 [oslo_messaging_notifications] driver = messagingv2 transport_url = rabbit://openstack:password@192.168.10.11
[root@node3 ~]# systemctl restart openstack-cinder-volume
2) 查看现有资源信息 [snow@node1 ~(keystone)]# openstack metric resource list +--------------------------------------+----------------------------+------------------------ | id | type | project_id +--------------------------------------+----------------------------+------------------------ | b8405894-c884-4779-ad94-0792227fd963 | instance | 7146a34d5b744320b2... | 9ae3f804-b1a1-570d-933b-50c05208c178 | instance_disk | 7146a34d5b744320b2... | ae47a10f-7cf1-5080-bfa0-98b2f921ccdd | instance_network_interface | 7146a34d5b744320b2... | 030b0860-a29e-4f35-b6b8-9b27c3b6c859 | image | 6f83afcc475b440bb9... +--------------------------------------+----------------------------+-----------------------
3) 创建磁盘进行测试 [snow@node1 ~(keystone)]$ openstack volume create --size 1 disk1 [snow@node1 ~(keystone)]$ openstack volume list +--------------------------------------+-------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-------+-----------+------+-------------+ | 2708c0bd-d3e3-4543-acbf-dac5607eac28 | disk1 | available | 1 | | +--------------------------------------+-------+-----------+------+-------------+
[snow@node1 ~(keystone)]# openstack metric resource list +--------------------------------------+----------------------------+------------------------ | id | type | project_id +--------------------------------------+----------------------------+------------------------ | b8405894-c884-4779-ad94-0792227fd963 | instance | 7146a34d5b744320b2... | 9ae3f804-b1a1-570d-933b-50c05208c178 | instance_disk | 7146a34d5b744320b2... | ae47a10f-7cf1-5080-bfa0-98b2f921ccdd | instance_network_interface | 7146a34d5b744320b2... | 030b0860-a29e-4f35-b6b8-9b27c3b6c859 | image | 6f83afcc475b440bb9... | 2708c0bd-d3e3-4543-acbf-dac5607eac28 | volume | 7146a34d5b744320b2... +--------------------------------------+----------------------------+-----------------------
4) 查看计量资源 [snow@node1 ~(keystone)]$ openstack metric resource show 2708c0bd-d3e3-4543-acbf-dac5607eac28 +-----------------------+-------------------------------------------------------------------+ | Field | Value | +-----------------------+-------------------------------------------------------------------+ | created_by_project_id | 1be75e85ec9445ab9ff7dd7ec2f02b71 | | created_by_user_id | c42521d207bb4dd885c30f059c1242af | | creator | c42521d207bb4dd885c30f059c1242af:1be75e85ec9445ab9ff7dd7ec2f02b71 | | ended_at | None | | id | 2708c0bd-d3e3-4543-acbf-dac5607eac28 | | metrics | snapshot.size: 2455005d-189d-4382-8d36-298c6e83c9cc | | | volume.backup.size: 56666f11-e546-40ec-904e-214cd0296e62 | | | volume.size: 1ab72123-f579-44f4-88d9-cf781c60973e | | | volume.snapshot.size: 82f22c99-5fa2-4f93-be6c-be3c9a4392c0 | | | volume: 27a6e286-24e2-47b2-8ee5-75b96d1f9a20 | | original_resource_id | 2708c0bd-d3e3-4543-acbf-dac5607eac28 | | project_id | 7146a34d5b744320b2ed45af5b2e761b | | revision_end | None | | revision_start | 2020-02-07T11:17:23.324105+00:00 | | started_at | 2020-02-07T11:17:23.324083+00:00 | | type | volume | | user_id | 54f3ece13d6147928303ef4112e1f0e9 | +-----------------------+-------------------------------------------------------------------+
# 显示卷大小 [snow@node1 ~(keystone)]$ openstack metric measures show 1ab72123-f579-44f4-88d9-cf781c60973e +---------------------------+-------------+-------+ | timestamp | granularity | value | +---------------------------+-------------+-------+ | 2020-02-07T19:15:00+08:00 | 300.0 | 1.0 | +---------------------------+-------------+-------+
5. 实现Aodh
5.1 注册Aodh至Keystone中
[root@node1 ~(keystone)]# openstack user create --domain default --project service --password servicepassword aodh
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | 1be75e85ec9445ab9ff7dd7ec2f02b71 |
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 493edffeca2e4cfcaa637342245f9d1d |
| name                | aodh                             |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@node1 ~(keystone)]# openstack role add --project service --user aodh admin
[root@node1 ~(keystone)]# openstack service create --name aodh --description "Telemetry Alarming" alarming +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Telemetry Alarming | | enabled | True | | id | 347bcae36d6346e0822ea68f4ab3577f | | name | aodh | | type | alarming | +-------------+----------------------------------+
[root@node1 ~(keystone)]# openstack endpoint create --region RegionOne alarming public http://192.168.10.11:8042 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 61b3d552f1b84723ac5e17c37862650a | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 347bcae36d6346e0822ea68f4ab3577f | | service_name | aodh | | service_type | alarming | | url | http://192.168.10.11:8042 | +--------------+----------------------------------+
[root@node1 ~(keystone)]# openstack endpoint create --region RegionOne alarming internal http://192.168.10.11:8042 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | d441ac18863142cd887d5a12a3449aac | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 347bcae36d6346e0822ea68f4ab3577f | | service_name | aodh | | service_type | alarming | | url | http://192.168.10.11:8042 | +--------------+----------------------------------+
[root@node1 ~(keystone)]# openstack endpoint create --region RegionOne alarming admin http://192.168.10.11:8042 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 029ea0e856db44e180ceabaedbcaa783 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 347bcae36d6346e0822ea68f4ab3577f | | service_name | aodh | | service_type | alarming | | url | http://192.168.10.11:8042 | +--------------+----------------------------------+
5.2 配置Aodh数据库
[root@node1 ~(keystone)]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 7012
Server version: 10.1.20-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database aodh; Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on aodh.* to aodh@'localhost' identified by 'password'; Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on aodh.* to aodh@'%' identified by 'password'; Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit Bye
5.3 安装及配置Aodh
1) 安装Aodh
[root@node1 ~(keystone)]# yum --enablerepo=centos-openstack-queens,epel install openstack-aodh-api openstack-aodh-evaluator openstack-aodh-notifier openstack-aodh-listener openstack-aodh-expirer python2-aodhclient -y
2) 配置Aodh (1) 编写aodh配置文件 [root@node1 ~(keystone)]# mv /etc/aodh/aodh.conf /etc/aodh/aodh.conf.bak [root@node1 ~(keystone)]# vim /etc/aodh/aodh.conf [DEFAULT] log_dir = /var/log/aodh transport_url = rabbit://openstack:password@192.168.10.11
[api] auth_mode = keystone gnocchi_external_project_owner = service
[database] connection = mysql+pymysql://aodh:password@192.168.10.11/aodh
[keystone_authtoken] www_authenticate_uri = http://192.168.10.11:5000 auth_url = http://192.168.10.11:5000 memcached_servers = 192.168.10.11:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = aodh password = servicepassword
[service_credentials] auth_url = http://192.168.10.11:5000/v3 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = aodh password = servicepassword interface = internalURL

(2) 编写wsgi配置文件 [root@node1 ~(keystone)]# vim /etc/httpd/conf.d/20-aodh_wsgi.conf Listen 8042 <VirtualHost *:8042> DocumentRoot "/var/www/cgi-bin/aodh" <Directory "/var/www/cgi-bin/aodh"> AllowOverride None Require all granted </Directory>
CustomLog "/var/log/httpd/aodh_wsgi_access.log" combined ErrorLog "/var/log/httpd/aodh_wsgi_error.log" SetEnvIf X-Forwarded-Proto https HTTPS=1 WSGIApplicationGroup %{GLOBAL} WSGIDaemonProcess aodh display-name=aodh_wsgi user=aodh group=aodh processes=6 threads=3 WSGIProcessGroup aodh WSGIScriptAlias / "/var/www/cgi-bin/aodh/app" </VirtualHost>

[root@node1 ~(keystone)]# chmod 640 /etc/aodh/aodh.conf [root@node1 ~(keystone)]# chgrp aodh /etc/aodh/aodh.conf [root@node1 ~(keystone)]# mkdir /var/www/cgi-bin/aodh [root@node1 ~(keystone)]# cp /usr/lib/python2.7/site-packages/aodh/api/app.wsgi /var/www/cgi-bin/aodh/app [root@node1 ~(keystone)]# chown -R aodh. /var/www/cgi-bin/aodh [root@node1 ~(keystone)]# su -s /bin/bash aodh -c "aodh-dbsync" [root@node1 ~(keystone)]# systemctl enable --now openstack-aodh-evaluator openstack-aodh-notifier openstack-aodh-listener [root@node1 ~(keystone)]# systemctl restart httpd
3) SELinux及防火墙设定 [root@node1 ~(keystone)]# semanage port -a -t http_port_t -p tcp 8042
[root@node1 ~(keystone)]# firewall-cmd --add-port=8042/tcp --permanent success [root@node1 ~(keystone)]# firewall-cmd --reload success
5.4 使用Aodh
1) 找到一个实例
[snow@node1 ~(keystone)]$ openstack server list
+------------+------+--------+----------------------------------------+-------+----------+
| ID          | Name | Status | Networks                              | Image | Flavor   |
+-------------+------+--------+---------------------------------------+-------+----------+
| 0b95443b... | c7   | ACTIVE | int_net=192.168.188.3, 192.168.10.221 | c77   | m1.small |
+-------------+------+--------+---------------------------------------+-------+----------+
2) 设定警告 # 设定名为cpu_hi的警告,当CPU大于50%时,发送警告 [snow@node1 ~(keystone)]$ openstack alarm create \ --name cpu_hi \ --type gnocchi_resources_threshold \ --description 'CPU High Average' \ --metric cpu_util \ --threshold 50.0 \ --comparison-operator gt \ --aggregation-method mean \ --granularity 300 \ --evaluation-periods 1 \ --resource-type instance \ --resource-id 0b95443b-58d2-41cd-bb34-2c6f81b5582f +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | aggregation_method | mean | | alarm_actions | [] | | alarm_id | 5bf13f52-be47-41f6-9955-64e60fcbcc0d | | comparison_operator | gt | | description | CPU High Average | | enabled | True | | evaluation_periods | 1 | | granularity | 300 | | insufficient_data_actions | [] | | metric | cpu_util | | name | cpu_hi | | ok_actions | [] | | project_id | 7146a34d5b744320b2ed45af5b2e761b | | repeat_actions | False | | resource_id | 0b95443b-58d2-41cd-bb34-2c6f81b5582f | | resource_type | instance | | severity | low | | state | insufficient data | | state_reason | Not evaluated yet | | state_timestamp | 2020-02-07T13:35:29.904709 | | threshold | 50.0 | | time_constraints | [] | | timestamp | 2020-02-07T13:35:29.904709 | | type | gnocchi_resources_threshold | | user_id | 54f3ece13d6147928303ef4112e1f0e9 | +---------------------------+--------------------------------------+
[snow@node1 ~(keystone)]$ openstack alarm list +-------------+-----------------------------+--------+-------+----------+---------+ | alarm_id | type | name | state | severity | enabled | +-------------+-----------------------------+--------+-------+----------+---------+ | de5a704e... | gnocchi_resources_threshold | cpu_hi | ok | low | True | +-------------+-----------------------------+--------+-------+----------+---------+
# 创建之后,[state]是[insufficient data]是因为尚未统计出结果 # 创建之后,[state]是[ok],则当前cpu负载未超过指标
3) 测试警告 [snow@node1 ~(keystone)]$ ssh centos@192.168.10.221 # 加大虚拟实例的负载 [centos@c7 ~]$ cat /dev/urandom | gzip -9 > /dev/null & [ceonts@c7 ~]$ 4) 查看警告 [snow@node1 ~(keystone)]$ openstack metric measures show 0b95443b-58d2-41cd-bb34-2c6f81b5582f +---------------------------+-------------+---------------+ | timestamp | granularity | value | +---------------------------+-------------+---------------+ | 2020-02-07T18:15:00+08:00 | 300.0 | 3.9495528185 | | 2020-02-07T18:20:00+08:00 | 300.0 | 0.9802260793 | | ......................... | 300.0 | ............ | | ......................... | 300.0 | ............. | | 2020-02-07T21:30:00+08:00 | 300.0 | 62.235035802 | | 2020-02-07T21:35:00+08:00 | 300.0 | 70.6488941078 | # 超过50% +---------------------------+-------------+---------------+
[snow@node1 ~(keystone)]$ openstack alarm list +----------------+-----------------------------+--------+-------+----------+---------+ | alarm_id | type | name | state | severity | enabled | +----------------+-----------------------------+--------+-------+----------+---------+ | 5bf13f52...... | gnocchi_resources_threshold | cpu_hi | alarm | low | True | +----------------+-----------------------------+--------+-------+----------+---------+
5) 停止测试 [centos@c7 ~]$ cat /dev/urandom | gzip -9 > /dev/null & [1] 9981 [ceonts@c7 ~]$ kill -9 9981
[snow@node1 ~(keystone)]$ openstack alarm list +-------------+-----------------------------+--------+-------+----------+---------+ | alarm_id | type | name | state | severity | enabled | +-------------+-----------------------------+--------+-------+----------+---------+ | 5bf13f52... | gnocchi_resources_threshold | cpu_hi | ok | low | True | +-------------+-----------------------------+--------+-------+----------+---------+
6) 查看历史警告 # 语法:openstack alarm-history show <alarm_id> [snow@node1 ~(keystone)]$ openstack alarm-history show 5bf13f52-be47-41f6-9955-64e60fcbcc0d +----------------------------+------------------+--------------------------------------------- | timestamp | type | detail | 2020-02-07T13:45:44.274523 | state transition | {"transition_reason": "Transition to ok ... | 2020-02-07T13:35:44.289258 | state transition | {"transition_reason": "Transition to alarm.. | 2020-02-07T13:35:29.904709 | creation | {"state_reason": "Not evaluated yet","user.. +----------------------------+------------------+---------------------------------------------

 

如对您有帮助,请随缘打个赏。^-^

gold