本文の内容は、2017年1月26日にApurva Daveが投稿したブログ(https://sysdig.com/blog/csysdig-explained-visually/)を元に日本語に翻訳・再構成した内容となっております。
CsysdigはオープンソースのLinux用htopライクな対話型トラブルシューティングツールで、コンテナの監視とデバッグのために設計されています。
Docker、Rkt、LXCコンテナ、プロセス、スレッド、リソース使用状況(CPU、メモリ、ネット、ファイルIOなど)、基本的にシステムコールから取得できるものすべてを理解します。また、コンテナのアクティビティを、ポッド、デプロイメント、サービスなど、関連するKubernetesやMesosの概念にマッピングすることも可能です。ネットワークアクティビティだけでなく、システム全体のためのwiresharkのようなもので、使用するコンテナオーケストレーションツールを理解するものだと考えてください。
Csysdigは、ライブデータや過去の “キャプチャー”(tcpdump pcapファイルに似ている)で動作し、オフホストや事後的にコンテナのトラブルシューティングを可能にします。
これは、sysdigと同じカーネル・インスツルメンテーションを利用します(詳しくは、「dtrace vs. strace vs. sysdig – a technical discussion」をお読みください)。
最後に、CsysdigはDockerコンテナに対して、kill、stop、open shell、inspection logsなどのアクションを実行することができます。
Csysdig:良い点を見せてください
“ htop explained visually” に触発されて、Csysdigの概要を簡単にまとめてみました。例として、Containersビューを分解してみましょう。ビューとは、データをフォーマットする特定の方法と、データに適用されるフィルターにすぎません。Csysdigには様々なビューがあります。
Containersビューでは、各コンテナがホスト上で何をしているのか、高レベルの内訳を見ることができます。Csysdigは、コンテナごとにCPU、プロセス、スレッド、メモリ、ファイル、ネットワーク情報を集約しています。矢印キーで行間を移動し、Enterキーでドリルダウンすることができる。これにより、例えば、(このビューでは)特定のコンテナのデータのみに焦点を当てたり、他のビューではプロセスなどに焦点を当てるようにフィルタを変更することができる。下部のファンクションキーには、さらに詳しく調べるための一般的なアクションが表示されています。
また、右上にはフィルターが表示されています。これは、データを自分に関連するものに限定するためのものです。Csysdigの中を移動すると(ドリルダウンしたり、ビューを変更したり)、フィルターが変更されるのがわかります。もしあなたが既にsysdigコマンドラインツールを使っているなら、このフィルタリング言語には馴染みがあるかもしれません。もしまだsysdigを使っていないなら、Csysdigはこのツールをより強力に使いこなすために、フィルタリング言語を学ぶ簡単な方法として役立ちます。
ビューは、Chiselsと呼ばれるsysdigの概念に基づいています。ChiselsはLuaのプラグインで、データを集約してフォーマットし、あなたが望むものを正確に見ることができます。実際にビューを構築してCsysdigに追加することができるので、これを知っておくことは重要です!
Csysdigのトラブルシューティング・ビューをすべて見る
F2キー(Macターミナルを使用している場合はFn+F2)を押すと、既存のCsysdigのすべてのビューのメニューと各ビューの定義が表示されます。それでは見てみましょう:
上下のキーを使ってビューを循環させることができます。見てわかるように、多くのビューがあります。
- コンテナ
- コンテナエラー
- Kubernetesベースのビュー
- Mesos ベースのビュー
- ネットワークアクティビティ(コンテナ、ホスト、プロセス別)
- ファイルアクティビティ
- プロセス アクティビティ / CPU / メモリ / ファイル
- スレッド
- ログ アクティビティ
- ユーザーアクティビティ
- トレース
- スペクトログラム
例えば、コンテナ表示では、次のことができます。
- コンテナを Kill (k) または Pause (z) する。
- コンテナを検査する(i)
- ログの表示(l)
- シェルを起動する (b)
スペクトログラムを見る
スペクトログラムは、一度に多くの情報を視覚化する素晴らしい方法です。ヒートマップに近いもので、スペクトログラムは時間ベースの情報(ファイルアクセス、システムコール、ネットワーク時間など)をボリューム感(コールの多寡)と同時に表示します。問題が発生している場所をすばやく評価するのに適しています。さらに……ここではドリルダウンが可能です。マウスでスペクトログラムの中から注目したい時間帯を選択すると、Csysdigがそこをドリルダウンしてくれます。ぜひお試しください。また、スペクトログラムについてもっと読みたい方は、50 Shades of System Callsをチェックしてみてください。
cSysdigスペクトログラムの説明
もちろん、Csysdigで見られること、できることはまだまだたくさんあります。例えば、Sysdig Monitor(商用モニタリング・ツール)を使えば、パフォーマンス・アラートに基づいてCsysdigシステムのキャプチャーを(複数のホストにわたってでも)起動させることができます。
このビジュアルツアーが、より深く掘り下げるきっかけになれば幸いです。今すぐcsysdigをダウンロードし、インストールすることが最も簡単な方法です。