Polycube ベースの eBPF キューブと対話するための Elastic Stack のカスタム ビート。
このフォルダーが次の場所にあることを確認します: ${GOPATH}/src/gitlab.com/astrid-repositories/cubebeat
mkdir -p ${GOPATH}/src/gitlab.com/astrid-repositories/
cd ${GOPATH}/src/gitlab.com/astrid-repositories
git clone https://gitlab.com/astrid-repositories/cubebeat.git
Cubebeat
のバイナリをビルドするには、以下のコマンドを実行します。これにより、同じディレクトリに cubebeat という名前のバイナリが生成されます。
chmod +x build.sh
build.sh
デバッグ出力を有効にしてCubebeat
実行するには、次のコマンドを実行します。
./cubebeat -c cubebeat.yml -e -d "*"
デバッグ出力を有効にせずにCubebeat
実行するには、次のコマンドを実行します。
./cubebeat -c cubebeat.yml -e
Cubebeat
引数として渡された設定ファイル (デフォルト: cubebeat.yml
) を読み取ります。
このファイルは、「構成ファイル形式」で説明されている一般的なビート構成を受け入れます。
さらに、次の例に示すように、特定の構成も受け入れます。
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
さまざまなオプションについては、次のセクションで説明します。
Cubebeat
入力用の外部設定ファイルをロードできるため、設定を複数の小さな設定ファイルに分割できます。
POSIX
ファイル権限を持つシステムでは、すべての設定ファイルが所有権とファイル権限チェックの対象になります。
詳細については、「 Beats プラットフォームリファレンス」の「構成ファイルの所有権とアクセス許可」を参照してください。
path
オプションは、 cubebeat.yml
のcubebeat.config.inputs
セクションで指定します。例えば:
cubebeat :
config.inputs :
path : config.d/*.yml
path
Glob で見つかった各ファイルには、1 つ以上の入力定義のリストが含まれている必要があります。
各外部構成ファイルの最初の行は、
- name
で始まる入力定義である必要があります。
例えば:
- name : synflood
enabled : true
period : 10s
polycube.api-url : " http://localhost:9000/polycube/v1/synflood/sf/stats/ "
- name : packetcapture
enabled : true
period : 5s
polycube.api-url : " http://localhost:9000/polycube/v1/packetcapture/pc "
2 つの実行中の入力が同じ
name
を持たないことが重要です。複数の同じname
を入力した場合は、最初の名前のみが受け入れられます。一方、他のものは破棄されます。
オプションenabled
がtrue
の場合、特定のキューブ入力は、 period
で定義された時間間隔ごとに特定の Polycube キューブと定期的に対話し、 polycube.api-url
で定義された URL に対して HTTP リクエストを作成します。
キューブに到達できない場合、またはデータの取得時にエラーが発生した場合でも、
cubebeat
動作を継続し、period
で定義された期間の経過後に新しい接続を試行します。
period
ごとに、特定のキューブ入力は、構成ファイルcubebeat.yml
で定義されているように、新しいElastic
イベントを出力に送信します。
変更があった場合に外部設定ファイルを動的に再ロードするようにcubebeat
設定できます。この機能は、外部構成ファイルとしてロードされる入力構成で使用できます。この機能を使用してメインのcubebeat.yml
構成ファイルをリロードすることはできません。
この機能を構成するには、構成の変更を監視するpath
(Glob) を指定します。 Glob によって検出されたファイルが変更されると、構成ファイルの変更に従って新しい入力が開始および停止されます。
この機能は、1 つのコンテナーを使用して、同じホスト上の他のコンテナーで実行されているサービスのログを追跡するコンテナー環境で特に役立ちます。
動的な構成の再読み込みを有効にするには、 cubebeat.config.inputs
セクションでpath
とreload
オプションを指定します。例えば:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
オプション | 説明 |
---|---|
path | 変更をチェックするファイルを定義する Glob。 |
reload.enabled | true に設定すると、動的構成のリロードが有効になります。 |
reload.period | ファイルの変更をチェックする頻度を指定します。 ファイルの変更時刻は秒単位で保存されることが多いため、 period 1s 未満に設定しないでください。period 1s 未満に設定すると、不要なオーバーヘッドが発生します。 |
POSIX
ファイル権限を持つシステムでは、すべての設定ファイルが所有権とファイル権限チェックの対象になります。
詳細については、「 Beats プラットフォームリファレンス」の「構成ファイルの所有権とアクセス許可」を参照してください。