mcpField
T
tenzir-docs

tenzir-docs

github.com/tenzirデータ・データベース3136 回インストール1 日前に更新
リポジトリ

tenzir-docs について

セキュリティチーム向けデータパイプラインエンジン Tenzir のドキュメントを案内するスキルです。質問に応じてガイド、リファレンス、例を示し、回答前に該当ドキュメントを確認するよう促します。

主な機能

  1. 01質問に合うドキュメントへの案内
  2. 02オペレーターと関数の参照先案内
  3. 03インテグレーション設定の検索
  4. 04TQL の概念と構文の説明
  5. 05回答で文書内の例を活用

活用シーン

  1. 01Tenzir のデータ処理手順の確認
  2. 02TQL のオペレーターや関数構文の確認
  3. 03インテグレーション用パイプライン例の検索

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tenzir/skills --skill tenzir-docs

インストール後、Claude Code で/tenzir-docsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

explanations.md
guides.md
explanations/
configuration.md
deployment.md
enrichment.md
faqs.md
glossary.md
language.md
node.md
packages.md
pipeline.md
platform.md
secrets.md
guides/
ai-workbench.md
collecting.md
guides/ai-workbench/
use-agent-skills.md
guides/analytics/
aggregate-event-streams.md
collect-metrics.md
guides/basic-usage/
manage-a-pipeline.md
run-pipelines.md
guides/collecting/
fetch-via-http-and-apis.md
get-data-from-the-network.md
read-and-watch-files.md
read-from-data-stores.md
read-from-message-brokers.md
guides/contribution/
code-of-conduct.md
documentation.md
security.md
workflow.md
guides/development/
build-from-source.md

詳細

Tenzir ドキュメントマップ

セキュリティチーム向けのローコードデータパイプラインソリューション

Tenzir は、セキュリティチーム向けのデータパイプラインエンジンです。パイプラインを実行して、セキュリティデータを収集、解析、変換、ルーティングします。ノードをオンプレミスまたはクラウドにデプロイし、Tenzir Platform で管理します。

このスキルの使い方

質問の種類に応じて、ドキュメントを参照してください。

質問の種類参照先
「〜するには」などのタスクガイド — タスク別にまとめられた手順
オペレーターまたは関数の構文オペレーター索引または関数索引を参照し、続いて該当するページを確認します
インテグレーションの設定(Splunk、Kafka、S3 など)インテグレーション — 製品ごとの設定とパイプラインの例
概念(ノード、パイプライン、デプロイ)解説 — アーキテクチャと設計
基礎からの学習チュートリアル — ガイド付きレッスン
TQL 言語のルール言語、式、ステートメント

回答する前に、必ず関連するページを読んでください。構文を独自に考案するのではなく、ドキュメントにある TQL の例を優先してください。

回答パターン

オペレーターの構文に関する質問 — 「where はどのように動作しますか?」 → whereを読み、構文を説明して、ドキュメントの TQL の例を示します。

インテグレーションに関する質問 — 「Splunk にデータを送信するには?」 → Splunkを読み、そのページにあるパイプラインの例を提示します。

タスクに関する質問 — 「syslog を解析するには?」 → Parse delimited textと read_syslogを読みます。ガイドの方法と オペレーターのリファレンスを組み合わせてください。

ガイド

特定の目標を達成するための、実践的なステップごとの解説です。 何かを実行しようとしている場合は、ここから始めてください。

はじめに
クイックスタート

ログ、アラート、柔軟性のないツールに困っていませんか?セキュリティデータを自在に扱うためのエンジン、Tenzir をご紹介します。ほんの数分で、完全に管理しながら、自分の思いどおりにデータを取り込み、変換、拡充できるようになります。ここでは、次のことを実現します。

Tenzir v6 への移行

このガイドでは、従来の TQL パイプラインを Tenzir v6 に移行する方法を説明します。ほとんどのパイプラインでは、アップグレードは小規模です。多くのパイプラインはそのまま動作し、ほかのパイプラインもソースとシンクに対する局所的な更新をいくつか行うだけで済みます。以降のセクションでは、対応が必要なパイプラインを見つけ、データフローの意図を変えずに更新する方法を説明します。

インストール

このガイドでは、パイプラインをローカルで実行したり、永続ノードをデプロイしたりするために、Tenzir CLI をインストールする方法を説明します。パッケージには 2 つのバイナリが含まれています。

アカウントを作成する

Tenzir Platform は、パイプラインとノードを管理するためのウェブインターフェースです。利用を開始するには、アカウントを作成してください。

基本的な使い方
パイプラインを実行する

パイプラインは、プラットフォーム経由、tenzir バイナリを使ったコマンドライン、または設定ファイルを使ったコードとして実行できます。

パイプラインを管理する

このガイドでは、アプリまたは API を通じてパイプラインのライフサイクルを制御する方法を説明します。パイプラインは次の状態へ遷移します。

セットアップ
ノードのセットアップ

Tenzir Node は、パイプラインを実行するための手段です。軽量なサーバーアプリケーションで、オンプレミスまたはクラウドにデプロイできます。

ノードをプロビジョニングする

ノードのプロビジョニングとは、ワークスペース内のプラットフォームにノードを作成することです。プロビジョニング後、認証トークンを含む設定ファイルをダウンロードし、すぐにノードをデプロイできます。

ノードのサイズを決める

このガイドでは、Tenzir ノードに必要な CPU、RAM、ストレージリソースを判断する方法を説明します。以下の計算ツールを使って、デプロイシナリオに基づく具体的な見積もりを確認してください。

ノードをデプロイする

