このセクションでは、テレメトリサービス( Ceilometer )をコントローラノードにインストールする前に、メータリングデータを送信するターゲットとして推奨されるエンドポイント である Gnocchi のインストールについて、紹介します。作業は、コントローラノードで実施します。
データベース環境の設定
ここでは、Gnocchi のデータベース環境を設定します。
データベースクライアントを使用して、データベースサーバーに root ユーザーとして接続します。
[root@controller ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 278 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)]>
データベース gnocchi を作成します。
MariaDB [(none)]> create database gnocchi; Query OK, 1 row affected (0.01 sec) MariaDB [(none)]>
データベースに適切なアクセス権を付与します。ここでは gnocchi データベースに接続するパスワードは GNOCCHI_DB_PASS としているので、実際の情報に置き換えてください。
MariaDB [(none)]> GRANT ALL PRIVILEGES ON gnocchi.* TO 'gnocchi'@'localhost' \ IDENTIFIED BY 'GNOCCHI_DB_PASS'; Query OK, 0 rows affected (0.03 sec) MariaDB [(none)]> MariaDB [(none)]> GRANT ALL PRIVILEGES ON gnocchi.* TO 'gnocchi'@'%' \ IDENTIFIED BY 'GNOCCHI_DB_PASS'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> MariaDB [(none)]> quit Bye [root@controller ~]#
クレデンシャル、エンティティ、エンドポイントの作成
admin クレデンシャルを読み込み、管理者専用 CLI コマンドへのアクセス権を取得します。
[root@controller ~]# . openrc/admin-openrc [root@controller ~]#
gnocchiユーザーを作成します。ここでは gnocchi ユーザーのパスワードは GNOCCHI_PASS としているので、実際の情報に置き換えてください。
[root@controller ~]# openstack user create --domain default --password-prompt gnocchi User Password: GNOCCHI_PASS Repeat User Password: GNOCCHI_PASS +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | e8c3d4d3c06d47e1b1b28fea4bc30dbb | | name | gnocchi | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ [root@controller ~]#
gnocchi サービスエンティティを作成します。
[root@controller ~]# openstack service create --name gnocchi \ --description "Metric Service" metric +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Metric Service | | enabled | True | | id | ae3d7a03c20c4e91a7f8b169bb8de6e0 | | name | gnocchi | | type | metric | +-------------+----------------------------------+ [root@controller ~]#
admin の ロールを gnocchi ユーザーと service プロジェクトに追加します。
[root@controller ~]# openstack role add --project service --user gnocchi admin [root@controller ~]#
Metric サービスの API エンドポイントを作成します。
[root@controller ~]# openstack endpoint create --region RegionOne \ metric public http://controller:8041 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | d5f216b64557428caed5febba275e7e4 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | ae3d7a03c20c4e91a7f8b169bb8de6e0 | | service_name | gnocchi | | service_type | metric | | url | http://controller:8041 | +--------------+----------------------------------+ [root@controller ~]#
[root@controller ~]# openstack endpoint create --region RegionOne \ metric internal http://controller:8041 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 8616504ee18445e4929e72679c89b175 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | ae3d7a03c20c4e91a7f8b169bb8de6e0 | | service_name | gnocchi | | service_type | metric | | url | http://controller:8041 | +--------------+----------------------------------+ [root@controller ~]#
[root@controller ~]# openstack endpoint create --region RegionOne \ metric admin http://controller:8041 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | ebea1eaf559f4dcda1dcf7a3fc3b9933 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | ae3d7a03c20c4e91a7f8b169bb8de6e0 | | service_name | gnocchi | | service_type | metric | | url | http://controller:8041 | +--------------+----------------------------------+ [root@controller ~]#
コンポーネントのインストールと設定
Gnocchi のパッケージをインストールします。
[root@controller ~]# yum --enablerepo=centos-openstack-rocky -y install openstack-gnocchi-api \ openstack-gnocchi-metricd python2-gnocchiclient 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: mirror.fairway.ne.jp * epel: ftp.iij.ad.jp * extras: mirror.fairway.ne.jp * updates: mirror.fairway.ne.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ gnocchi-api.noarch 0:4.3.0-1.el7 を インストール --> 依存性の処理をしています: gnocchi-common = 4.3.0-1.el7 のパッケージ: gnocchi-api-4.3.0-1.el7.noarch ---> パッケージ gnocchi-metricd.noarch 0:4.3.0-1.el7 を インストール ---> パッケージ python2-gnocchiclient.noarch 0:7.0.4-1.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ gnocchi-common.noarch 0:4.3.0-1.el7 を インストール --> 依存性の処理をしています: python-gnocchi = 4.3.0-1.el7 のパッケージ: gnocchi-common-4.3.0-1.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ python-gnocchi.noarch 0:4.3.0-1.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ============================================================================================================================================================== インストール中: gnocchi-api noarch 4.3.0-1.el7 centos-openstack-rocky 4.5 k gnocchi-metricd noarch 4.3.0-1.el7 centos-openstack-rocky 4.3 k python2-gnocchiclient noarch 7.0.4-1.el7 centos-openstack-rocky 71 k 依存性関連でのインストールをします: gnocchi-common noarch 4.3.0-1.el7 centos-openstack-rocky 10 k python-gnocchi noarch 4.3.0-1.el7 centos-openstack-rocky 282 k トランザクションの要約 ============================================================================================================================================================== インストール 3 パッケージ (+2 個の依存関係のパッケージ) 総ダウンロード容量: 372 k インストール容量: 1.4 M Downloading packages: (1/5): gnocchi-common-4.3.0-1.el7.noarch.rpm | 10 kB 00:00:02 (2/5): gnocchi-api-4.3.0-1.el7.noarch.rpm | 4.5 kB 00:00:02 (3/5): gnocchi-metricd-4.3.0-1.el7.noarch.rpm | 4.3 kB 00:00:00 (4/5): python2-gnocchiclient-7.0.4-1.el7.noarch.rpm | 71 kB 00:00:00 (5/5): python-gnocchi-4.3.0-1.el7.noarch.rpm | 282 kB 00:00:01 -------------------------------------------------------------------------------------------------------------------------------------------------------------- 合計 101 kB/s | 372 kB 00:00:03 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python-gnocchi-4.3.0-1.el7.noarch 1/5 インストール中 : gnocchi-common-4.3.0-1.el7.noarch 2/5 インストール中 : gnocchi-api-4.3.0-1.el7.noarch 3/5 インストール中 : gnocchi-metricd-4.3.0-1.el7.noarch 4/5 インストール中 : python2-gnocchiclient-7.0.4-1.el7.noarch 5/5 検証中 : gnocchi-api-4.3.0-1.el7.noarch 1/5 検証中 : gnocchi-common-4.3.0-1.el7.noarch 2/5 検証中 : python-gnocchi-4.3.0-1.el7.noarch 3/5 検証中 : gnocchi-metricd-4.3.0-1.el7.noarch 4/5 検証中 : python2-gnocchiclient-7.0.4-1.el7.noarch 5/5 インストール: gnocchi-api.noarch 0:4.3.0-1.el7 gnocchi-metricd.noarch 0:4.3.0-1.el7 python2-gnocchiclient.noarch 0:7.0.4-1.el7 依存性関連をインストールしました: gnocchi-common.noarch 0:4.3.0-1.el7 python-gnocchi.noarch 0:4.3.0-1.el7 完了しました! [root@controller ~]#
gnocchi 設定ファイル( /etc/gnocchi/gnocchi.conf )を編集し、以下設定します。
[root@controller ~]# vi /etc/gnocchi/gnocchi.conf
[ DEFAULT ] セクションで、gnocchi のログを出力先を指定します。
[DEFAULT] ... log_dir = /var/log/gnocchi
[ api ] セクションで、キーストーンを使用するようにgnocchiを設定します。
[api] auth_mode = keystone
[ keystone_authtoken ] セクションで、キーストーン認証を設定します。ここでは、gnocchi ユーザーのパスワードは GNOCCHI_PASS としているので、実際の情報に置き換えてください。
[keystone_authtoken]
...
auth_type = password
auth_url = http://controller:5000
project_domain_name = Default
user_domain_name = Default
project_name = service
username = gnocchi
password = GNOCCHI_PASS
interface = internalURL
region_name = RegionOne
[ indexer ] セクションで、データベースアクセスを設定します。ここでは、gnocchi データベースへの接続パスワードは GNOCCHI_DB_PASS としているので、実際の情報に置き換えてください。
[indexer] url = mysql+pymysql://gnocchi:GNOCCHI_DB_PASS@controller/gnocchi
[ storage ]セクションで、メトリックデータを保存する場所を設定します。 この場合、ローカルファイルシステムに保存します。 もっと丈夫でパフォーマンスの良いドライバーのリストについては、Gnocchiのドキュメントを参照してください。
[storage] ... file_basepath = /var/lib/gnocchi driver = file
Gnocchi を初期化します。
[root@controller ~]# gnocchi-upgrade 2018-12-01 03:25:21,293 [9912] INFO gnocchi.service: Gnocchi version 4.3.0 2018-12-01 03:25:21,556 [9912] INFO gnocchi.cli.manage: Upgrading indexer SQLAlchemyIndexer: mysql+pymysql://gnocchi:Gnoch0527@controller/gnocchi 2018-12-01 03:25:21,778 [9912] INFO gnocchi.cli.manage: Upgrading storage FileStorage: /var/lib/gnocchi 2018-12-01 03:25:21,780 [9912] INFO gnocchi.cli.manage: Upgrading incoming storage FileStorage: /var/lib/gnocchi [root@controller ~]#
インストールの最後
Gnocchi サービスの自動起動を有効化します。
■ 自動起動の有効化 [root@controller ~]# systemctl enable openstack-gnocchi-api.service \ openstack-gnocchi-metricd.service Created symlink from /etc/systemd/system/multi-user.target.wants/gnocchi-api.service to /usr/lib/systemd/system/gnocchi-api.service. Created symlink from /etc/systemd/system/multi-user.target.wants/gnocchi-metricd.service to /usr/lib/systemd/system/gnocchi-metricd.service. [root@controller ~]# ■ 自動起動の状態確認 [root@controller ~]# systemctl is-enabled openstack-gnocchi-api.service openstack-gnocchi-metricd.service enabled enabled [root@controller ~]#
Gnocchi サービスを起動します。
■ 起動 [root@controller ~]# systemctl start openstack-gnocchi-api.service \ openstack-gnocchi-metricd.service [root@controller ~]# ■ 起動状態の確認 [root@controller ~]# systemctl status openstack-gnocchi-api.service openstack-gnocchi-metricd.service ● gnocchi-api.service - Gnocchi API service Loaded: loaded (/usr/lib/systemd/system/gnocchi-api.service; enabled; vendor preset: disabled) Active: active (running) since 土 2018-12-01 18:51:01 JST; 1min 47s ago Main PID: 1066 (uwsgi) CGroup: /system.slice/gnocchi-api.service ├─1066 /usr/bin/uwsgi --if-not-plugin python --plugin python --endif --http 0.0.0.0:8041 --master --enable-threads --thunder-lock --hook-master-... ├─2070 /usr/bin/uwsgi --if-not-plugin python --plugin python --endif --http 0.0.0.0:8041 --master --enable-threads --thunder-lock --hook-master-... ├─2071 /usr/bin/uwsgi --if-not-plugin python --plugin python --endif --http 0.0.0.0:8041 --master --enable-threads --thunder-lock --hook-master-... ├─2072 /usr/bin/uwsgi --if-not-plugin python --plugin python --endif --http 0.0.0.0:8041 --master --enable-threads --thunder-lock --hook-master-... └─2073 /usr/bin/uwsgi --if-not-plugin python --plugin python --endif --http 0.0.0.0:8041 --master --enable-threads --thunder-lock --hook-master-... 12月 01 18:51:10 controller gnocchi-api[1066]: *** uWSGI is running in multiple interpreter mode *** 12月 01 18:51:10 controller gnocchi-api[1066]: spawned uWSGI master process (pid: 1066) 12月 01 18:51:10 controller gnocchi-api[1066]: spawned uWSGI worker 1 (pid: 2070, cores: 2) 12月 01 18:51:10 controller gnocchi-api[1066]: spawned uWSGI worker 2 (pid: 2071, cores: 2) 12月 01 18:51:10 controller gnocchi-api[1066]: spawned uWSGI worker 3 (pid: 2072, cores: 2) 12月 01 18:51:10 controller gnocchi-api[1066]: spawned uWSGI http 1 (pid: 2073) 12月 01 18:51:10 controller gnocchi-api[1066]: running "unix_signal:15 gracefully_kill_them_all" (master-start)... 12月 01 18:51:19 controller gnocchi-api[1066]: WSGI app 0 (mountpoint='') ready in 9 seconds on interpreter 0x965970 pid: 2072 (default app) 12月 01 18:51:19 controller gnocchi-api[1066]: WSGI app 0 (mountpoint='') ready in 9 seconds on interpreter 0x965970 pid: 2070 (default app) 12月 01 18:51:19 controller gnocchi-api[1066]: WSGI app 0 (mountpoint='') ready in 9 seconds on interpreter 0x965970 pid: 2071 (default app) ● gnocchi-metricd.service - Gnocchi metricd service Loaded: loaded (/usr/lib/systemd/system/gnocchi-metricd.service; enabled; vendor preset: disabled) Active: active (running) since 土 2018-12-01 18:51:01 JST; 1min 47s ago Main PID: 1078 (gnocchi-metricd) CGroup: /system.slice/gnocchi-metricd.service ├─1078 gnocchi-metricd: master process [/usr/bin/gnocchi-metricd --log-file /var/log/gnocchi/metricd.log] ├─2051 gnocchi-metricd: processing worker(0) ├─2052 gnocchi-metricd: processing worker(1) ├─2053 gnocchi-metricd: reporting worker(0) └─2054 gnocchi-metricd: janitor worker(0) 12月 01 18:51:01 controller systemd[1]: Started Gnocchi metricd service. 12月 01 18:51:01 controller systemd[1]: Starting Gnocchi metricd service... [root@controller ~]#
補足
gnocchi-api.service が起動しない場合には、こちら を確認してください。
gnocchi-api.service 起動時に、gnocchi の API ログ( /var/log/gnocchi/api.log )に、” WARNING gnocchi.cli.api: No need to pass `–‘ in gnocchi-api … ” といった警告がでる場合には、こちら を確認してください。