はじめに
今回はIBM CloudのモニタリングサービスであるIBM Cloud Monitoring with Sysdig(IBM Cloud Monitoring)をプロビジョニングし、立ち上げたVirtual Server Instance(VSI)をLinuxエージェントにて監視する流れを整理したいと思います。
今回の内容にはIBM Cloudのアカウント(無料利用可能)が前提となっています。
IBM Cloud Monitoringのプロビジョニング
まず監視に使用するIBM Cloud Monitoringをプロビジョニングします。
IBM Cloudコンソールに入り、左上のナビゲーション・メニュー
をクリックし、可観測性
→モニタリング
に入ります。
インスタンス作成画面にて、インスタンスのロケーションやプランを選択します。
今回ロケーションは「Tokyo」を選び、プランは「段階課金制」にしていますが、今回の検証にはLiteプランでも可能ですので、適切に設定してください。
下にスクロールすると、インスタンス名やリソース・グループを指定する欄が表示されます。こちらも自由に設定してください。
全ての設定が完了したら右側の作成
にてインスタンスをプロビジョニングします。
インスタンスが作成されると以下の概要画面が表示されます(プロビジョニングは数秒~数分で完了します)。
VSIのプロビジョニング
次は監視を行う対象のVSIを立ち上げます。
今回はVirtual Server for VPCを作成しましたが、同じくVPC環境を利用する場合はこちらを参考にVPCやサブネット、SSHなどの設定を行なってください。
IBM Cloudコンソール画面からナビゲーション・メニュー
→VPCインフラストラクチャ
→仮想サーバー・インスタンス
をクリックします。
インスタンスの設定を行います。
今回ロケーションは上記同様に「東京」にしています。
また、OSとスペックを選択します。今回私はCentOSを選んでおり、スペックは最小構成を選びました。
また、前提条件として作成したSSH鍵も選択します。
同様に前提条件として作成したVPCやサブネットを選択します。
全ての設定が完了したら、右側の仮想サーバーの作成
をクリックします。
サーバーが立ち上がると以下のような概要画面が表示されます。
下にスクロールしネットワーク・インターフェース欄の鉛筆マーク
をクリックし、浮動 IP(Floating IP)を取得します。
Linux エージェントのデプロイ
ターミナルを開き、IBM Cloudにログインします。ログインはCLIを使用したワンタイム・パスコードを利用すると便利です。
右上のプロフィールアイコンをクリックし、CLIとAPIにログイン
をクリックしますと、以下のログインCLIが表示されます。
IBM Cloud CLIをコピーしコマンド入力にてログインを行います。
また、リージョンも4.jp-tok
を選択します。
API エンドポイント: https://cloud.ibm.com
認証中です...
OK
ターゲットのアカウント XXX (xxxxxxxxxx) <-> xxxxxx
リージョンを選択します (または Enter キーを押してスキップします):
1. au-syd
2. in-che
3. jp-osa
4. jp-tok
5. kr-seo
6. eu-de
7. eu-es
8. eu-gb
9. ca-tor
10. us-south
11. us-south-test
12. us-east
13. br-sao
数値を入力してください> 4
ターゲットのリージョン jp-tok
API エンドポイント: https://cloud.ibm.com
Region: jp-tok
ユーザー: xxxxxx@ibm.com
アカウント: XXX (xxxxxxxxxx) <-> xxxxxx
リソース・グループ: リソース・グループがターゲットになっていません。'ibmcloud target -g RESOURCE_GROUP' を使用してください
CF API エンドポイント:
組織:
スペース:
先ほど取得したFloting IPを使ってpingを飛ばし、サーバーが問題なく稼働しているか確認します。
ping xxx.xxx.xxx.xxx
PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx): 56 data bytes
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=0 ttl=49 time=23.752 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=49 time=9.283 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=49 time=18.704 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=3 ttl=49 time=12.145 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=4 ttl=49 time=9.096 ms
sshを使ってサーバーにアクセスします。
ssh root@xxx.xxx.xxx.xxx
上記で作成したIBM Cloud Monitoringのインスタンスを開き、メニューからモニタリング・ソース
に入ります。
Linuxカテゴリーを選択し、記載されているコマンドを入力していきます。
コンソール記載の手順の場合、カーネル・ヘッダーがインストールされていないなどの要因でうまくインストールされない場合があります。その際にはコンソール記載の手順が前後する可能性があります。
そのため、検証される際には以下の手順の方がスムーズかと思います。
まず、モニタリング・エージェントをインストールするときには、エージェントでカーネル・ヘッダー・ファイルが使用されるため、まずはカーネル・ヘッダーをインストールする必要があります。
以下ディストリビューションに沿ったコマンドを入力します。
yum -y install kernel-devel-$(uname -r)
apt-get -y install linux-headers-$(uname -r)
その後、エージェントインストールのコマンドを入力します。
エンドポイントはプライベートかパブリックかによってコマンドが異なります。必要に応じて入力してください。
(今回はプライベートにしています。)
curl -sL https://ibm.biz/install-sysdig-agent | sudo bash -s -- --access_key MONITORING_ACCESS_KEY --collector COLLECTOR_ENDPOINT --collector_port 6443 --tags TAG_DATA --additional_conf 'sysdig_capture_enabled: false\nfeature:\n mode: monitor_light'
* Detecting operating system
Package dkms-3.0.12-1.el7.noarch already installed and latest version
* Installing Sysdig public key
* Installing Sysdig repository
* Installing kernel headers
Package kernel-devel-3.10.0-1160.102.1.el7.x86_64 already installed and latest version
* Installing Sysdig Agent
Creating symlink /var/lib/dkms/draios-agent/12.20.0/source -> /usr/src/draios-agent-12.20.0
Sign command: /lib/modules/3.10.0-1160.102.1.el7.x86_64/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Building module:
Cleaning build area...
make -j2 KERNELRELEASE=3.10.0-1160.102.1.el7.x86_64 -C /lib/modules/3.10.0-1160.102.1.el7.x86_64/build M=/var/lib/dkms/draios-agent/12.20.0/build....
Signing module /var/lib/dkms/draios-agent/12.20.0/build/sysdigcloud-probe.ko
Cleaning build area...
sysdigcloud-probe.ko.xz:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.10.0-1160.102.1.el7.x86_64/extra/
Adding any weak-modules
depmod....
WARNING: Could not find cacert.pem file for python3 certifi package.
Some appchecks might not work correctly. To correct this,
run 'pip install certifi' and then re-run the installer.
HMAC : (Module_Integrity) : Pass
SHA1 : (KAT_Digest) : Pass
SHA2 : (KAT_Digest) : Pass
SHA3 : (KAT_Digest) : Pass
TDES : (KAT_Cipher) : Pass
AES_GCM : (KAT_Cipher) : Pass
AES_ECB_Decrypt : (KAT_Cipher) : Pass
RSA : (KAT_Signature) : RNG : (Continuous_RNG_Test) : Pass
Pass
ECDSA : (PCT_Signature) : Pass
ECDSA : (PCT_Signature) : Pass
DSA : (PCT_Signature) : Pass
TLS13_KDF_EXTRACT : (KAT_KDF) : Pass
TLS13_KDF_EXPAND : (KAT_KDF) : Pass
TLS12_PRF : (KAT_KDF) : Pass
PBKDF2 : (KAT_KDF) : Pass
SSHKDF : (KAT_KDF) : Pass
KBKDF : (KAT_KDF) : Pass
HKDF : (KAT_KDF) : Pass
SSKDF : (KAT_KDF) : Pass
X963KDF : (KAT_KDF) : Pass
X942KDF : (KAT_KDF) : Pass
HASH : (DRBG) : Pass
CTR : (DRBG) : Pass
HMAC : (DRBG) : Pass
DH : (KAT_KA) : Pass
ECDH : (KAT_KA) : Pass
RSA_Encrypt : (KAT_AsymmetricCipher) : Pass
RSA_Decrypt : (KAT_AsymmetricCipher) : Pass
RSA_Decrypt : (KAT_AsymmetricCipher) : Pass
name: OpenSSL FIPS Provider
version: 3.0.8
build: 3.0.8
INSTALL PASSED
* Setting access key
* Setting collector endpoint
* Setting collector port
* Setting connection security
* Adding additional configuration to dragent.yaml
Restarting dragent (via systemctl): [ OK ]
これでエージェントのインストールは完了です。
IBM Cloud Monitoringダッシュボードで確認
上端のダッシュボードを開く
をクリックし、IBM Cloud Monitoringダッシュボードに入ります。
Monitoringエージェントが導入され、監視できる項目がグループ化されていることがわかります。
主に監視できる項目は以下となります。
- statsd
- sysdig_agent
- sysdig_datastream
- sysdig_fs
- sysdig_host
- sysdig_license
- sysdig_program
- sysdig_ts
各カテゴリーは以下のようなメトリックを確認することができます。
- 1. statsd
- StatsDに関するメトリック
- 2. sysdig_agent
- appcheck、Prometheus、StatsD統合から受信した時系列の合計数 等
- 3. sysdig_datastream
- メトリック・ストリーミングを使用してエクスポートされた時系列の数 等
- 4. sysdig_fs
- ファイルシステムの利用可能なスペース、ファイルシステムの空き領域の割合、ファイルシステムの使用済みスペース、使用中のすべてのファイルシステムの合計値 等
- 5. sysdig_host
- コンテナやホストの数、CPU使用率、ファイルを開く際/アクセス時のエラーの数、1秒あたりのファイル読み取り操作の数、ファイルの読み取り時間、システムコールエラー数 等
- 6. sysdig_license
- エージェント(ホストやworker node)から繋げている台数(デフォルト上限は1,000台)
- 7. sysdig_program
- 各プログラムの CPU コア使用率、使用されているファイル記述子の割合、ファイルを開く/アクセス時のエラー数、ファイルの書き込み時間、サーバー (アウトバウンド) 接続の数、受信ネットワークリクエストの数 等
- 8. sysdig_ts
- 20 分間隔でユーザーについて取り込まれた時系列の数、10 秒のウィンドウごとにユーザーについて取り込まれた時系列の数 等
モニタリング・エージェントの削除
もしエージェントが不要になった場合、デプロイ時同様にコマンドを入力することで簡単に削除することができます。
なお、削除の際も同様にディストリビューションによってコマンドが異なります。
sudo yum erase draios-agent
sudo yum erase draios-agent