ノードのデプロイとは、サポート対象のランタイムのいずれかでノードを起動することです。主な選択肢は、Docker を使ったコンテナー化デプロイと、amd64 および arm64 アーキテクチャで動作する静的バイナリを使ったネイティブデプロイです。

ノードを設定する

デフォルトのノード設定は、一般的なほとんどのシナリオに合わせて最適化されています。ただし、特定の要件に合わせて設定を微調整できます。

TLS を設定する

Tenzir は、ネットワーク接続を暗号化する Transport Layer Security(TLS)をサポートしています。tenzir.yaml で TLS 設定を一元的に行い、対応するすべてのオペレーターに適用することも、必要に応じてオペレーターごとに上書きすることもできます。

API を起動する

ノードには、CRUD スタイルのパイプライン管理を行う REST API があります。デフォルトでは、この API に外部からアクセスすることはできません。既存のノードとプラットフォーム間の接続を通じて、プラットフォームのみが内部的にアクセスできます。API に直接アクセスできるようにするには、API を公開する組み込みウェブサーバーを設定する必要があります。

パフォーマンスを調整する

このガイドでは、ノードのパフォーマンスに影響する設定オプションを説明します。需要スケジューリング、メモリ使用量、スループットの設定を調整する方法を学べます。

プラットフォームのセットアップ

Tenzir Platform は、Tenzir Nodes のフリート管理コントロールプレーンとして機能します。ウェブインターフェースを使ってデータを調査し、パイプラインを作成し、ダッシュボードを構築できます。

AWS にデプロイする

このガイドでは、CloudFormation を使って Tenzir Platform Sovereign Edition を AWS にデプロイする手順を説明します。このテンプレートにより、必要なすべてのインフラストラクチャコンポーネントのセットアップが自動化されます。

シナリオを選ぶ

プラットフォームのデプロイシナリオの例をいくつか紹介します。ニーズに最も合ったものを選んでください。

リバースプロキシを設定する

このガイドでは、Tenzir Platform 用のリバースプロキシを設定する方法を説明します。プロキシは TLS を終端し、次の 4 つのエントリーポイントにトラフィックをルーティングします。

内部サービスを設定する

このガイドでは、UI、Gateway、Platform API の 3 つの内部 Tenzir サービスを設定する方法を説明します。認証、接続性、機能設定を制御する環境変数を設定します。

ID プロバイダーを設定する

ID プロバイダー(IdP)は、Tenzir Platform の認証を処理します。Tenzir UI の Login ボタンをクリックすると、システムは選択した ID プロバイダーにリダイレクトし、ID を証明する署名付きトークンを作成します。

データベースを設定する

PostgreSQL データベースには、プラットフォームの内部状態が保存されます。

ブロブストレージを設定する

ブロブストレージサービスは、プラットフォームとノード間でファイルをやり取りするために使用されます。ノードからのデータのダウンロードだけでなく、ブラウザーからプラットフォームへのファイルのアップロードも可能にします。

シークレットストアを設定する

Tenzir Platform は、各ワークスペースにシークレットストアを提供します。そのワークスペースに接続されたすべての Tenzir Nodes が、保存されたシークレットにアクセスできます。CLI またはウェブインターフェースを使ってシークレットを管理できます。代わりに、外部のシークレットストアを使用することもできます。

プラットフォームを起動する

このガイドでは、Docker Compose を使用して Tenzir Platform を起動する方法を説明します。すべてのサービスを設定した後に、この手順を実施してください。

プラットフォームの管理
組織を管理する

このガイドでは、Tenzir Platform で組織を作成、設定、削除する方法を説明します。ウェブと CLI の両方を使ってこれらのタスクを実行する方法を学びます。

組織メンバーを管理する

このガイドでは、組織へのメンバーの招待、既存メンバーの管理、ロールベースの権限モデルについて説明します。これらのタスクにウェブと CLI の両方を使う方法を学びます。

組織のワークスペースを管理する

このガイドでは、組織に属するワークスペースを作成、表示、削除する方法を説明します。個人用ワークスペースと組織ワークスペースの違いや、共有ワークスペースのアクセス制御の仕組みを学びます。

ワークスペースを設定する

プラットフォームのワークスペースでは、ノード、シークレット、ダッシュボードを論理的にグループ化できます。

ダッシュボードを設定する

静的ワークスペース用のダッシュボードを事前に定義できます。これにより、ユーザーはワークスペースにアクセスしたときに、すぐに使える可視化を利用できます。

一時ノードを使用する

一時ノードは、一時的なデプロイや自動スケーリングを行うデプロイに最適です。事前に手動でプロビジョニングする必要のない一時的なノードで、プラットフォームとの接続が終了するとワークスペースから削除されます。

AI ワークベンチ

AI エージェントを導入し、Tenzir のエージェントスキルを設定して、独自の AI ワークベンチを構築できます。セットアップが完了したら、これを使って TQL パイプラインの作成、OCSF スキーマの理解、パーサーの生成、データマッピングの作成を行えます。

エージェントスキルを使用する

このガイドでは、Tenzir のエージェントスキルをインストールして管理する方法を説明します。利用可能なスキル、スキルをグローバルまたはプロジェクト単位で追加する方法、個々のスキルをインストールする方法、最新の状態に保つ方法を学びます。

データを扱う
データの収集

このガイドでは、TQL におけるデータ収集の概要を説明します。さまざまなソースからデータを取り込む方法について学びます。

ファイルの読み取りと監視

このガイドでは、from_file 演算子を使ってファイルを読み取り、ディレクトリを監視する方法を説明します。個々のファイルの読み取り、ディレクトリの一括処理、リアルタイムのファイル監視の設定方法を学びます。

