このセクションでは、テレメトリーの通知とエージェントの組み合わせを使用してコンピュートサービスメーターを収集する方法について紹介します。この作業は、コンピュートノードで実施します。

コンポーネントのインストールと設定

必要となるパッケージをインストールします。

[root@compute1 ~]# yum --enablerepo=centos-openstack-rocky -y install openstack-ceilometer-compute
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
base                                                     | 3.6 kB     00:00     
centos-ceph-luminous                                     | 2.9 kB     00:00     
centos-openstack-rocky                                   | 2.9 kB     00:00     
centos-qemu-ev                                           | 2.9 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
extras/7/x86_64/primary_db                                 | 205 kB   00:00     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ openstack-ceilometer-compute.noarch 1:11.0.1-1.el7 を インストール
--> 依存性の処理をしています: openstack-ceilometer-polling = 1:11.0.1-1.el7 のパッケージ: 1:openstack-ceilometer-compute-11.0.1-1.el7.noarch
--> 依存性の処理をしています: openstack-ceilometer-common = 1:11.0.1-1.el7 のパッケージ: 1:openstack-ceilometer-compute-11.0.1-1.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ openstack-ceilometer-common.noarch 1:11.0.1-1.el7 を インストール
--> 依存性の処理をしています: python-ceilometer = 1:11.0.1-1.el7 のパッケージ: 1:openstack-ceilometer-common-11.0.1-1.el7.noarch
--> 依存性の処理をしています: python2-swiftclient のパッケージ: 1:openstack-ceilometer-common-11.0.1-1.el7.noarch
--> 依存性の処理をしています: python2-gnocchiclient のパッケージ: 1:openstack-ceilometer-common-11.0.1-1.el7.noarch
--> 依存性の処理をしています: python-posix_ipc のパッケージ: 1:openstack-ceilometer-common-11.0.1-1.el7.noarch
---> パッケージ openstack-ceilometer-polling.noarch 1:11.0.1-1.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ python-ceilometer.noarch 1:11.0.1-1.el7 を インストール
--> 依存性の処理をしています: python2-croniter のパッケージ: 1:python-ceilometer-11.0.1-1.el7.noarch
--> 依存性の処理をしています: python2-cotyledon のパッケージ: 1:python-ceilometer-11.0.1-1.el7.noarch
--> 依存性の処理をしています: python-jsonpath-rw-ext のパッケージ: 1:python-ceilometer-11.0.1-1.el7.noarch
--> 依存性の処理をしています: python-jsonpath-rw のパッケージ: 1:python-ceilometer-11.0.1-1.el7.noarch
--> 依存性の処理をしています: python-anyjson のパッケージ: 1:python-ceilometer-11.0.1-1.el7.noarch
--> 依存性の処理をしています: pysnmp のパッケージ: 1:python-ceilometer-11.0.1-1.el7.noarch
---> パッケージ python-posix_ipc.x86_64 0:0.9.8-1.el7 を インストール
---> パッケージ python2-gnocchiclient.noarch 0:7.0.4-1.el7 を インストール
--> 依存性の処理をしています: python2-ujson のパッケージ: python2-gnocchiclient-7.0.4-1.el7.noarch
---> パッケージ python2-swiftclient.noarch 0:3.6.0-1.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ python-anyjson.noarch 0:0.3.3-3.el7 を インストール
---> パッケージ python-jsonpath-rw.noarch 0:1.2.3-2.el7 を インストール
---> パッケージ python2-cotyledon.noarch 0:1.6.3-1.el7 を インストール
--> 依存性の処理をしています: python-setproctitle のパッケージ: python2-cotyledon-1.6.3-1.el7.noarch
---> パッケージ python2-croniter.noarch 0:0.3.19-1.el7 を インストール
---> パッケージ python2-jsonpath-rw-ext.noarch 0:1.0.0-1.el7 を インストール
---> パッケージ python2-pysnmp.noarch 0:4.3.2-3.el7 を インストール
---> パッケージ python2-ujson.x86_64 0:1.35-1.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ python-setproctitle.x86_64 0:1.1.9-4.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package                     アーキテクチャー
                                    バージョン     リポジトリー            容量
