Microsoft Sentinel との統合

最終公開日 : Sep 25, 2026
NetScaler Console から Microsoft Sentinel に次の分析データをエクスポートするために、NetScaler Console を Microsoft Sentinel と統合できます。
  • WAF 違反
  • Bot 違反
  • SSL 証明書のインサイト
  • ゲートウェイのインサイト
  • メトリックとイベント
  • NetScaler® Console の監査ログ
Microsoft Sentinel は、アプリケーション、サーバーなど、さまざまなソースからデータを収集する一元化されたデータ収集機能を提供します。管理者として、Microsoft Sentinel でインサイトや違反が報告された後、データを表示して意思決定を行うことができます。
統合を成功させるには、アクティブな Azure サブスクリプションがあることを確認し、各セクションの手順に従ってください。
Related information

Log Analytics ワークスペースを構成する

収集されたデータを保存および分析するには、Log Analytics ワークスペースが必要です。
  1. Azure にログインします。
  2. リソースの作成をクリックします。
    リソース(/en-us/netscaler-application-delivery-management-software/media/sentinel-resource-create.png)
  3. 検索バーに「log analytics workspace」と入力し、「Log Analytics Workspace」の下にある「作成」をクリックします。
    Log Analytics ワークスペース
  4. 「Log Analytics Workspace」のメインページで、「作成」をクリックします。
    ワークスペースの作成
  5. 「Log Analytics ワークスペースの作成」で:
    1. アクティブなサブスクリプションとリソースグループを選択します。
      注:
      権限がある場合は、「新規作成」をクリックしてリソースグループを追加することもできます。
    2. 任意の名前を指定します。
    3. リストから地域を選択します。
    4. 「確認 + 作成」をクリックします。
      ワークスペース作成の最終段階前
    5. 検証成功メッセージが表示されます。「作成」をクリックしてワークスペースをデプロイします。
      ワークスペースの作成
    6. デプロイの進行中メッセージが表示されます。デプロイ完了メッセージが表示されたら、「リソースに移動」をクリックします。
      ワークスペースリソース(/en-us/netscaler-application-delivery-management-software/media/sentinel-workspace-resource.png)
      ワークスペースが正常に作成されました。

Microsoft Entraアプリケーションを作成する

Log Analytics Workspaceに代わって通信するために、Azureサブスクリプションに関連付けられたEntraアプリケーションを作成する必要があります。アプリケーションを作成したら、Microsoft Sentinel Contributorロールでアクセス許可を付与する必要もあります。アプリケーションは、クライアントID、テナントID、クライアントシークレットなどの詳細も提供します。これらの詳細をメモしておくことをお勧めします。これらの詳細は、NetScaler Consoleでサブスクリプションを作成して統合プロセスを完了する際に必要になります。
  1. Azureポータルで、検索バーにキーワードを入力します。
  2. Microsoft Entra IDをクリックします。
    Entraアプリ(/en-us/netscaler-application-delivery-management-software/media/sentinel-entra-app.png)
  3. 追加をクリックし、アプリの登録を選択します。
    アプリを登録(/en-us/netscaler-application-delivery-management-software/media/sentinel-app-registration.png)
  4. アプリの名前を指定し、サポートされているアカウントの種類の下にあるデフォルトオプションを選択し、登録をクリックします。
    アプリの登録(/en-us/netscaler-application-delivery-management-software/media/sentinel-register-app.png)
  5. アプリケーションを登録した後:
    1. クライアントIDとテナントIDをメモします。
      クライアントIDとテナントID(/en-us/netscaler-application-delivery-management-software/media/sentinel-client-tenant-ids.png)
    2. アプリケーションのシークレットIDを作成します。証明書とシークレットをクリックし、クライアントシークレットの下にある新しいクライアントシークレットをクリックします。説明と有効期間を指定し、追加をクリックしてアプリケーションのシークレットIDを作成します。
      クライアントシークレットID
    3. アプリケーションの詳細が表示されます。シークレットが作成された直後に値の下に表示されるIDを必ずメモしてください。他のGUIオプションに移動すると、この値は非表示になります。
      値ID

Microsoft Entra IDデータコネクタを使用してMicrosoft Sentinelにデータを送信する

Microsoft Entra IDログは、Entraテナントにアクセスするユーザー、アプリケーション、ネットワークに関する包括的な情報を提供します。詳細については、「Microsoft Entra IDデータコネクタを使用してMicrosoft Sentinelにデータを送信する」を参照してください。