HTTP と API 経由で取得する

このガイドでは、from_http および to_http 演算子を使って HTTP API と連携する方法を説明します。GET リクエストの実行、データの送信、認証の処理、大規模な結果セットに対するページネーションの実装方法を学びます。

メッセージブローカーから読み取る

このガイドでは、TQL を使ってメッセージブローカーからイベントを受信する方法を説明します。Apache Kafka(Amazon MSK を含む)、Amazon Kinesis Data Streams、NATS JetStream、AMQP ベースのブローカー(RabbitMQ など)、Amazon SQS、Google Cloud Pub/Sub のトピックやキューをサブスクライブする方法を学びます。

データストアから読み取る

このガイドでは、TQL を使って外部データストアから読み取る方法を説明します。テーブル全体の読み取り、フィルターの SQL へのプッシュダウン、メタデータの確認、MySQL から新しい行をストリーミングする方法を学びます。

ネットワークからデータを取得する

このガイドでは、TQL を使ってネットワークソースから直接データを受信する方法を説明します。TCP および UDP ソケットで受信データを待ち受ける方法や、ネットワークインターフェイスから未加工のパケットをキャプチャする方法を学びます。

解析
区切りテキストを解析する

このガイドでは、テキストストリームを解析して構造化イベントにする方法を説明します。バイトストリームを改行またはカスタム区切り文字で分割する方法と、JSON Lines、CSV、TSV、キーと値のペア、Syslog、CEF など、行ベースの形式を解析する方法を学びます。

バイナリデータを解析する

このガイドでは、バイナリデータ形式を解析して構造化イベントにする方法を説明します。Parquet や Feather などの列指向形式、PCAP 形式のパケットキャプチャ、Tenzir 独自の BITZ 形式、および圧縮データの扱い方を学びます。

文字列フィールドを解析する

このガイドでは、TQL の解析関数を使って文字列フィールドから構造化データを抽出する方法を説明します。JSON、YAML、XML、キーと値のペア、区切りデータ、タイムスタンプ、Syslog、CEF、LEEF、Windows イベントログなどのログ形式を解析する方法を学びます。カスタム形式には、柔軟なパターンマッチングが可能な Grok パターンを使用できます。

変換
データをフィルタリングして選択する

フィルタリングと選択は、データストリームを扱ううえで基本となる操作です。このガイドでは、条件に基づいてイベントをフィルタリングし、データから特定のフィールドを選択する方法を説明します。

値を変換する

値の変換は、データ処理の基本です。このガイドでは、異なるデータ型への変換、基本的な計算の実行、イベント内の単純な値の操作方法を説明します。

文字列を操作する

文字列の操作は、テキストデータのクリーニング、書式設定、変換に欠かせません。このガイドでは、単純な大文字・小文字の変換から、複雑なパターンマッチングやエンコード処理まで、TQL の包括的な文字列関数を紹介します。

時刻を扱う

時刻はデータ分析の基本です。ログの分析、イベントの追跡、システムの監視などでは、タイムスタンプの解析、期間の計算、日付の書式設定が必要です。このガイドでは、TQL で時刻の値を扱う方法を説明します。

リストを整形する

リスト(配列)には、順序付けられた値の並びが含まれます。このガイドでは、要素へのアクセス、並べ替えやスライス、値の変換、データ構造の結合など、リストの扱い方を説明します。

レコードを整形する

レコード(オブジェクト)には、キーと値のペアが含まれます。このガイドでは、フィールドへのアクセス、キーの抽出、断片の結合、値の変換など、レコードの扱い方を説明します。

複雑なデータを再構成する

実際のデータがフラットであることはほとんどありません。ネストされた構造、オブジェクトの配列、深い階層構造の情報が含まれています。このガイドでは、分析のニーズに合わせて複雑なデータ構造を再構成する高度な手法を説明します。

データ形式を変換する

データにはさまざまな形式があります。形式間の変換は、統合、エクスポート、相互運用に欠かせません。このガイドでは、TQL の出力関数を使って、JSON、CSV、YAML などの一般的な形式間でデータを変換する方法を説明します。

機密データをマスキングする

このガイドでは、IP アドレス、メールアドレス、アカウント識別子、認証情報などの機密フィールドをマスキングする方法を説明します。値を匿名化、ハッシュ化、伏字化、または一部だけ表示する場面や、TQL の関数を組み合わせて、各パターンをパイプライン全体に一貫して適用する方法を学びます。

正規化

このガイドでは、TQL におけるデータの正規化について概要を説明します。正規化では、生の不整合なデータを、分析、保存、共有に適した整然とした標準形式に変換します。

値をクリーンアップする

このガイドでは、スキーマにマッピングする前にデータの値をクリーンアップして正規化する方法を説明します。null のプレースホルダーの処理、センチネル値の正規化、型の修正、デフォルト値の指定について学びます。

ASIM にマッピングする

このガイドでは、TQL でイベントを Microsoft Sentinel Advanced Security Information Model(ASIM)のレコードにマッピングする方法を説明します。ASIM スキーマの選択、スキーマと製品のメタデータの設定、ロール接頭辞付きフィールドのマッピング、イベント結果の正規化、マッピングされていないソースフィールドの保持について学びます。

CIM にマッピングする

このガイドでは、TQL でイベントを Splunk Common Information Model(CIM)のフィールドにマッピングする方法を説明します。CIM データモデルとデータセットの選択、データセットタグの適用、正規化されたフィールドの設定、Splunk HEC メタデータの設定、ソース固有の詳細の保持について学びます。

ECS にマッピングする