================================================================================
インストール中:
 openstack-ceilometer-compute
                             noarch 1:11.0.1-1.el7 centos-openstack-rocky 4.2 k
依存性関連でのインストールをします:
 openstack-ceilometer-common noarch 1:11.0.1-1.el7 centos-openstack-rocky  40 k
 openstack-ceilometer-polling
                             noarch 1:11.0.1-1.el7 centos-openstack-rocky 4.7 k
 python-anyjson              noarch 0.3.3-3.el7    centos-openstack-rocky  12 k
 python-ceilometer           noarch 1:11.0.1-1.el7 centos-openstack-rocky 289 k
 python-jsonpath-rw          noarch 1.2.3-2.el7    centos-openstack-rocky  29 k
 python-posix_ipc            x86_64 0.9.8-1.el7    centos-openstack-rocky  46 k
 python-setproctitle         x86_64 1.1.9-4.el7    centos-openstack-rocky  16 k
 python2-cotyledon           noarch 1.6.3-1.el7    centos-openstack-rocky  38 k
 python2-croniter            noarch 0.3.19-1.el7   centos-openstack-rocky  33 k
 python2-gnocchiclient       noarch 7.0.4-1.el7    centos-openstack-rocky  71 k
 python2-jsonpath-rw-ext     noarch 1.0.0-1.el7    centos-openstack-rocky  31 k
 python2-pysnmp              noarch 4.3.2-3.el7    centos-openstack-rocky 626 k
 python2-swiftclient         noarch 3.6.0-1.el7    centos-openstack-rocky 162 k
 python2-ujson               x86_64 1.35-1.el7     centos-openstack-rocky  28 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+14 個の依存関係のパッケージ)