データ収集エンドポイントを構成する

エンドポイントURLを取得するには、データ収集エンドポイントを作成する必要があります。これは、NetScaler Consoleでサブスクリプションを作成する際に必要です。
  1. Azureポータルで、Azureサービスの下にあるデータ収集エンドポイントを選択するか、検索バーにキーワードを入力します。
    DCRの選択
  2. データ収集エンドポイントページで作成をクリックします。
    DCRの作成
  3. データ収集エンドポイントの作成で:
    1. 任意のエンドポイント名を指定します。
    2. サブスクリプション、リソースグループ、およびリージョンを選択します。
    3. 確認 + 作成をクリックします。
    4. 「検証成功」メッセージが表示されたら、「作成」をクリックします。
エンドポイントURLをメモしておく必要があります。「データ収集エンドポイント」メインページで、作成したエンドポイントを選択し、「JSONビュー」をクリックして、エンドポイントIDをメモします。
DCR ID(/en-us/netscaler-application-delivery-management-software/media/sentinel-dcr-id.png)

データをエクスポートするためのテーブルを作成する

NetScaler ConsoleからMicrosoft Sentinelにエクスポートする各インサイトについて、テーブルを作成し、JSON情報を提供する必要があります。各インサイトのテーブル要件については、以下の詳細を参照してください。
インサイト 必要なテーブルの総数
SSLインサイト 3
WAF 1
Bot 1
Gatewayインサイト 5
イベント 1
メトリック 1
監査ログ 1
各データ収集ルール (DCR) ごとに最大10個のテーブルを作成できます。10個を超えるテーブルを作成する場合は、別のDCRを作成する必要があります。
  1. Azure ポータルでワークスペースに移動し、 の下にある をクリックします。
  2. をクリックし、 を選択します。
    テーブル
  3. で:
    1. テーブル名を指定します。テーブル名は console_insightname の形式である必要があります。例: console_ns_sslvserver、console_ns_ssl_certkey。各インサイトに適用されるテーブル名については、ステップ4を参照してください。
    2. テーブル名に関する詳細情報を追加するための説明を入力します。これはオプションです。
    3. 新しいデータ収集ルールを作成して追加します。
    4. リストからデータ収集エンドポイントを選択します。
      テーブルパラメータ(/en-us/netscaler-application-delivery-management-software/media/sentinel-table-parameters.png)
    5. 「次へ」をクリックします。
  4. 「スキーマと変換」タブで、エクスポートするインサイトのJSONサンプルログをアップロードする必要があります。各インサイトについて、以下のサンプルJSONを使用してアップロードするJSONファイルを作成できます。
    インサイト JSON 使用するテーブル名
    SSL (1) {"id": "3eb05733-c326-493c-9aa0-f7db3a6b4277", "ns_ip_address": "10.106.186.141", "name": "zeta_192_168_110_250", "vsvr_ip_address": "", "vsvr_port": -1, "vsvr_type": "", "state": "", "partition_name": "", "display_name": "10.106.186.141", "poll_time": 1716539986, "managed": "f", "ssl2": "f", "ssl3": "t", "tls10": "t", "tls11": "t", "tls12": "t", "dh": "f", "ersa": "t", "sslprofile": "", "tls13": "f", "dhkeyexpsizelimit": "DISABLED", "pushenctriggertimeout": 1, "sessionticket": "", "includesubdomains": "f", "sessionticketkeyrefresh": "", "ssllogprofile": "", "serverauth": "", "ssltriggertimeout": 100, "ersacount": 0, "strictcachecks": "NO", "dhfile": "", "sessreuse": "ENABLED", "redirectportrewrite": "DISABLED", "skipclientcertpolicycheck": "", "tls13sessionticketsperauthcontext": 1, "cipherredirect": "DISABLED", "dropreqwithnohostheader": "NO", "sessionticketlifetime": -1, "maxage": 0, "pushenctrigger": "Always", "strictsigdigestcheck": "f", "sslredirect": "DISABLED", "sessionkeylifetime": -1, "alpnprotocol": "", "clientauthuseboundcachain": "", "sesstimeout": 120, "clientcert": "", "snihttphostmatch": "CERT", "preload": "NO", "prevsessionkeylifetime": -1, "sessionticketkeydata": "", "encrypttriggerpktcount": 45, "cleartextport": "", "ssliocspcheck": "", "hsts": "f", "sslinterception": "", "commonname": "", "sslireneg": "", "ocspstapling": "DISABLED", "quantumsize": 8192, "insertionencoding": "Unicode", "sslimaxsessperserver": -1, "cipherurl": "", "pushflag": 0, "zerorttearlydata": "DISABLED", "allowextendedmastersecret": "", "dhekeyexchangewithpsk": "NO", "clientauth": "DISABLED", "denysslreneg": "NONSECURE", "sendclosenotify": "YES", "dhcount": 0, "snienable": "DISABLED", "table_name": "ns_sslvserver"} console_ns_sslvserver
    SSL (2) {"id": "a6673ab2-0b59-47b9-b530-bc30fb2b937c", "ssl_certificate": "/nsconfig/ssl/ca-cert.pem", "ssl_key": "/nsconfig/ssl/ca-key.pem", "certkeypair_name": "athul-ca", "cert_format": "PEM", "days_to_expiry": 281, "ns_ip_address": "10.106.186.141", "status": "Valid", "device_name": "10.106.186.141", "file_location_path": "", "certificate_data": "", "key_data": "", "poll_time": 1717434335, "no_domain_check": "f", "version": 3, "serial_number": "7B34B6A6A1A79E0FF168242D7BCFF78F04C9EE66", "signature_algorithm": "sha256WithRSAEncryption", "issuer": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "valid_from": "Mar 12 08:51:11 2024 GMT", "valid_to": "Mar 12 08:51:11 2025 GMT", "subject": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "public_key_algorithm": "rsaEncryption", "public_key_size": 4096, "no_of_bound_entities": 0, "partition_name": "", "display_name": "10.106.186.141", "hostname": "athulsadc", "key_name": "", "subjaltname": "", "managed_by": "", "certificate_dn": "", "linkcertkeyname": "", "table_name": "ns_ssl_certkey"} console_ns_ssl_certkey
    WAF [{"ip_address": "10.106.185.156", "ctnsappname": "vserver_1", "severity": 2, "violation_type": 19, "violation_type_desc": "Start URL", "block_flags": 1, "transformed_flags": 0, "not_blocked_flags": 0, "country_code": "-NA-", "region_code": "-NA-", "city": "-NA-", "latitude": 200.0, "longitude": 200.0, "signature_category": "", "attack_category": 2, "attack_category_desc": "Broken Authentication and Session Management", "total_attacks": 1, "rpt_sample_time": 1704783773, "source_ip_address": 174766492, "attack_time": 1704783538, "profile_name": "appfw_cs_lb_prof", "session_id": "", "http_req_url": "https://10.106.192.54/csrf_ffc/ffc.html?field10=asfasd", "violation_name": "-NA-", "violation_value": "-NA-", "violation_location": 4, "violation_threat_index": 5, "app_threat_index": 5, "http_method": 0, "violation_action": 3, "violation_action_desc": "Blocked", "severity_type": 2, "severity_type_desc": "Medium", "iprep_score": 0, "iprep_category": 0, "counter_value": 0, "appname": "vserver_1_10.106.185.156_lb", "violation_category": 12, "violation_category_desc": "Start URL", "source_ipv6_address": "", "true_client_ip": "\\N", "backend_vserver": "", "backend_appname": "", "transactionId": "0", "table_name": "af_threat_exporter_data_l2"}] console_af_threat_exporter_data_l2
    ボット {"ip_address": "10.106.186.122", "ctnsappname": "secure_gateway", "bot_type": "2", "bot_type_desc": "Bad", "action_type": "6", "action_type_desc": "Log", "country_code": "0.0", "region_code": "0.0", "city": "0.0", "bot_severity": "0", "bot_severity_desc": "Critical", "latitude": "0", "longitude": "0", "bot_detection_mechanism": "6", "bot_detection_mechanism_desc": "BlackList", "bot_category": "0", "bot_category_desc": "Uncategorized", "source_ip_address": "174758625", "bot_signature_category": "Custom Policy Expression", "appname": "secure_gateway_10.106.186.122_lb", "backend_vserver": "", "backend_appname": "", "total_attacks": "2", "rpt_sample_time": "1718783216", "table_name": "af_bot_attack_details_l2"} console_af_bot_attack_details_l2
    ゲートウェイインサイト (1) {"adc_ip_address": "10.106.186.141", "auth_server": "", "client_ip": 174766732, "epa_method_type": 0, "error_count": 14, "error_details": "Invalid credentials passed", "error_type": 1, "gateway_name": "vpn_vserver_142_6", "req_url": "", "resource": "", "rpt_sample_time": 1713505215, "sso_method_type": 0, "sta_ip": "", "table_name": "af_vpn_error_details", "username": "John"} console_af_vpn_error_details
    ゲートウェイインサイト (2) {"adc_ip_address": "10.102.71.166", "display_name": "10.102.71.166", "gateway_name": "firsthop", "ip_address": "10.102.71.168", "rpt_sample_time": "1718812158", "state": "Up", "table_name": "ns_vpnvserver"} console_ns_vpnvserver
    ゲートウェイインサイト (3) {"adc_ip_address": "10.106.186.141", "gateway_name": "vpn_vserver_141_7", "rpt_sample_time": 1702011308, "sessions": 1, "table_name": "af_vpn_session_details", "users": 1} console_af_vpn_session_details
    ゲートウェイインサイト (4) {"active_sessions": 59, "active_users": 1, "adc_ip_address": "10.106.186.136", "gateway_name": "vpnathul2", "rpt_sample_time": 1698919848, "table_name": "af_vpn_active_session_1"} console_af_vpn_active_session_1
    ゲートウェイインサイト (5) {"adc_ip_address": "10.106.186.136", "entity_type": 3, "gateway_name": "vpnathul2", "hits": 3, "rpt_sample_time": 1698052438, "table_name": "af_vpn_error_reports"} console_af_vpn_error_reports
    イベント {"rpt_sample_time": -1, "category": "HealthMonitoring", "entity": "10.106.186.148:HealthMonitoring:System Disk Usage", "counter_threshold_value": "", "id": "0f2607cf-f97d-4f71-9162-11e580262e93", "timestamp": 1712927472, "message": "Disk Usage High: 63.24%", "severity": "Critical", "user_name": "", "device_entity_type": "", "device_type": "", "counter_actual_value": "", "cmd_auth_status": "", "source": "10.106.186.148", "history": "Update Time= Fri, 12 Apr 2024 06:32:49 UTC ,Previous Severity= Critical ,New Severity= Critical, Source= 10.106.186.148\nUpdate Time= Fri, 12 Apr 2024 06:27:46 UTC ,Previous Severity= Critical ,New Severity= Critical, Source= 10.106.186.148\nUpdate Time= Fri, 12 Apr 2024 06:22:44 UTC ,Previous Severity= Critical ,New Severity= Critical, Source= 10.106.186.148\nUpdate Time= Fri, 12 Apr 2024 06:17:41 UTC ,Previous Severity= Critical ,New Severity= Critical, Source= 10.106.186.148\nUpdate Time= Fri, 12 Apr 2024 06:12:38 UTC ,Previous Severity= Critical ,New Severity= Critical, Source= 10.106.186.148\nUpdate Time= Fri, 12 Apr 2024 06:07:36 U", "config_cmd": "", "failureobj": "System Disk Usage", "operation_type": "undefined", "device_entity_name": "", "cmd_exec_status": "", "device_family": "", "source_event_id": -1, "source_system_ip": "10.106.186.148", "trap_id": 35, "table_name": "event"} console_event
    メトリック {"memory_free": 28830060544.0, "disk_used": 81248694272.0, "disk_free": 29632114688.0, "node_type": "", "memory_total": 34355544064.0, "cpu_usage": 0.49, "disk_total": 120522616832.0, "disk_usage": 73.28, "node_id": "", "id": "1be15a09-d078-469c-868a-bfbfcffe5ef1", "disk_total_capacity": 0.0, "page_size": 4096.0, "memory_usage": 16.08, "table_name": "mps_health"} console_mps_health
    監査ログ {"system_gmt_time":1721868291, "source":"X.X.X.X", "severity":"INFO", "module":"DEVICECONFIG", "event_type":"CMD_EXECUTED", "message":"Sample Mesage", "instance_ip":"X.X.X.X", "app_name":""} console_syslog_messages
    JSON をアップロードすると、次の詳細を表示できます。
    JSON の詳細
    「変換エディター」をクリックし、適切なインサイトに適用される次のクエリを入力し、「実行」をクリックして、NetScaler Console でのポーリング時間からデータを承認します。
    • SSL - source | extend TimeGenerated = todatetime(poll_time) | project-rename sslvserver_id = id
    • WAF および Bot - source | extend TimeGenerated = todatetime(rpt_sample_time)
    • ゲートウェイ インサイト - source | extend TimeGenerated = todatetime(rpt_sample_time)
      テーブル実行
  5. 次へ をクリックし、作成 をクリックして完了します。
  6. データ収集ルール に移動し、作成したDCRをクリックします。
  7. 構成 の下で、データソース をクリックして、作成されたテーブルを表示します。
    テーブルソース
    DCR (データ収集ルール) には、監視メトリクス発行者 ロールへのアクセスが必要です。
    1. Azureポータルの 最近 の下にある、アクセス可能なDCRに移動します。
    2. DCRページから アクセス制御 (IAM) をクリックし、ロールの割り当てを追加 をクリックします。
      ロールの割り当て
    3. 検索バーで「monitor」と入力して 監視メトリクス発行者 を選択し、次へ をクリックします。
    4. メンバー タブで メンバーの選択 をクリックし、作成したEntraアプリを選択します。
    5. レビュー + 割り当て をクリックします。
      データ収集ルールIDをメモする必要があります。データ収集ルールページに移動し、DCRを選択して、JSONビューをクリックし、IDをメモします。
      DCR ID

NetScaler Consoleでサブスクリプションを作成する

これで準備が整いました。最後のステップは、サブスクリプションを作成し、必要な詳細を追加してNetScaler Consoleを構成することです。NetScaler Consoleでサブスクリプションを作成するには、メモした以下の詳細が必要です。
  • エンドポイントURL
  • データ収集ルールID
  • テナントID
  • クライアントID
  • クライアントシークレット
  1. NetScaler Consoleにログインします。
  2. 設定 > 可観測性統合に移動します。
  3. 統合ページで、追加をクリックします。
  4. サブスクリプションの作成ページで、次の詳細を指定します。
    1. サブスクリプション名フィールドに任意の名前を指定します。
    2. ソースとしてNetScaler Consoleを選択し、次へをクリックします。
    3. 「Microsoft Sentinel」を選択し、「Configure」をクリックします。「Configure Endpoint」ページで、すべての詳細を入力し、「Submit」をクリックします。
    4. 「Next」をクリックします。
  5. 「Add Insights」をクリックし、「Select Feature」タブで、Microsoft Azureに追加したテーブルに応じて、エクスポートしたい機能を選択し、「Add Selected」をクリックし、「Next」をクリックします。
  6. 「Select Instance」タブで、「Select All Instances」または「Custom select」のいずれかを選択し、「Next」をクリックします。
    • 「Select All Instances」 - すべてのNetScalerインスタンスからMicrosoft Sentinelにデータをエクスポートします。
    • 「Custom select」 - リストからNetScalerインスタンスを選択できます。リストから特定のインスタンスを選択した場合、データは選択されたNetScalerインスタンスからのみMicrosoft Sentinelにエクスポートされます。
  7. 「Submit」をクリックします。