このガイドでは、TQL でイベントを Elastic Common Schema(ECS)にマッピングする方法を説明します。必須の ECS フィールドの設定、イベントの分類値の選択、一般的なネットワークフィールドセットのマッピング、ソース固有の詳細の保持、Elasticsearch 互換の宛先向けのレコードの準備について学びます。

OCSF にマッピングする

このガイドでは、TQL で OCSF マッピングオペレーターを記述する方法を説明します。属性グループごとのマッピングの整理、マッピングされていないフィールドの処理、出力の検証について学びます。このガイドでは、対象とする OCSF イベントクラスとプロファイルをすでに特定していることを前提とします。

UDM にマッピングする

このガイドでは、TQL でイベントを Google SecOps Unified Data Model(UDM)のレコードにマッピングする方法を説明します。UDM イベントタイプの選択、メタデータの設定、参加者の UDM 名詞としてのモデル化、列挙値の変換、マッピングされていないソースフィールドの保持について学びます。

エンリッチメント
ルックアップテーブルを使用する

このガイドでは、Tenzir でルックアップテーブルを使用して参照データを保存し、OCSF イベントに適用する方法を説明します。ユーザー ID、ホスト名、IP アドレス、サブネット、ファイルハッシュ、クラウドリソース ID など、イベントの値をキーとするデータがある場合にルックアップテーブルを使用します。

アセットインベントリでエンリッチする

このガイドでは、ルックアップテーブルのアセットインベントリデータを使用して OCSF イベントをエンリッチする方法を説明します。CMDB のエクスポート、エンドポイントインベントリ、DHCP リース、クラウドインベントリ、または OCSF イベントに含めるネットワークセグメントの所有者データがある場合に、このパターンを使用します。

脅威インテリジェンスでエンリッチする

このガイドでは、ルックアップテーブルの脅威インテリジェンスを使用して OCSF イベントをエンリッチする方法を説明します。外部フィードから侵害指標、レピュテーションスコア、マルウェア名、キャンペーンのコンテキスト、または OSINT を取り込む場合に、このパターンを使用します。

AI でイベントをエンリッチする

このガイドでは、ai::prompt を使用して、AI が生成した要約、分類、注釈で OCSF イベントをエンリッチする方法を説明します。

Sigma ルールを実行する

このガイドでは、sigma オペレーターを使用して、解析済みのセキュリティテレメトリに Sigma ルールを適用する方法を説明します。このパターンを使用すると、Tenzir パイプラインを離れることなく、Windows Event Logs やその他の正規化されたレコードを Sigma の検知結果に変換できます。

最適化
データをスライスしてサンプリングする

データストリームを扱う際は、パイプラインを流れるイベントを制御する必要が生じることがよくあります。このガイドでは、TQL オペレーターを使用してイベントストリームをスライスし、データをサンプリングし、イベントの順序を制御する方法を説明します。

イベントの重複を排除する

deduplicate 演算子を使用すると、パイプライン内の重複イベントを強力に排除できます。

ルーティング
宛先に送信する

このガイドでは、TQL の出力演算子を使用して、さまざまな宛先にデータを送信する方法を説明します。メッセージの宛先、データストア、ファイル出力のパターン、式ベースのシリアル化について学びます。

データをサーバーとして公開する

このガイドでは、HTTP サーバーを起動して、パイプラインのデータを外部の利用者が利用できるようにする方法を説明します。シリアル化されたパイプライン出力を HTTP クライアントにストリーミングする方法、ワイヤーフォーマットの選択方法、接続数の上限と TLS の設定方法について学びます。

ストリームを分割・統合する

このガイドでは、publish 演算子と subscribe 演算子を使用してパイプラインを接続する方法を説明します。イベントストリームを並列処理のために分割する方法と、複数のソースを単一のパイプラインに統合する方法を学びます。

サブパイプラインに分岐する

このガイドでは、each と group を使用してイベントストリームをサブパイプラインに分岐する方法を説明します。イベントごとにサブパイプラインを生成する場合、キーごとにサブパイプラインを 1 つ維持する場合、また、これらの演算子が fork、parallel、load_balance などの固定ファンアウト演算子とどう異なるかを学びます。

パイプラインの負荷を分散する

このガイドでは、load_balance 演算子を使用して複数の宛先にイベントを分散する方法を説明します。高可用性とスループットを実現するため、イベントを複数のエンドポイントにルーティングする方法を学びます。

分析
イベントストリームを集計する

このガイドでは、summarize と window を使用してイベントストリームを集計する方法を説明します。ストリーミングデータで、イベントのカウントやグループ化、統計量の計算、期間を限定したイベント時間ベースの検出を行う方法を学びます。

メトリクスを収集する

Tenzir は、ノードのリソース使用量、パイプラインの状態、ランタイムのパフォーマンスに関するメトリクスを記録します。

エッジストレージ
ノードにインポートする

データのインポート(または取り込み)は、import 出力演算子で終わるパイプラインを実行することで行えます。アプリまたは API でパイプラインを管理する場合、すべてのパイプライン演算子はノード内で実行されます。CLI を使用する場合は、少なくとも import 演算子がノード内で実行されます。

ノードからエクスポートする

データのエクスポート(またはクエリ)は、export 入力演算子で始まるパイプラインを実行することで行えます。アプリまたは API でパイプラインを管理する場合、すべてのパイプライン演算子はノード内で実行されます。CLI を使用する場合は、少なくとも export 演算子がノード内で実行されます。

利用可能なスキーマを表示する

パイプラインを記述するときは、フィールド名を参照することがよくあります。データの構造がわからない場合は、利用可能なスキーマ、つまりトップレベルのイベントを表すレコード型を確認できます。