総ダウンロード容量: 1.4 M
インストール容量: 5.5 M
Downloading packages:
(1/15): openstack-ceilometer-compute-11.0.1-1.el7.noarch.r | 4.2 kB   00:01     
(2/15): openstack-ceilometer-polling-11.0.1-1.el7.noarch.r | 4.7 kB   00:00     
(3/15): openstack-ceilometer-common-11.0.1-1.el7.noarch.rp |  40 kB   00:01     
(4/15): python-anyjson-0.3.3-3.el7.noarch.rpm              |  12 kB   00:00     
(5/15): python-jsonpath-rw-1.2.3-2.el7.noarch.rpm          |  29 kB   00:00     
(6/15): python-ceilometer-11.0.1-1.el7.noarch.rpm          | 289 kB   00:00     
(7/15): python-posix_ipc-0.9.8-1.el7.x86_64.rpm            |  46 kB   00:00     
(8/15): python-setproctitle-1.1.9-4.el7.x86_64.rpm         |  16 kB   00:00     
(9/15): python2-cotyledon-1.6.3-1.el7.noarch.rpm           |  38 kB   00:00     
(10/15): python2-croniter-0.3.19-1.el7.noarch.rpm          |  33 kB   00:00     
(11/15): python2-gnocchiclient-7.0.4-1.el7.noarch.rpm      |  71 kB   00:00     
(12/15): python2-jsonpath-rw-ext-1.0.0-1.el7.noarch.rpm    |  31 kB   00:00     
(13/15): python2-swiftclient-3.6.0-1.el7.noarch.rpm        | 162 kB   00:00     
(14/15): python2-ujson-1.35-1.el7.x86_64.rpm               |  28 kB   00:00     
(15/15): python2-pysnmp-4.3.2-3.el7.noarch.rpm             | 626 kB   00:01     
--------------------------------------------------------------------------------
合計                                               314 kB/s | 1.4 MB  00:04     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : python-jsonpath-rw-1.2.3-2.el7.noarch          1/15 
  インストール中          : python2-jsonpath-rw-ext-1.0.0-1.el7.noarch     2/15 
  インストール中          : python-setproctitle-1.1.9-4.el7.x86_64         3/15 
  インストール中          : python2-cotyledon-1.6.3-1.el7.noarch           4/15 
  インストール中          : python2-croniter-0.3.19-1.el7.noarch           5/15 
  インストール中          : python2-pysnmp-4.3.2-3.el7.noarch              6/15 
  インストール中          : python2-ujson-1.35-1.el7.x86_64                7/15 
  インストール中          : python2-gnocchiclient-7.0.4-1.el7.noarch       8/15 
  インストール中          : python2-swiftclient-3.6.0-1.el7.noarch         9/15 
  インストール中          : python-anyjson-0.3.3-3.el7.noarch             10/15 
  インストール中          : 1:python-ceilometer-11.0.1-1.el7.noarch       11/15 
  インストール中          : python-posix_ipc-0.9.8-1.el7.x86_64           12/15 
  インストール中          : 1:openstack-ceilometer-common-11.0.1-1.el7.   13/15 
  インストール中          : 1:openstack-ceilometer-polling-11.0.1-1.el7   14/15 
  インストール中          : 1:openstack-ceilometer-compute-11.0.1-1.el7   15/15 
  検証中                  : 1:openstack-ceilometer-compute-11.0.1-1.el7    1/15 
  検証中                  : python2-jsonpath-rw-ext-1.0.0-1.el7.noarch     2/15 
  検証中                  : python-posix_ipc-0.9.8-1.el7.x86_64            3/15 
  検証中                  : python-anyjson-0.3.3-3.el7.noarch              4/15 
  検証中                  : python2-swiftclient-3.6.0-1.el7.noarch         5/15 
  検証中                  : python2-cotyledon-1.6.3-1.el7.noarch           6/15 
  検証中                  : python2-gnocchiclient-7.0.4-1.el7.noarch       7/15 
  検証中                  : python-jsonpath-rw-1.2.3-2.el7.noarch          8/15 
  検証中                  : python2-ujson-1.35-1.el7.x86_64                9/15 
  検証中                  : 1:openstack-ceilometer-common-11.0.1-1.el7.   10/15 
  検証中                  : python2-pysnmp-4.3.2-3.el7.noarch             11/15 
  検証中                  : python2-croniter-0.3.19-1.el7.noarch          12/15 
  検証中                  : 1:python-ceilometer-11.0.1-1.el7.noarch       13/15 
  検証中                  : 1:openstack-ceilometer-polling-11.0.1-1.el7   14/15 
  検証中                  : python-setproctitle-1.1.9-4.el7.x86_64        15/15 

インストール:
  openstack-ceilometer-compute.noarch 1:11.0.1-1.el7                            

依存性関連をインストールしました:
  openstack-ceilometer-common.noarch 1:11.0.1-1.el7                             
  openstack-ceilometer-polling.noarch 1:11.0.1-1.el7                            
  python-anyjson.noarch 0:0.3.3-3.el7                                           
  python-ceilometer.noarch 1:11.0.1-1.el7                                       
  python-jsonpath-rw.noarch 0:1.2.3-2.el7                                       
  python-posix_ipc.x86_64 0:0.9.8-1.el7                                         
  python-setproctitle.x86_64 0:1.1.9-4.el7                                      
  python2-cotyledon.noarch 0:1.6.3-1.el7                                        
  python2-croniter.noarch 0:0.3.19-1.el7                                        
  python2-gnocchiclient.noarch 0:7.0.4-1.el7                                    
  python2-jsonpath-rw-ext.noarch 0:1.0.0-1.el7                                  
  python2-pysnmp.noarch 0:4.3.2-3.el7                                           
  python2-swiftclient.noarch 0:3.6.0-1.el7                                      
  python2-ujson.x86_64 0:1.35-1.el7                                             

完了しました!
[root@compute1 ~]# 
[root@compute1 ~]# yum --enablerepo=centos-openstack-rocky -y install openstack-ceilometer-ipmi
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ openstack-ceilometer-ipmi.noarch 1:11.0.1-1.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package                   アーキテクチャー
                                  バージョン       リポジトリー            容量
