はじめに
IBM CloudのIKSに対してSysdigを導入することで簡単に監視環境を実装できます。
本記事ではブラウザ上からSysdigのインスタンスを作成し、Kuberneteクラスターに対するエージェントの導入をコマンドラインから実施しました。
環境情報
$ ibmcloud version C:\Program version 1.4.0+...
Sysdig Agent version 11.3.0
インスタンスの作成
IBM Cloudのカタログサービスにて「sysdig」と入れると「IBM Cloud Monitoring with Sysdig」が選定できます。
その中でプランを選択しますが、今回は無料で利用できるライトプラン(最大 1K の時系列 (Prometheus、JMX、appchecks、StatsD を含む)、50 個のコンテナー、および 1M 回の API 呼び出し)でオーダー。
デフォルトの設定で以下のように注文しました。
ロケーション: ダラス
プラン: ライト
サービス名: IBM Cloud Monitoring with Sysdig-sk
リソース・グループ: default
そうするとサービスにてSysdigが確認できます。
エージェントの追加
サービスよりSysdigを選択すると、モニタリングの画面で「ソースの追加」が可能です。
これをクリックするとKubernetes/OpenShift/Linux/Dockerでエージェントをインストールする手順が表示されます。
Kuberneteの場合は
curl -sL https://ibm.biz/install-sysdig-k8s-agent | bash -s -- -a XX -c XX-ac 'sysdig_capture_enabled: false'
が表示されます。
同コマンドを実行するとインストール用のbashスクリプトが実行され、その中でyamlのインストールやKuberneteオブジェクトの適用が行われます。ちなみに確認できるコマンド例には既に「SYSDIG_ACCESS_KEY」と「COLLECTOR_ENDPOINT」が入っています。
コマンドの実行をすると諸々のリソースが作成されて
* Detecting operating system * Downloading Sysdig cluster role yaml ... * Deploying the sysdig agent daemonset.apps/sysdig-agent created
ibm-observeという名前空間にデーモンセットに紐づくポッドが生成されています。
$ kubectl get ds -n ibm-observe NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE sysdig-agent 1 1 0 1 0 <none> X
ちなみにデフォルトの設定ではコンテナの展開に大きなリソースをリクエストしているので場合によってはリソース不足によるコンテナ作成失敗が起きます。
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 22s (x2 over 22s) default-scheduler 0/1 nodes are available: 1 Insufficient cpu.
そうなった場合はNodeのリソースを増強するか、DaemonSetで要求するリソース量を変更して対応します。
リソースを確認
Podが展開されると、IBM Cloudのサービスよりダッシュボードを開くことでGUIでリソース使用状況が可視化されます。
また、Prometheus同様に「PromQL Query」を入れて欲しい値を検索することも可能です。
終わりに
IKSクラスターのリソースをカタログからオーダーしたSysdigで監視する流れについて解説しました。
curlコマンドでインストールする際にjqコマンド等が必要なので事前準備は必要ですが、手順自体はシンプルなので監視環境を簡単に実装したい場合には便利なサービスです。
以上、ご参考になれば幸いです。