Microsoft Azureでログを表示する

すべて設定した後、Microsoft Azureで詳細を表示するには30分間待つことをお勧めします。
  1. Azureポータルで、「Log Analytics Workspace」に移動します。
  2. 「Logs」をクリックし、テーブル名を入力して、「Run」をクリックして結果を表示します。
    ログを表示するView logs
構成のトラブルシューティングや検証のためにログを使用することもできます。たとえば、構成されたインサイトに対してNetScaler Console GUIの「Poll Now」オプションを使用し、次の操作を行います。
  1. SSHクライアントを使用してNetScaler Consoleにログインします。
  2. bashモードに入るには「shell」と入力します。
  3. ログを表示するには、次のコマンドを使用します。
    tail -f /var/mps/log/nbs/nbs_api.log
以下の例は、トラブルシューティングのために考えられるエラーを分析するのに役立ちます。
  1. 無効なログ
    このログは、NetScaler Console (Settings > Observability Integrations) で Microsoft Sentinel サブスクリプションに無効なクライアント ID を指定したことを示しています。
    回避策: 正しいクライアント ID をコピーしたことを確認し、正しいクライアント ID を指定してサブスクリプションを編集してください。詳細については、Microsoft Entra アプリケーションを作成する を参照してください。
  2. 無効な SSL キー
    このログは、Microsoft Azure で必要な ssl_certkey テーブルを構成していないことを示しています。
    回避策: Microsoft Azure で ssl_certkey のテーブルを構成してください。詳細については、データをエクスポートするためのテーブルを作成する を参照してください。