IBM Cloud 仮想サーバーを IBM Cloud Monitoring で監視する
目的
タイトルの通り、IBM Cloud の PaaS にある Monitoring サービスを使って、IaaS の仮想サーバーを監視します。
2018年7月現在、Windows はサポートされていないので、Linux で試します。
「collectd」というオープンソースのエージェントを導入して、データを送って、「Grafana」というダッシュボードサービスからグラフを確認します。
IBM Cloud Monitoring を注文する
まずは Catalog - IBM Cloud から Monitoring サービスを注文します。
今回のケースでは、有料の Premium Plan を使う必要があり、それを注文します。
以下のような価格体系になっているので、比較的使いやすいのかなと思います。
- $2.00 USD/Million data points ingested per month
- $0.10 USD/Single metric alerting rules per month
参考:Lite と Premium Plan の違い
参考:Lite Plan で進めると
ちなみに無料の Lite Plan でやろうとすると、以下のエラーが出て怒られました。
[ERROR] IBMCM plugin: client.go:424: Failed acknowledge due to error in metrics. Ignoring compressed pack. Sequence: 0. BXNMSMG02E: Metrics can only be accepted on a paid plan
IBM Cloud 仮想サーバーに設定する
こちらを参考に進めます。
Firewall の設定
以下のエンドポイントに対して、監視データを送信できるようにしておきましょう。
Region URL collectd port Germany https://metrics.eu-de.bluemix.net 9095 Sydney https://metrics.au-syd.bluemix.net 9095 United Kingdom https://metrics.eu-gb.bluemix.net 9095 US South https://metrics.ng.bluemix.net 9095
設定の確認
こちらの OS を使います。
cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
NTP の設定を確認して、「NTP synchronized: no」と設定されていなければ、時刻同期の設定をおこないます。
timedatectl status
Local time: Thu 2018-07-12 03:27:53 CDT
Universal time: Thu 2018-07-12 08:27:53 UTC
RTC time: Thu 2018-07-12 08:27:53
Time zone: America/Chicago (CDT, -0500)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2018-03-11 01:59:59 CST
Sun 2018-03-11 03:00:00 CDT
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2018-11-04 01:59:59 CDT
Sun 2018-11-04 01:00:00 CST
時刻同期の設定
必要なモジュールのインストール・最新化をおこないます。
yum update -y
yum install chrony -y
yum install ntpdate -y
systemctl stop chronyd
CentOS7 からは ntp ではなく chrony を使用するのが推奨のようなので、その設定をします。
head /etc/chrony.conf -n 3
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server time.service.softlayer.com iburst
事前に手動で時刻同期をおこなっておきます。
ntpdate -u time.service.softlayer.com
12 Jul 03:34:21 ntpdate[13446]: adjust time server 10.0.77.54 offset 0.137563 sec
サービスを開始します。
systemctl start chronyd
systemctl enable chronyd
時刻同期が有効になったのを確認します。
timedatectl status
Local time: Thu 2018-07-12 03:47:44 CDT
Universal time: Thu 2018-07-12 08:47:44 UTC
RTC time: Thu 2018-07-12 08:47:44
Time zone: America/Chicago (CDT, -0500)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2018-03-11 01:59:59 CST
Sun 2018-03-11 03:00:00 CDT
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2018-11-04 01:59:59 CDT
Sun 2018-11-04 01:00:00 CST
Monitoring サービスへの接続情報取得
IBM Cloud CLI を使って事前に接続情報を取得します。
新規インストールは Installing the stand-alone IBM Cloud CLI からどうぞ。
ibmcloud --version
ibmcloud version 0.7.1+8a6d40e-2018-06-07T07:13:39+00:00
Monitoring サービス用の API Key を発行して、変数として定義します。
bx iam api-key-create ibmcloud-monitoring-key -d "ibmcloud-monitoring-key"
export APIKEY="kjshdgf...ldkdjdj"
Monitoring サービスのエンドポイントを、変数として定義します。
export METRIC_ENDPOINT="metrics.au-syd.bluemix.net"
スペース ID を取得して、変数として定義します。
bx iam space Sydney --guid
32247b60-827f-4e8a-b4e9-8918d77073ad
export SpaceID="32247b60-827f-4e8a-b4e9-8918d77073ad"
Monitoring エージェント (collectd) の導入
必要なモジュールのインストールをおこないます。
yum install epel-release -y
yum install collectd -y
wget -O - https://downloads.opvis.bluemix.net/client/IBM_Logmet_repo_install.sh | bash
yum install ibmcloud-monitoring -y
Monitoring サービス用の設定作成コマンドを CentOS7 で実行するとエラーになります。
/opt/ibmcloud_monitoring/configure -e $METRIC_ENDPOINT -a $APIKEY -s s-$SpaceID
Collectd configuration file '/etc/collectd/collectd.conf' does not exist
原因は、collectd の設定ファイル格納場所が以下で異なるからです。
- CentOS --- /etc/collectd.conf
- Ubuntu --- /etc/collectd/collectd.conf
気を取り直して、「-d /etc」のオプションをつけて再度実行します。
/opt/ibmcloud_monitoring/configure -e $METRIC_ENDPOINT -a $APIKEY -s s-$SpaceID -d /etc
Successfully configured IBM Cloud Monitoring Plugin for collectd at /etc/ibmcloud-monitoring.conf
Monitoring サービス用の設定が追加されたことを確認します。
tail /etc/collectd.conf -n 1
Include "/etc/ibmcloud-monitoring.conf"
今回は CPU 使用率をみるために、一部設定を変更します。
vi /etc/collectd.conf
#CPU時間情報を取得
LoadPlugin cpu
#CPU使用率として取得
<Plugin cpu>
ReportByCpu true
ReportByState true
ValuesPercentage true
</Plugin>
サービスを再起動します。
systemctl restart collectd
以下のようなサービスログがみえていれば問題ありません。
systemctl status collectd -l
● collectd.service - Collectd statistics daemon
Loaded: loaded (/usr/lib/systemd/system/collectd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2018-07-12 04:52:16 CDT; 29s ago
Docs: man:collectd(1)
man:collectd.conf(5)
Main PID: 25561 (collectd)
CGroup: /system.slice/collectd.service
└─25561 /usr/sbin/collectd
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: [INFO] IBMCM plugin:Fetching Configuration for IBMCloudMonitoring plugin
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: plugin_load: plugin "IBMCloudMonitoring" successfully loaded.
Jul 12 04:52:16 khayama-collectd.ibmcloud.com systemd[1]: Started Collectd statistics daemon.
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: Systemd detected, trying to signal readyness.
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: [INFO] IBMCM plugin:Successfully validated configuration.
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: Initialization complete, entering read-loop.
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: configfile: Cannot get unknown global option `Flushinterval'.
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: [INFO] IBMCM plugin:Found Flushinterval = 64424509440
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: [INFO] IBMCM plugin:==========Configuration======
Name: au-syd
Server: metrics.au-syd.bluemix.net:9095
Scope ID: s-32247b60-827f-4e8a-b4e9-8918d77073ad
Prefix: .
Postfix: .
Apikey: *******
Version: 3
Buffer Size: 1000
Interval: 60sec
SkipInternalPrefixForStatsd: false
RateCounter: false
MaxConnections: 10
Escapechar: _
SeparateInstances: false
Debug: false
Trace Metrics: false
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: [INFO] IBMCM plugin:Successfully registered writer - IBMCloudMonitoring
systemctl status collectd -l
● collectd.service - Collectd statistics daemon
Loaded: loaded (/usr/lib/systemd/system/collectd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2018-07-12 04:52:16 CDT; 2min 42s ago
Docs: man:collectd(1)
man:collectd.conf(5)
Main PID: 25561 (collectd)
CGroup: /system.slice/collectd.service
└─25561 /usr/sbin/collectd
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: [INFO] IBMCM plugin:==========Configuration======
Name: au-syd
Server: metrics.au-syd.bluemix.net:9095
Scope ID: s-32247b60-827f-4e8a-b4e9-8918d77073ad
Prefix: .
Postfix: .
Apikey: *******
Version: 3
Buffer Size: 1000
Interval: 60sec
SkipInternalPrefixForStatsd: false
RateCounter: false
MaxConnections: 10
Escapechar: _
SeparateInstances: false
Debug: false
Trace Metrics: false
Jul 12 04:52:16 khayama-collectd.ibmcloud.com collectd[25561]: [INFO] IBMCM plugin:Successfully registered writer - IBMCloudMonitoring
Jul 12 04:53:16 khayama-collectd.ibmcloud.com collectd[25561]: [WARN] IBMCM plugin:client.go:334: Sending 181 metrics in Buffer.
Jul 12 04:53:16 khayama-collectd.ibmcloud.com collectd[25561]: [NOTICE] IBMCM plugin:client.go:490: Connecting to metrics.au-syd.bluemix.net:9095
Jul 12 04:53:16 khayama-collectd.ibmcloud.com collectd[25561]: [NOTICE] IBMCM plugin:client.go:573: Successfully established a connection with metrics.au-syd.bluemix.net
Jul 12 04:53:16 khayama-collectd.ibmcloud.com collectd[25561]: [NOTICE] IBMCM plugin:client.go:435: Successfully wrote 181 metrics to the socket.
Jul 12 04:54:16 khayama-collectd.ibmcloud.com collectd[25561]: [WARN] IBMCM plugin:client.go:334: Sending 162 metrics in Buffer.
Jul 12 04:54:16 khayama-collectd.ibmcloud.com collectd[25561]: [NOTICE] IBMCM plugin:client.go:490: Connecting to metrics.au-syd.bluemix.net:9095
Jul 12 04:54:16 khayama-collectd.ibmcloud.com collectd[25561]: [NOTICE] IBMCM plugin:client.go:573: Successfully established a connection with metrics.au-syd.bluemix.net
Jul 12 04:54:16 khayama-collectd.ibmcloud.com collectd[25561]: [NOTICE] IBMCM plugin:client.go:435: Successfully wrote 162 metrics to the socket.
Grafana ダッシュボードの確認
取得したデータをダッシュボードから確認します。
IBM Cloud Monitoring : https://metrics.au-syd.bluemix.net/app/#/grafana4
新規にダッシュボードを作成します。
グラフ作成を選択します。
グラフタイトルから「edit」を選び、メトリクスから CPU 使用率を表示できます。
細かくみると、1分ごとにデータが送られていることがわかります。
さいごに
IBM Cloud Monitoring は、仮想サーバーと同時に、コンテナや PaaS アプリの監視を一元的にできるところが特徴です。
システムの監視サービスに何を使うかを迷う方もいると思いますが、今回のように PaaS で提供されている安定したサービス基盤に対して、API Key ベースの連携でデータを一元的に監視できる、というのは1つの選択肢になるのではと思います。
Author And Source
この問題について(IBM Cloud 仮想サーバーを IBM Cloud Monitoring で監視する), 我々は、より多くの情報をここで見つけました https://qiita.com/khayama/items/09577f18f05011bac2fb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .