Jitera Self-Hostedは、セキュリティ関連のユーザーおよびシステム操作の監査ログを記録します。ログはSidekiqポッド内のファイルにJSON形式で書き込まれ、FluentBitを介して外部ストレージに転送できます。Documentation Index
Fetch the complete documentation index at: https://docs.jitera.ai/llms.txt
Use this file to discover all available pages before exploring further.
監査ログの有効化
監査ログはデフォルトで無効です。Helm値で有効にします:ログ構造
各監査ログエントリは、Sidekiqポッド内の/var/log/audit.logに書き込まれるJSONオブジェクトです:
必須フィールド
すべてのログエントリに含まれるフィールド:| フィールド | 型 | 説明 |
|---|---|---|
event | String | 事前定義されたリストからのイベントタイプ |
user_id | String | イベントをトリガーしたユーザーID |
timestamp | DateTime | ISO 8601タイムスタンプ |
オプションフィールド
| フィールド | 型 | 説明 |
|---|---|---|
severity | String | ログの重大度(AUDIT_ENTERPRISE) |
ip | String | クライアントIPアドレス、内部呼び出しの場合はInternal Service |
browser | String | ブラウザ名、またはInternal Service |
browser_version | String | ブラウザバージョン |
os | String | オペレーティングシステム |
host | String | リクエストホスト/ドメイン |
project_id | String | イベントに関連するプロジェクトID |
details | String | 追加のイベント詳細 |
resources | String (JSON) | 影響を受けるリソース(シリアライズされたJSON) |
イベントタイプ
システムは以下のイベントカテゴリを追跡します。イベントの完全なリストはアプリケーションのソースコードで定義されており、リリースごとに更新される場合があります。認証とユーザー
| イベント | 説明 |
|---|---|
signup | ユーザー登録 |
login | ユーザーログイン |
logout | ユーザーログアウト |
sso | シングルサインオンログイン |
sso_signup | SSO登録 |
user_settings_updated | ユーザー設定変更 |
user_password_changed | パスワード変更 |
user_mfa_enabled | MFA有効化 |
user_mfa_disabled | MFA無効化 |
user_mfa_verified | MFA検証成功 |
user_mfa_failed | MFA検証失敗 |
インテグレーション
| イベント | 説明 |
|---|---|
git_connected | Gitリポジトリ接続 |
gitlab_connected | GitLab接続 |
gitlab_conn_failed | GitLab接続失敗 |
プロジェクト操作
| イベント | 説明 |
|---|---|
project_created | プロジェクト作成 |
project_deleted | プロジェクト削除 |
project_member_invited | プロジェクトメンバー招待 |
project_member_added | プロジェクトメンバー追加 |
git_project_imported | Gitからプロジェクトインポート |
trigger_project_sync | プロジェクト同期トリガー |
trigger_project_import_page_explore | プロジェクトインポートページ探索 |
update_project_import_page | プロジェクトインポートページ更新 |
configure_project_plugin | プロジェクトプラグイン設定 |
コード生成と同期
| イベント | 説明 |
|---|---|
code_to_erd_trigger | コードからERDへの変換 |
code_to_natural_language_trigger | コードから自然言語への変換 |
trigger_frontend_code_generate | フロントエンドコード生成 |
trigger_api_sync | API同期トリガー |
trigger_business_logic_sync | ビジネスロジック同期トリガー |
ビジネスロジックとAPI
| イベント | 説明 |
|---|---|
business_logic_to_api | ビジネスロジックをAPIに追加 |
remove_business_logic_from_api | ビジネスロジックをAPIから削除 |
create_new_api | 新規API作成 |
ドキュメント
| イベント | 説明 |
|---|---|
docs_created | ドキュメント作成 |
docs_updated | ドキュメント更新 |
docs_deleted | ドキュメント削除 |
docs_moved | ドキュメント移動 |
docs_renamed | ドキュメント名前変更 |
docs_folder_deleted | ドキュメントフォルダ削除 |
export_document | ドキュメントエクスポート |
export_folder | フォルダエクスポート |
import_documents | ドキュメントインポート |
triggered_translate | 翻訳トリガー |
ui_ux_document_trigger | UI/UXドキュメントトリガー |
trigger_document_sync | ドキュメント同期トリガー |
チケットとテスト
| イベント | 説明 |
|---|---|
create_ticket | チケット作成 |
update_ticket_use_cases | チケットユースケース更新 |
trigger_ticket_sync | チケット同期トリガー |
generate_test_cases | テストケース生成 |
regenerate_test_cases | テストケース再生成 |
generate_project_import_page_test_cases | プロジェクトインポートページテストケース生成 |
delete_test | テスト削除 |
UI/スクリーン
| イベント | 説明 |
|---|---|
create_screen_preview | スクリーンプレビュー作成 |
create_screen | スクリーン作成 |
データ管理
| イベント | 説明 |
|---|---|
create_table_definition | テーブル定義作成 |
bulk_delete_block | ブロック一括削除 |
組織管理
| イベント | 説明 |
|---|---|
deactive_organization | 組織無効化 |
organization_member_invited | 組織メンバー招待 |
organization_member_added | 組織メンバー追加 |
organization_member_removed | 組織メンバー削除 |
organization_owner_changed | 組織オーナー変更 |
organization_integration_configured | 組織インテグレーション設定 |
チーム管理
| イベント | 説明 |
|---|---|
team_created | チーム作成 |
team_updated | チーム更新 |
team_deleted | チーム削除 |
team_member_invited | チームメンバー招待 |
team_member_added | チームメンバー追加 |
team_member_removed | チームメンバー削除 |
add_members_to_team | チームにメンバー追加 |
LLMとAI
| イベント | 説明 |
|---|---|
create_llm | LLM作成 |
update_llm | LLM更新 |
delete_llm | LLM削除 |
organization_llm_available_updated | 組織LLM利用可能状況更新 |
default_company_model_changed | デフォルト企業モデル変更 |
エージェントとMCP
| イベント | 説明 |
|---|---|
agent_created | エージェント作成 |
agent_updated | エージェント更新 |
agent_deleted | エージェント削除 |
agent_model_changed | エージェントモデル変更 |
agent_context_updated | エージェントコンテキスト更新 |
thread_created | スレッド作成 |
thread_message_sent | スレッドメッセージ送信 |
subthread_created | サブスレッド作成 |
mcp_server_configured | MCPサーバー設定 |
mcp_tool_registered | MCPツール登録 |
mcp_tool_unregistered | MCPツール登録解除 |
アプリ
| イベント | 説明 |
|---|---|
apps_installed | アプリインストール |
apps_uninstalled | アプリアンインストール |
apps_configured | アプリ設定 |
apps_trigger_register | アプリトリガー登録 |
APIキーと機能管理
| イベント | 説明 |
|---|---|
create_api_key | APIキー作成 |
revoke_api_key | APIキー失効 |
update_feature_toggle | 機能トグル更新 |
export_token_usage_csv | トークン使用量CSVエクスポート |
課金とサブスクリプション
| イベント | 説明 |
|---|---|
subscription_checkout | サブスクリプションチェックアウト |
subscription_upgraded | サブスクリプションアップグレード |
subscription_canceled | サブスクリプションキャンセル |
subscription_payment_failed | サブスクリプション支払い失敗 |
seat_quantity_changed | シート数変更 |
billing_portal_accessed | 請求ポータルアクセス |
plan_config_created | プラン設定作成 |
plan_config_updated | プラン設定更新 |
管理者操作
| イベント | 説明 |
|---|---|
admin_organization_activate | 管理者による組織有効化 |
admin_organization_deactivate | 管理者による組織無効化 |
admin_organization_create | 管理者による組織作成 |
admin_user_activate | 管理者によるユーザー有効化 |
admin_user_deactivate | 管理者によるユーザー無効化 |
admin_user_delete | 管理者によるユーザー削除 |
ログ転送
FluentBitはSidekiqポッドから監査ログを収集し、1つ以上の外部宛先に転送します。すべての出力先はデフォルトで無効です。AWS S3
AWS S3出力は
storage.secret.awsで設定されたAWS認証情報と同じものを使用します。ログは/%Y/%m/%d.logのキー形式で保存されます。Azure Data Explorer
監査ログを Azure Data Explorer (ADX / Kusto) に転送するには、FluentBit サイドカーが起動する前に Azure 側のリソースが揃っている必要があります。Helm の値だけを設定した状態ではデプロイは正常に見え、サイドカーも動作し、取り込みリクエストも成功しますが、以下のすべての前提条件が満たされるまでテーブルに有効な行は記録されません。前提条件
この出力を有効化する前に、Azure 側で以下を作成しておく必要があります。下記のコマンドはあくまで例です — 各リソースの正式な手順については、リンク先の Azure ドキュメントを参照してください。Kusto クラスター
Azure Data Explorer クラスターをプロビジョニングします。Azure Data Explorer クラスターの作成 を参照してください。
JSON 取り込みマッピング
FluentBit から到着するペイロードから各列をどう抽出するかを Kusto に伝える取り込みマッピングを作成します。マッピング名は
AZURE_INGESTION_MAPPING_REFERENCE で使用します。ストリーミング取り込みの有効化(推奨)
ストリーミング取り込みを有効化しないと、行は数分単位でバッチ取り込みされます。監査をほぼリアルタイムで可視化するには、テーブルにポリシーを設定します。ストリーミング取り込みはクラスターレベルでも有効化する必要があります。Streaming ingestion policy を参照してください。
Entra ID アプリケーションとデータベースロール
Entra ID のアプリ登録とクライアントシークレットを作成し、そのサービスプリンシパルにデータベースの 正式な手順は データベースのセキュリティロール管理 を参照してください。
Ingestor ロールを付与します。Database User では不十分です — Kusto の取り込みパスは Ingestor を要求します。Kusto クラスターでパブリックネットワークアクセスを制限している場合、Jitera を実行している Kubernetes クラスターのエグレス IP(通常は NAT Gateway のパブリック IP)をクラスターの許可元に追加してください。
Helm 値
前提条件が揃ったら、出力を有効化します。環境変数名
AZURE_TANANT_ID は Helm チャートにおける既知のスペルミスです。チャートが修正されるまで、values ファイルではこの綴りのまま設定してください。AZURE_TENANT_ID を使うと FluentBit 出力が未設定になり、取り込みが警告なしに無効化されます。取り込みの確認
デプロイ後、行が到着していることを確認します。timestamp だけ値が入って他のすべての列が空の場合、取り込みマッピングが $.log.<field> ではなく $.<field> のパスを使っています — 上記の JSON 取り込みマッピング 手順の修正済みパスでマッピングを作り直してください。
FluentBit 側で診断する場合:
Azure Blob Storage
複数の出力先を同時に有効にできます。例えば、監査ログをAWS S3とAzure Data Explorerの両方に同時に転送できます。
仕組み
- イベントトリガー - GraphQLミューテーションまたはコントローラーが監査ログヘルパーを呼び出す
- ジョブキューイング - イベントがSidekiqバックグラウンドジョブにキューイングされる
- 処理 - ジョブがリクエストコンテキストからユーザーエージェントとIP情報を抽出する
- バリデーション - 必須フィールド(
event、user_id、timestamp)が検証される - ログ記録 - Sidekiqポッドの
/var/log/audit.logにJSONエントリが追加される - 収集 - FluentBitサイドカーがログファイルを監視する
- フィルタリング - FluentBitが動的タグ付けのために
eventフィールドを抽出する - 転送 - 設定された出力先にログが転送される
ログエントリの例
ユーザーサインアップイベント
ユーザーサインアップイベント
コード生成イベント
コード生成イベント
内部サービスイベント
内部サービスイベント