保存済みデータを変換する

このガイドでは、ノードにすでに保存されているデータを変換する方法を説明します。コンパクションの適用、ストレージクォータの管理、遡及的なパイプラインの実行について学びます。

ビルド
パッケージ
パッケージをインストールする

パッケージを使用すると、演算子、パイプライン、コンテキスト、サンプルを柔軟に組み合わせ、デプロイ可能な単一のユニットにまとめられます。

パッケージを作成する

このガイドでは、パッケージをゼロから作成する方法を説明します。ディレクトリ構造の設定、マニフェストの記述、再利用可能な演算子の計画、デプロイ可能なパイプラインの追加、実行可能なサンプルの追加について学びます。

テストパッケージ

このガイドでは、パッケージにテストを追加する方法を説明します。テストファイルの作成方法、インライン入力の使用方法、テストハーネスの実行方法を学べます。

オペレーターの追加

このガイドでは、パッケージ用のユーザー定義オペレーター(UDO)を作成する方法を説明します。位置引数と名前付き引数を使用したオペレーターの定義方法と、Test Framework を使ったテスト方法を学べます。

パイプラインの追加

このガイドでは、パッケージにデプロイ可能なパイプラインを追加する方法を説明します。パイプラインのフロントマターオプションと、パイプラインとオペレーターを使い分ける場面について学べます。

コンテキストの追加

このガイドでは、パッケージにエンリッチメントコンテキストを追加する方法を説明します。マニフェストでのコンテキストの定義方法、データの登録方法、コンテキストのやり取りをテストする方法を学べます。

入力の設定

このガイドでは、入力を使ってパッケージを設定可能にする方法を説明します。入力変数の定義方法、テンプレート構文の使用方法、インストール時に値を指定する方法を学べます。

変更履歴の管理

このガイドでは、tenzir-ship を使って変更履歴のエントリーを管理し、リリースを公開する方法を説明します。最初のエントリーの追加から GitHub でのリリース公開まで、一連のワークフローを学べます。

パッケージの公開

このガイドでは、パッケージを公開する方法を説明します。Tenzir Community Library への貢献方法と、自動テストを備えた独自のパッケージリポジトリのセットアップ方法を学べます。

テスト
テストの実行

このガイドでは、tenzir-test フレームワークを使って既存の統合テストを実行する方法を説明します。テストスイートの実行方法、出力の詳細度の制御方法、特定のテストの選択方法、不安定なテストへの対処方法、複数プロジェクトのセットアップの実行方法を学べます。

テストの作成

このガイドでは、tenzir-test フレームワークを使って統合テストを作成する方法を説明します。スタンドアロンのリポジトリをセットアップし、テストシナリオを作成し、パイプラインが想定どおりに動作することを検証するための参照出力を記録します。すでにテストがあり、実行方法を知りたい場合は、「テストの実行」ガイドを参照してください。

フィクスチャの実行

このガイドでは、テストを実行せずにスタンドアロンモードでフィクスチャを起動する方法を説明します。--fixture CLI オプションを使って管理対象サービスを起動し、その環境変数を確認して、適切に終了する方法を学べます。

フィクスチャの作成

このガイドでは、フィクスチャを作成してテストハーネスに組み込み、テストから使用する方法を説明します。実行例として HTTP エコーサーバーを作成し、その後、スイート間でフィクスチャを共有する方法、不足している依存関係に対処する方法、コンテナを管理する方法、構造化オプションを追加する方法、フィクスチャアサーションでテストの動作を検証する方法を学びます。

カスタムランナーの追加

ランナーは、検出されたファイルをどのように実行するかを tenzir-test に指示します。このガイドでは、サンプルプロジェクトの XXD ランナーを登録し、xxd で 16 進数表現をダンプしてバイナリアーティファクトを比較する方法を説明します。

プロジェクトフックの設定

このガイドでは、テストの近くに配置するセットアップやクリーンアップのタスク用に、tenzir-test のプロジェクトフックを設定する方法を説明します。テスト検出前にローカルの Tenzir バイナリを選択する方法、プロジェクト単位の環境変数を設定する方法、失敗したテストのアーティファクトを収集する方法を学べます。

貢献
貢献
行動規範
Git と GitHub のワークフロー

以下の図は、ブランチモデルを視覚的に示しています。

ドキュメント

Tenzir ドキュメントのソースコードは https://github.com/tenzir/docs にあります。サイトのフレームワークには Astro と Starlight を使用しています。

セキュリティポリシー

私たちはセキュリティを重要な課題として捉えています。お客様とオープンソースコミュニティに安全な環境を提供し、維持することを目指しています。

開発
シンタックスハイライトの設定

このガイドでは、エディターで TQL のシンタックスハイライトと言語検出を設定する方法を説明します。.tql ファイルの色分けと基本的な言語サポートを利用できるようになります。

ソースからビルドする

Tenzir は、ビルドシステムとして CMake を使用し、C++23 コンパイラーを必要とします。

ノードプラグインを作成する

このガイドでは、C++ プラグインを作成してカスタムオペレーター、フォーマット、コネクターで Tenzir を拡張する方法を説明します。実装には次の手順が必要です。

チュートリアル

一連の手順に沿って進める、学習を目的としたレッスンです。 Tenzir を始める場合は、ここから始めてください。

基礎
慣用的な TQL を学ぶ

このチュートリアルでは、明確で効率的、かつ保守しやすい TQL の書き方を学びます。基本的な TQL の構文とオペレーターをすでに理解していることを前提に、経験豊富な TQL 開発者がよくあるパターンにどのように取り組むかを紹介します。

