ブログ

eBPFとSysdigによるコンテナーの可観測性について

eBPFとSysdigによるコンテナーの可観測性について

本文の内容は、2019年2月28日にSysdigのEric Carterが投稿したブログ(https://sysdig.com/blog/introducing-container-observability-with-ebpf-and-sysdig/)を元に日本語に翻訳・再構成した内容となっております。

本日、Sysdig モニタリング、セキュリティ、およびフォレンジックソリューションを使用して、コンテナの可観測性を拡張するためにeBPF方式で計測する仕組みを正式に追加したことを発表しました。eBPF(extended Berkeley Packet Filter)は、Linuxネイティブのカーネル内仮想マシンで、アプリケーションのパフォーマンスとイベントの可観測性と分析のための安全でかつ、オーバーヘッドの少ないトレースを可能にします。eBPFという名前のみで理解しないようにしてください。eBPFは、ネットワークパケット情報以上のものを提供します(詳細は後述)。 Sysdigは現在、eBPFを活用して、ホストやネットワークのデータからコンテナプロセス、リソースの使用状況など、クラウドネイティブ環境およびコンテナ環境の高度な可視性を提供します。 既によくご存知とおもいますが、現在、SysdigはeBPFを利用して、コンテナの可観測性を実現する方法をさらに拡張しています。

なぜ、eBPF 可観測性なのか?

Sysdig Gianluca Borelloが本日発表した彼のeBPFブログシリーズの一部で説明しているように、コンテナの可観測性のための代替計測モデルとしてeBPFを使用する理由がいくつかあります。 大きな1つの理由は、コンテナに最適化されたオペレーティングシステムの出現です。 Google Cloud PlatformのContainer-Optimized OS(COS)やRed Hatが率いるProject Atomic HostのようなコンテナランタイムとKubernetesコンポーネントをプレインストールするこれらのソリューションは、運用上のセキュリティと規模を強化するために最小限の仕組みで設計された不変のインフラストラクチャアプローチを特徴とします。 さらに、これらのソリューションでは、カーネルモジュールをまったく使用できません。 では、どのようにしてこれらのプラットフォームをモニタリングおよび保護するための詳細なデータを導き出すというSysdigのマジックを実現できるのでしょうか?

答えは、eBPFです。

eBPFは単なるLinuxの一部なので、カーネルモジュールを必要とせずに、システムコールからメトリックとデータを抽出するためのネイティブエントリポイントを提供します(Sysdigが常に行ってきたことですが)。 eBPFでは、小さなプログラムをカーネル内で素早く安全に実行します。 データはユーザースペースで収集、集約、そしてバックエンドに渡されて格納される事で、ユーザーが利用できるようになります。

ここでeBPFの歴史を少しお話しましょう

eBPFはBerkeley Packet Filter(BPF)の「Next-generation」です。 BPFは、Lawrence Berkeley LaboratoryでSteve McCanneとVan Jacobsonによる作成時点の1992年に遡ります。 BPFは、基本的にUnixオペレーティングシステムでのネットワークパケットフィルタリング用に設計されました。 eBPFは2014年にLinuxで生まれました - 最初はカーネルバージョン3.18に含まれていました。 eBPFはBPFの概念を新しいレベルに引き上げ、より効率的なアプローチを採用し、さらに新しい世代のハードウェアを活用しました。最も重要なことは、カーネル全体にフックがあるため、eBPFはパケットフィルタリングをはるかに超えるユースケースを可能にします。これには、トレース、パフォーマンス分析、デバッグ、セキュリティなどが含まれます。

今日、Linuxとクラウドのコミュニティでは、eBPFについて多くのエキサイティングなトピックがあります。 業界の支持者はその機能についていくつかの素晴らしいことを言っています。以下は、一例です。

SysdigでeBPFを利用する利点

Linuxの世界では、eBPFが大好きです。SysdigもeBPFが大好きです。 eBPFとの協力を通じて、Sysdigは上流過程のプロジェクトで貢献してきました。私たちのeBPFとの活動の集大成は、eBPFプログラムの機能が、SysdigのオープンソースであるSysdigFalcoソリューション、そして、Sysdig MonitorSysdig Secureで使用している統合エージェントに実装されました。これらのeBPFプログラムは現在、ContainerVisionの一部となっています。これは、カーネルシステムコールを利用してコンテナに関する洞察を提供する、当社の計測アプローチです。 システムコールはログと同じくらい豊富なデータソースですが、リアルタイムです。 クラウドネイティブプラットフォームの新世代にとって、eBPFは現在このディープなデータソースへのタッピング方式です。

「クラシックな」カーネルモジュールアプローチは、Sysdigのオープンソースと商用製品で活用されていて、これからも継続的に計測のアプローチとしておおいに活用されてくでしょう。eBPFは、Sysdigのソリューションのカバー範囲を広げる新しい選択肢への一歩と考えることができます。クラウドが取り残される事はありません!

これから何が期待できるのでしょうか? 計測モデルに関係なく、コンテナベースの環境で作業している場合は、Sysdigを使用して、コンテナとKubernetesインフラストラクチャを詳細に把握できます。 コンテナとオーケストレーションが複雑になり、より、速くなって行くことを私たちは知っています。最新の環境におけるパフォーマンスモニタリング、セキュリティ、脆弱性管理、トラブルシューティング、およびフォレンジック作業をより効率的にしていきます。 私たちは、言いたい。Sysdigは、ユーザがより多くの視野を得ること、より速く解決すること、そしてお金を節約することを手助けすることができます(そしておそらくもっとぐっすりと眠れるでしょう!)

結論

私たちは、すべてのLinuxリリースでeBPF機能と共に進歩することを楽しみにしています。 可観測性ためにeBPFへのリンクを実現することで、より多くの企業がコンテナ上でアプリケーションを正常に構築および実行し、不意に現れる問題に対して、迅速に対応、解決できるようになります。 eBPFの魅力的なテクノロジとそれを使った活動について詳しく知るには、Gianlucaのブログ(Sysdig and Falco now powered by eBPF )をご覧ください。

さらなる情報は?来週、SysdigのプロダクトマネージャーであるNarayan Iyengarによるライブウェビナー「Using eBPF for Container Monitoring, Security, and Forensics」にぜひご参加ください。

最近の投稿

カテゴリー

アーカイブ

ご質問・お問い合わせはこちら

top