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 및 방화벽을 설정합니다.
마지막 수정일자