パッケージを作成する

このチュートリアルでは、パッケージにパイプライン、オペレーター、コンテキスト、例をまとめる方法を学びます。悪意のある証明書を検出する SSL ブラックリスト用のパッケージを作成します。その後、Tenzir Library からパッケージをインストールしたり、コードとしてデプロイしたりできます。

データを OCSF にマッピングする

このチュートリアルでは、イベントを Open Cybersecurity Schema Framework(OCSF)にマッピングする方法を学びます。ネットワークモニターのイベント例を使って、Tenzir パイプラインで OCSF 準拠のイベントに変換する方法を説明します。

分析
チャートでデータをプロットする

このチュートリアルでは、パイプラインを使ってデータをチャートとしてプロットする方法を学びます。

解説

より高いレベルの概念を全体像から説明します。 特定のトピックへの理解を深めるには、ここから始めてください。

アーキテクチャ
デプロイ

このページでは、階層化された設計によってデータ処理と管理を分離する Tenzir のデプロイアーキテクチャについて説明します。次の 3 つの主要な抽象化が連携して機能します。

パイプライン

Tenzir のパイプラインは、データフローを表すオペレーターの連鎖です。オペレーターは、データを生成、変換、または消費する基本的な構成要素です。Unix や Powershell のコマンドのように、あるコマンドの結果が次のコマンドに渡されるものと考えてください。

ノード

ノードは、パイプラインを管理して実行する稼働中のプロセスです。

プラットフォーム

プラットフォームは、ノード群の管理機能を提供します。API とウェブインターフェースを通じて、ユーザーとワークスペースの管理、外部 ID プロバイダー(IdP)による認証、パイプラインを利用したチャートで構成されるダッシュボードを提供します。

言語

Tenzir Query Language(TQL)は、非構造化バイトストリームと半構造化イベントを処理するために設計されたデータフロー言語です。

概念
設定

このページでは、Tenzir CLI と Node の設定方法を説明します。設定は優先順位順に並んだ次の 4 つのレイヤーを通じて適用されます。

シークレット

オペレーターでは、認証トークン、パスワード、URL などの機密情報をパラメーターとしてシークレットに指定できます。

エンリッチメント

エンリッチメントとは、イベントにコンテキストデータを追加することです。コンテキストを追加する目的は、より適切な判断を可能にすることです。たとえば、アラートのトリアージや誤検知の除外、国の情報を活用したログインの悪意ある判定、侵害の痕跡を示すインジケーターの観測のフラグ付けなどに役立ちます。

パッケージ

このページでは、パイプライン、オペレーター、コンテキスト、サンプルをデプロイ可能な単位にまとめるパッケージについて説明します。パッケージの設計原則と、各コンポーネントの連携方法を学べます。

ヘルプ
用語集

このページでは、Tenzir エコシステムの中心的な用語を定義します。

よくある質問

このページでは、Tenzir に関するよくある質問に回答します。

リファレンス

Tenzir の仕組みに関する詳細な技術情報です。 構成要素の詳細が必要な場合は、ここから始めてください。

言語(TQL)
型システム

このページでは、自動推論による強い型付けを提供する TQL の型システムについて説明します。明示的な宣言を必要とせずに型安全性を確保できます。主な特徴は次のとおりです。

式

式は TQL の計算の中核を成します。単純なリテラルから複雑な評価まで、さまざまなものがあります。

文

TQL プログラムは一連の文で構成されます。オペレーター文は、データストリームに対してさまざまな処理を実行します。各オペレーター文は、データを処理するモジュール単位として考えることができ、ほかのオペレーターと組み合わせて複雑なデータフローを作成できます。

プログラム

TQL プログラムは文を組み合わせて、実行可能なデータ処理ワークフローを完成させます。有効な TQL プログラムは、次のルールに従います。

オペレーター

Tenzir には、幅広い組み込みパイプラインオペレーターが用意されています。

関数

関数は式の中で使用され、位置引数や名前付き引数を受け取り、計算結果として値を生成します。

ツール
テストフレームワーク

tenzir-test ハーネスは、パイプライン、フィクスチャ、カスタムランナーの統合テストを検出して実行します。このページでは、概念、設定、CLI の詳細を確認できます。手順に沿った説明については、テストの実行、テストの作成、フィクスチャの作成、カスタムランナーの追加、プロジェクトフックの設定に関するガイドを参照してください。

Ship フレームワーク

tenzir-ship はリリースエンジニアリングを自動化し、より迅速なリリースを支援します。変更履歴の管理、リリースノートの生成、GitHub リリースの公開ができます。このページでは、概念、設定、CLI の詳細を確認できます。手順に沿った説明については、変更履歴の管理に関するガイドを参照してください。

認証
AWS 認証

Tenzir の AWS オペレーターは、AWS SDK のデフォルト認証情報チェーン、OIDC ウェブ ID トークン、または静的認証情報を使用して AWS に認証します。このページでは、from_s3、to_s3、from_sqs、to_sqs、from_amazon_cloudwatch、to_amazon_cloudwatch、from_kafka、to_kafka で共通して使われる aws_iam オプションについて説明します。

ノードのインデックス
プラットフォームのインデックス
インデックス

カテゴリ別のオペレーター一覧は、オペレーターインデックスを参照してください。

カテゴリ別の関数一覧は、関数インデックスを参照してください。

インテグレーション

セキュリティツール向けのすぐに使えるパッケージとネイティブコネクターです。 Tenzir と Splunk、Elastic、CrowdStrike などを接続するには、ここから始めてください。

