0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxカーネルの「中」をのぞき見る:eBPFツールキット「BCC」入門

0
Posted at

1. BCC(BPF Compiler Collection)とは?

BCCは、Linuxカーネルの動的トレーシングを可能にするテクノロジー eBPF を、誰もが簡単に扱えるようにするためのツールセットです。

通常、カーネルの挙動を詳細に調べるにはカーネルモジュールの開発(C言語での高度な実装と再起動のリスク)が必要でしたが、BCCを使えばPythonやLuaといった馴染みのある言語で、安全かつリアルタイムにシステムを解析できます。


2. BCCで何ができるのか?(3つの主要機能)

BCCには大きく分けて2つの側面があります。

  • 完成済みの強力なツール群: インストールしたその日から、ディスクI/Oの遅延調査、ネットワークパケットの監視、プロセス実行の追跡などが可能です。
  • カスタムツール開発フレームワーク: カーネル内でのデータ収集(C言語)と、ユーザー空間での集計・表示(Python)を組み合わせて、独自のモニタリングツールを自作できます。

3. 代表的な付属ツールの紹介

BCCをインストールすると、以下のような強力なコマンドがすぐに使えます。

ツール名 用途
execsnoop 新しく実行されたプロセスをリアルタイムで表示。不審なプログラムの挙動確認に最適。
opensnoop どのプロセスが、どのファイルを開いたかを追跡。設定ファイルの読み込みエラー調査などに。
tcptop プロセスごとのネットワーク送信・受信量をリアルタイム表示。通信のボトルネックを特定。
biolatency ディスクI/Oのレイテンシをヒストグラムで可視化。ストレージの遅延を直感的に把握。

4. セキュリティ・運用の現場での活用シーン

  • パフォーマンス解析: 「なぜかWebサーバーが遅い」といった際、カーネルレベルでシステムコールや関数呼び出しの時間を計測し、真の原因を特定します。
  • セキュリティ・インシデント対応: 攻撃者が仕込んだバックドアがどのポートを開き、どのファイルにアクセスしているかを、痕跡を残さず(フックして)監視できます。

5. まとめ

BCCは、Linuxシステムのブラックボックス化を防ぐための「最強の虫眼鏡」です。オブザーバビリティ(可観測性)が重視される現代のインフラ構築において、エンジニアが習得しておくべき必須ツールの一つと言えるでしょう。

BCCは動作にカーネルヘッダーなどが必要ですが、最近ではより軽量な libbpfbpftrace への移行も進んでいます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?