OpenStack Ussuri : Gnocch

OpenStack Ussuri : Gnocch

OpenStack Ussuri : Gnocch

 -----------------------         -----------------------        -----------------------
|  [ Controller Node ]  |       |    [ Compute Node ]   |      |   [ Network Node ]    | 
|                       |       |        Libvirt        |      |     Open vSwitch      |
| MariaDB    RabbitMQ   |       |      Nova compute     |      |       L2 Agent        |
| Memcached  Keystone   |       |      Open vSwitch     |      |       L3 Agent        |
| httpd      Cinder API |       |       L2 Agent        |      |     metadata agent    |
| Nova-API   Compute    |       |      Cinder-LVM       |      |      Swift-proxy      |
| L2 agent   L3 agent   |       |          NFS          |      |       Heat API        |
| metadata agent        |        -----------------------       |        API-CFN        |
| Neutron Server        |                                      |       Heat Engine     |
| Gnocchi               |                                       ----------------------- 
 -----------------------                                        

 ---------------------------------       
|     [ Storage Node 1, 2, 3 ]    |     
|                                 | 
|      Swift-account-auditor      |
|      Swift-account-replicator   |
|      Swift-account              |
|      Swift-container-auditor    |
|      Swift-container-replicator |
|      Swift-container-updater    |
|      Swift-container            |
|      Swift-object-auditor       |
|      Swift-object-replicator    |
|      Swift-object-updater       |
|      Swift-swift-object         |
 ---------------------------------

OpenStack Ussuri : Gnnoch

  • Gnnoch

 

Gnocchi service 및 User 생성

$ controller ~(keystone)> openstack user create --domain default --project service --password qwer1234 gnocchi
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | b470c69e28db47cdbfc81e06cc67f627 |
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 3217be4917454641994660bd1f3ea007 |
| name                | gnocchi                          |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

$ controller ~(keystone)> openstack role add --project service --user gnocchi admin
$ controller ~(keystone)> openstack service create --name gnocchi --description "Metric Service" metric
-------------------------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Metric Service                   |
| enabled     | True                             |
| id          | 6ac9ec31386f4291b582bd5b504ac485 |
| name        | gnocchi                          |
| type        | metric                           |
+-------------+----------------------------------+

$ controller ~(keystone)> openstack endpoint create --region RegionOne metric public http://controller:8041
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 12f4410ed82240b0b1340d48b0627612 |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 6ac9ec31386f4291b582bd5b504ac485 |
| service_name | gnocchi                          |
| service_type | metric                           |
| url          | http://controller:8041           |
+-------------------------------------------------+

$ controller ~(keystone)> openstack endpoint create --region RegionOne metric internal http://controller:8041
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 70f43453f93b407e94d2dd11ddce7260 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 6ac9ec31386f4291b582bd5b504ac485 |
| service_name | gnocchi                          |
| service_type | metric                           |
| url          | http://controller:8041           |
+--------------+----------------------------------+

$ controller ~(keystone)> openstack endpoint create --region RegionOne metric admin http://controller:8041
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | bb9a955359fd4af18599913465f46958 |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 6ac9ec31386f4291b582bd5b504ac485 |
| service_name | gnocchi                          |
| service_type | metric                           |
| url          | http://controller:8041           |
+--------------+----------------------------------+

Gnocchi 유저의 DB를 생성합니다.

$ controller> mysql -u root -p
$ MariaDB> create database gnocchi;  
$ MariaDB> grant all privileges on gnocchi.* to gnocchi@'localhost' identified by 'qwer1234'; 
$ MariaDB> grant all privileges on gnocchi.* to gnocchi@'%' identified by 'qwer1234'; 
$ MariaDB> flush privileges; 
$ MariaDB> exit;

 

controller node Gnoochi 설치

$ controller> dnf --enablerepo=centos-openstack-ussuri,powertools,epel -y install openstack-gnocchi-api openstack-gnocchi-metricd python3-gnocchiclient
# gnoochi 및 관련 모듈을 설치합니다.

$ controller> vi /etc/gnocchi/gnocchi.conf
[DEFAULT]
log_dir = /var/log/gnocchi

[api]
auth_mode = keystone

[database]
backend = sqlalchemy

[indexer]
url = mysql+pymysql://gnocchi:qwer1234@controller/gnocchi

[storage]
driver = file
file_basepath = /var/lib/gnocchi

[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = gnocchi
password = qwer1234
service_token_roles_required = true


$ controller> vi /etc/httpd/conf.d/10-gnocchi_wsgi.conf
Listen 8041
<VirtualHost *:8041>
  <Directory /usr/bin>
    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 / /usr/bin/gnocchi-api
</VirtualHost>
# 새로 생성합니다.


$ controller> su -s /bin/bash gnocchi -c "gnocchi-upgrade"
$ controller> systemctl enable --now openstack-gnocchi-metricd
$ controller> systemctl restart httpd
# gnocchi DB를 import 시킨 후 서비스를 등록합니다.

$ controller> semanage port -a -t http_port_t -p tcp 8041
$ controller> firewall-cmd --add-port=8041/tcp --permanent
$ controller> firewall-cmd --reload
# SELinux 및 방화벽을 설정합니다.
RSS Feed
마지막 수정일자