クラウドプロバイダー
Amazon

Tenzir は Amazon Web Services(AWS)上でネイティブに動作し、セキュリティチームが日々利用する AWS サービスに接続します。マネージド Kafka を介してイベントをストリーミングし、S3 に保存して再生したり、CloudWatch または OCSF 形式の Amazon Security Lake に送信したり、SQS からメッセージを取得したりできます。すべて同じパイプライン言語から、AWS SDK を直接使用し、IAM とファーストクラスで統合して実行できます。

CloudWatch

Amazon CloudWatch は、AWS のモニタリングおよび可観測性サービスです。Tenzir は from_amazon_cloudwatch で CloudWatch イベントを読み取り、to_amazon_cloudwatch でイベントを書き込めます。

Kinesis

Amazon Kinesis Data Streams は、AWS のマネージドストリーミングデータサービスです。

MSK

Amazon Managed Streaming for Apache Kafka(Amazon MSK)は、AWS のマネージド Kafka サービスです。インフラストラクチャと運用を担うため、Kafka の専門家でなくても Kafka アプリケーションや Kafka Connect コネクターを簡単に実行できます。

S3

Amazon Simple Storage Service(S3)は、オブジェクトストレージサービスです。Tenzir はこれをローカルファイルシステムのように扱い、ファイルの読み書きができます。

Security Lake

Amazon Security Lake は、AWS のマネージドセキュリティデータレイクです。Open Cybersecurity Schema Framework(OCSF)形式でセキュリティデータを収集して保存します。

SQS

Amazon Simple Queue Service(SQS)は、AWS のマネージドメッセージキューです。マイクロサービス、分散システム、サーバーレスアプリケーションに対応しています。

Google
Cloud Logging

Google Cloud Logging は、Google のログ管理ソリューションです。Tenzir は Google Cloud Logging にイベントを送信できます。

Cloud Storage

Cloud Storage は、Google のオブジェクトストレージサービスです。Tenzir はこれをローカルファイルシステムのように扱い、ファイルの読み書きができます。

Cloud Pub/Sub

Google Cloud Pub/Sub は、BigQuery、データレイク、運用データベースへのストリーミング用にイベントを取り込みます。Tenzir はトピックにメッセージを送信するパブリッシャーとして、またサブスクリプションからメッセージを受信するサブスクライバーとして動作できます。

SecOps

Google Security Operations(SecOps)は、Google のセキュリティ運用プラットフォームです。Tenzir は Chronicle のインポート API を使用して、生ログ、UDM イベント、エンティティレコードを Google SecOps に送信できます。

Microsoft
Azure Blob Storage

Azure Blob Storage は、Azure のオブジェクトストレージサービスです。Tenzir はこれをローカルファイルシステムのように扱い、ファイルの読み書きができます。

Azure Event Hubs

Azure Event Hubs は、リアルタイムイベント取り込みサービスです。毎秒数百万件のイベントを受信して処理でき、Microsoft サービスから Tenzir へのデータストリーミング用に Kafka エンドポイントを提供します。

Defender

Microsoft Defender は、脅威に対する保護、検出、調査、対応を提供します。Defender には、Defender for Office 365、Defender for Endpoint、Defender for IoT、Defender for Identity、Defender for Cloud の複数のエディションがあります。すべての Defender 製品は、Azure Event Hubs を使用してリアルタイムでイベントを Tenzir にストリーミングできます。

Graph

Microsoft Graph は、Microsoft 365、Microsoft Entra ID、その他の Microsoft クラウドサービス向けの統合 API です。

Microsoft SQL Server

Microsoft SQL Server は、リレーショナルデータベース管理システムです。Tenzir は SQL Server および Azure SQL Database からイベントを読み取れます。

Sentinel & Log Analytics

Tenzir から Microsoft の Log Analytics プラットフォームにセキュリティログやイベントを送信します。Microsoft Sentinel で分析したり、Azure Monitor でアラートを作成したり、KQL でクエリを実行したりできます。Microsoft Graph から Microsoft Entra および Microsoft 365 のデータを読み込むには、代わりに Graph を使用してください。

Windows Event Logs

Windows Event Logs は、Windows 上のシステム、セキュリティ、アプリケーションのイベントを記録します。監視、トラブルシューティング、分析のために、これらを Tenzir に収集できます。

メッセージング
AMQP

Advanced Message Queuing Protocol(AMQP)は、メッセージ指向ミドルウェア向けのオープン標準です。プロデューサー、エクスチェンジ、キュー、コンシューマーがシステム間でメッセージをルーティングする方法を定義します。

Fluent Bit

Fluent Bit はオープンソースのオブザーバビリティパイプラインです。Tenzir は Fluent Bit を組み込み、from_fluent_bit でそのすべての入力を、to_fluent_bit で出力を利用できるようにします。

Kafka

Apache Kafka は分散型のオープンソースメッセージブローカーです。Tenzir の統合では、トピックへのパブリッシュ(メッセージの送信)と、トピックのサブスクライブ(メッセージの受信)ができます。

NATS

NATS は、サービス、エッジデプロイメント、クラウドネイティブアプリケーション向けのメッセージングシステムです。Tenzir は NATS JetStream と統合し、サブジェクトからメッセージを消費したり、サブジェクトにイベントをパブリッシュしたりできます。

ZeroMQ

ZeroMQ(0mq)は、さまざまなソケットタイプを備えた軽量メッセージングフレームワークです。Tenzir は、バインドモードと接続モードの両方で、PUB ソケットへの書き込みと SUB ソケットからの読み取りをサポートします。

プロトコル
File

