こんにちは。開発部のtorigakiです。
今回はWeave Scopeを簡単に検証した話をさせていただければと思います。
弊社では様々なサービスでDockerを使っています。通常Dockerホストでどのようなコンテナが稼働しているのか確認するためには、サーバーにSSHログインしてDockerコマンドを実行して確認するという流れになるかと思います。 Dockerホストの台数が少ないうちはこの運用でも把握できるかと思いますが、台数が多くなるにつれ、この運用がつらくなってくることが想定されます。 また、1台のホストに多くのコンテナが稼働しているとどのコンテナがどういった連携をしているのか把握していくのも困難になってくるかと思います。
そこで、Dockerコンテナをサーバーにログインすることなく、GUIで簡単に管理することができるツールがないかなと探してみたところ、Weave Scopeという素晴らしいツールがありましたので、さっそく導入してみました。 今回はこのWeave Scopeについて簡単に解説していきたいと思います。
Weave Scopeとは?
Weave Scope は、DockerとKubernetesのための可視化・監視ツールです。アプリだけでなく、インフラ全体を確認することができ、コンテナを直感的かつリアルタイムに把握、制御できます。
インストール方法
インストールは非常に簡単で、scopeファイルをダウンロードして実行するだけで導入できます。
sudo curl -L git.io/scope -o /usr/local/bin/scope sudo chmod a+x /usr/local/bin/scope scope launch
Weave Scope画面のアクセス方法
ブラウザから http://サーバーアドレス:4040にアクセスするとコンテナ状況を把握できる画面が表示されます。 4040ポートを使用するので、実行環境によっては、ファイアーウォール等の許可設定を入れる必要があります。
実際に使ってみた
弊社では社内WikiでGrowiを使っているのですが、このGrowiは1台のホストで複数のDockerコンテナが連携して稼働しているので、今回このGrowiサーバーに導入してみることにしました。
Weave Scope画面
コンテナ連携
こちらがブラウザでアクセスしたWeave Scope画面です。 コンテナ同志の連携が視覚的にわかりやすく表示されています。 このサーバーにはGrowiとtogelackが共存しているのですが、それぞれのコンテナが個別に連携していることも一目で把握できます。
プロセス連携
画面上部の「processes」をクリックすると、各コンテナのプロセスレベルの連携が表示されます。
この画面を見ることで、プロセスレベルの連携も把握できるので、より詳細にシステムを把握することができます。
テーブル表示
画面上部の「Table」をクリックすると、コンテナごとの一覧表示をすることができます。
CPUやメモリでソートすることもできますので、高負荷コンテナをすぐに把握することもできます。 また、「processes」をクリックすることで、プロセスレベルで一覧表示することも可能です。
リソース表示
画面上部の「Resources」をクリックすると、ホスト、コンテナ、プロセスごとのリソース利用状況がどれくらい使用されているのかわかりやすく表示されます。
画面上部の「CPU」をクリックするとCPUごとの利用状況も把握することができます。
コンテナごとの詳細情報
表示されているコンテナ名をクリックすることで、クリックしたコンテナの詳細情報が表示されます。 コンテキストメトリック、タグ、およびメタデータやCPU、メモリの使用状況を把握することができます。
コンテナのコンソール出力とコンテナへのログイン
上記で表示した詳細ウィンドウのモニタのアイコンをクリックすると、コンテナのコンソール出力をブラウザ上に表示できます。 そして、「>_」 のアイコンをクリックすると、コンテナにログインしてコマンドを実行することができます。
わざわざホストサーバーにSSHログインしなくても、このブラウザ画面だけでコンテナの状況を把握することが可能になります。 ターミナルを使わずとも運用できるのは非常にありがたいですね。
まとめ
今回は、DockerをGUIでわかりやすく管理できるWeave Scopeについて簡単に解説しました。 このツールはDockerだけでなくKubernetesも視覚的に管理できるので、今後はKubernetesでの導入もやっていけたらと思っております。
弊社では引き続きエンジニア・デザイナーを募集中ですので、ご興味のある方は下からご応募いただければと思います。