================================================================================
インストール中:
 openstack-ceilometer-ipmi noarch 1:11.0.1-1.el7   centos-openstack-rocky 5.8 k

トランザクションの要約
================================================================================
インストール  1 パッケージ

総ダウンロード容量: 5.8 k
インストール容量: 1.8 k
Downloading packages:
openstack-ceilometer-ipmi-11.0.1-1.el7.noarch.rpm          | 5.8 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : 1:openstack-ceilometer-ipmi-11.0.1-1.el7.noar   1/1 
  検証中                  : 1:openstack-ceilometer-ipmi-11.0.1-1.el7.noar   1/1 

インストール:
  openstack-ceilometer-ipmi.noarch 1:11.0.1-1.el7                               

完了しました!
[root@compute1 ~]# 

Ceilometer 設定ファイル( /etc/ceilometer/ceilometer.conf )を編集して、以下の設定をします。

[root@compute1 ~]# vi /etc/ceilometer/ceilometer.conf 

[ DEFAULT ] セクションで、RabbitMQメッセージキューへのアクセスを設定します。RABBIT_PASS は、RabbitMQ の openstack ユーザー用に選択したパスワードに置き換えてください。

[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller

[ service_credentials ] セクションで、サービスクレデンシャルを設定します。ここでは、ceilometer ユーザーのパスワードは CEILOMETER_PASS としているので、実際の情報に置き換えてください。

[service_credentials]
...
auth_url = http://controller:5000
project_domain_id = default
user_domain_id = default
auth_type = password
username = ceilometer
project_name = service
password = CEILOMETER_PASS
interface = internalURL
region_name = RegionOne

テレメトリーの設定

Nova 設定ファイル( /etc/nova/nova.conf )を編集し、以下の設定をします。

[root@compute1 ~]# vi /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 ] セクションで、通知を設定します。

[oslo_messaging_notifications]
...
driver = messagingv2

IPMIメーターをポーリングするための設定

/etc/sudoers ファイルを編集し、以下の設定を追加します。

[root@compute1 ~]# visudo
## openstack ceilometer
ceilometer ALL = (root) NOPASSWD: /usr/bin/ceilometer-rootwrap /etc/ceilometer/rootwrap.conf *

/etc/ceilometer/polling.yaml を編集して、必要なメーターを追加します。

[root@compute1 ~]# vi /etc/ceilometer/polling.yaml 
    - name: ipmi
      interval: 300
      meters:
        - hardware.ipmi.temperature

インストールの最後

コンピュートサービスメーターの自動起動を有効化します。

■ 自動起動の有効化
[root@compute1 ~]# systemctl enable openstack-ceilometer-compute.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-ceilometer-compute.service to /usr/lib/systemd/system/openstack-ceilometer-compute.service.
[root@compute1 ~]# systemctl is-enabled openstack-ceilometer-compute.service
enabled
[root@compute1 ~]# 

■ 自動起動の状態確認
[root@compute1 ~]# systemctl is-enabled openstack-ceilometer-compute.service
enabled
[root@compute1 ~]# 

コンピュートサービスメーターを起動します。

■ 起動
[root@compute1 ~]# systemctl start openstack-ceilometer-compute.service
[root@compute1 ~]# 

■ 起動状態の確認
[root@compute1 ~]# systemctl status openstack-ceilometer-compute.service
● openstack-ceilometer-compute.service - OpenStack ceilometer compute agent
   Loaded: loaded (/usr/lib/systemd/system/openstack-ceilometer-compute.service; enabled; vendor preset: disabled)
   Active: active (running) since 土 2018-11-24 03:58:25 JST; 6s ago
 Main PID: 15991 (ceilometer-poll)
    Tasks: 6
   CGroup: /system.slice/openstack-ceilometer-compute.service
           ├─15991 ceilometer-polling: master process [/usr/bin/ceilometer-po...
           └─16002 ceilometer-polling: AgentManager worker(0)

11月 24 03:58:25 compute1 systemd[1]: Started OpenStack ceilometer compute...t.
11月 24 03:58:25 compute1 systemd[1]: Starting OpenStack ceilometer comput.....
Hint: Some lines were ellipsized, use -l to show in full.
[root@compute1 ~]# 

IPMI メーターの自動起動を有効化します。

■ 自動起動の有効化
[root@compute1 ~]# systemctl enable openstack-ceilometer-ipmi.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-ceilometer-ipmi.service to /usr/lib/systemd/system/openstack-ceilometer-ipmi.service.
[root@compute1 ~]# 

■ 自動起動の状態確認
[root@compute1 ~]# systemctl is-enabled openstack-ceilometer-ipmi.service
enabled
[root@compute1 ~]# 

IPMI メーターを起動します。

■ 起動
[root@compute1 ~]# systemctl start openstack-ceilometer-ipmi.service
[root@compute1 ~]# 

■ 起動状態の確認
[root@compute1 ~]# systemctl status openstack-ceilometer-ipmi.service
● openstack-ceilometer-ipmi.service - OpenStack ceilometer ipmi agent
   Loaded: loaded (/usr/lib/systemd/system/openstack-ceilometer-ipmi.service; enabled; vendor preset: disabled)
   Active: active (running) since 土 2018-11-24 03:59:24 JST; 6s ago
 Main PID: 16156 (ceilometer-poll)
    Tasks: 3
   CGroup: /system.slice/openstack-ceilometer-ipmi.service
           ├─16156 ceilometer-polling: master process [/usr/bin/ceilometer-po...
           └─16167 ceilometer-polling: AgentManager worker(0)

11月 24 03:59:24 compute1 systemd[1]: Starting OpenStack ceilometer ipmi a.....
11月 24 03:59:25 compute1 sudo[16169]: ceilometer : TTY=unknown ; PWD=/ ; U...o
11月 24 03:59:25 compute1 sudo[16174]: ceilometer : TTY=unknown ; PWD=/ ; U...0
11月 24 03:59:25 compute1 sudo[16179]: ceilometer : TTY=unknown ; PWD=/ ; U...0
11月 24 03:59:25 compute1 sudo[16184]: ceilometer : TTY=unknown ; PWD=/ ; U...0
11月 24 03:59:25 compute1 sudo[16189]: ceilometer : TTY=unknown ; PWD=/ ; U...0
11月 24 03:59:25 compute1 sudo[16194]: ceilometer : TTY=unknown ; PWD=/ ; U...0
11月 24 03:59:25 compute1 sudo[16199]: ceilometer : TTY=unknown ; PWD=/ ; U...0
11月 24 03:59:25 compute1 sudo[16204]: ceilometer : TTY=unknown ; PWD=/ ; U...0
11月 24 03:59:26 compute1 sudo[16209]: ceilometer : TTY=unknown ; PWD=/ ; U...0
Hint: Some lines were ellipsized, use -l to show in full.
[root@compute1 ~]# 

コンピュートサービスを再起動します。

■ 再起動
[root@compute1 ~]# systemctl restart openstack-nova-compute.service
[root@compute1 ~]# 

■ 起動状態の確認
[root@compute1 ~]# systemctl status openstack-nova-compute.service
● openstack-nova-compute.service - OpenStack Nova Compute Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-nova-compute.service; enabled; vendor preset: disabled)
   Active: active (running) since 土 2018-11-24 03:59:59 JST; 6s ago
 Main PID: 16226 (nova-compute)
    Tasks: 23
   CGroup: /system.slice/openstack-nova-compute.service
           ├─16226 /usr/bin/python2 /usr/bin/nova-compute
           └─16282 /usr/bin/python2 /bin/privsep-helper --config-file /usr/sh...

11月 24 03:59:57 compute1 systemd[1]: Starting OpenStack Nova Compute Server...
11月 24 03:59:59 compute1 systemd[1]: Started OpenStack Nova Compute Server.
11月 24 03:59:59 compute1 sudo[16267]:     nova : TTY=unknown ; PWD=/ ; USE...k
Hint: Some lines were ellipsized, use -l to show in full.
[root@compute1 ~]#