Tenzir は、ローカルファイル、クラウドオブジェクトストレージ、標準入力、標準出力、標準エラーからの読み取りと、それらへの書き込みができます。

FTP

Tenzir は、ファイルのダウンロードとアップロードの両方で、File Transfer Protocol(FTP)をサポートします。from_ftp を使用してバイト列をダウンロードし、サブパイプラインで解析します。また、to_ftp を使用してサブパイプラインでイベントを出力し、その結果をアップロードします。

HTTP

HTTP はウェブ上のデータ交換の基盤です。Tenzir は HTTP 通信のあらゆる側面に対応するオペレーターを提供します。API からのデータ取得、Webhook へのイベント送信、パイプライン出力のクライアントへのストリーミング、受信リクエストの受け付けができます。

Network Interface

Tenzir は、ネットワークインターフェイスカード(NIC)からのパケットキャプチャをサポートします。

Syslog

Tenzir は、UDP や TCP などのトランスポートプロトコルからの Syslog メッセージの解析と、Syslog 形式のバイトストリームの出力をサポートします。これにより、ログの取り込みやエクスポートを行う Syslog ベースのシステムとシームレスに統合できます。

TCP

Transmission Control Protocol(TCP)は、IP 上で双方向のバイトストリームを提供します。Tenzir は TCP 通信の両側に対応するオペレーターを提供します。リモートエンドポイントへの接続、受信接続の受け付け、接続中のクライアントへのデータ提供ができます。

UDP

User Datagram Protocol(UDP)は、IP ネットワーク上でメッセージを送信するコネクションレスプロトコルです。Tenzir は、サーバーモード(リッスン)とクライアントモード(接続)の両方で、UDP ソケットへの書き込みと読み取りをサポートします。

データツール
ClickHouse

このページでは、Tenzir パイプラインの分析ストアとして ClickHouse を使用する方法を説明します。to_clickhouse で正規化されたセキュリティテレメトリーを ClickHouse に書き込み、from_clickhouse でテーブルや SQL クエリの結果を Tenzir に読み込みます。

Elasticsearch

Elasticsearch は、非構造化データ向けの検索およびオブザーバビリティスイートです。Tenzir は Elasticsearch にイベントを送信し、Elasticsearch 互換の Bulk API エンドポイントをエミュレートできます。

MySQL

MySQL は、Web アプリケーション、データウェアハウス、エンタープライズアプリケーションで広く使用されているオープンソースのリレーショナルデータベース管理システムです。

OpenSearch

OpenSearch は、非構造化データ向けの検索およびオブザーバビリティスイートです。Tenzir はイベントを OpenSearch に送信し、OpenSearch 互換の Bulk API エンドポイントをエミュレートできます。

Prometheus

Prometheus は、オープンソースの監視システムおよび時系列データベースです。Tenzir は、Prometheus、Grafana Mimir、Cortex、Thanos Receive、VictoriaMetrics など、Prometheus 互換の Remote Write レシーバーにメトリックイベントを送信できます。

Snowflake

Snowflake は、マルチクラウドのデータウェアハウスです。Tenzir は、パイプラインから Snowflake データベースにイベントを送信できます。

Splunk

Splunk は、ログの保存と処理を行う SIEM ソリューションです。Tenzir は HEC 経由で Splunk にデータを送信できます。

セキュリティツール
ArcSight

OpenText ArcSight は、SIEM およびログ管理のエコシステムです。Tenzir は、CEF、Syslog、Kafka、ArcSight Logger REST API などのオープンインターフェースを通じて ArcSight と連携します。

CrowdStrike

このページでは、Tenzir から CrowdStrike Falcon Next-Gen SIEM にイベントを送信する方法と、Amazon SQS および Amazon S3 を通じて CrowdStrike Falcon Data Replicator(FDR)のイベントを Tenzir に収集する方法を説明します。

Graylog

Graylog は、入力、ストリーム、処理パイプライン、インデックスセット、送信先、出力を通じてメッセージをルーティングするログ管理および SIEM プラットフォームです。Tenzir は Graylog から GELF ストリームを受信し、GELF を Graylog の入力に送信できます。また、バックエンドレベルのクエリが必要な場合は、OpenSearch または Elasticsearch の検索バックエンドにアクセスできます。

SentinelOne Data Lake

SentinelOne は、エンドポイント保護と脅威検出を提供するサイバーセキュリティプラットフォームです。SentinelOne Singularity Data Lake を使うと、セキュリティイベントを大規模に保存して分析できます。Tenzir は REST API を通じて SentinelOne Data Lake と双方向に連携します。

Suricata

Suricata は、脅威を検出するルールマッチングエンジンを備えたネットワークモニターです。Tenzir を使用して Suricata のログを取得、処理、保存できます。

Velociraptor

Velociraptor は、エンドポイントを調査するためのデジタルフォレンジックおよびインシデント対応(DFIR)ツールです。

Wazuh

Wazuh は、オープンソースの XDR および SIEM プラットフォームです。Tenzir は Syslog 経由で Wazuh にイベントを転送し、Wazuh indexer API から Wazuh のアラートをクエリできます。

Zeek

Zeek ネットワークモニターは、未加工のパケットを構造化ログに変換します。Tenzir は、継続的な取り込み、アドホックなログファイル処理、Zeek ログの生成など、さまざまな Zeek のユースケースに対応しています。

Zscaler

Zscaler の Nanolog Streaming Service(NSS)は、Zscaler のログを外部システムにストリーミングします。Zscaler の Cloud NSS を使用することも、オンプレミスに NSS サーバーをデプロイすることもでき、どちらの場合も Tenzir でログを受信できます。

コメント