展開前に、以下の点にご注意ください。
- イベントストリーミングクライアントのアーキテクチャを見直し、目標とするアーキテクチャを定義する。
- イベントストリーミングクライアントの要件を確認する
イベントストリーミングクライアントの展開には、以下の手順が必要です。
- APIアクセス設定
- デプロイする各イベントストリーミングクライアントごとにクライアントをインストールする必要があります。
- SIEMに転送されるデータを定義するフォーマット構成が1つあります。
- 各クライアントのSIEMターゲットとアクティブフォーマットを定義する宛先構成が1つ
- ログストリーミング構成により、イベントストリーミングクライアント宛先が有効になります
APIアクセス
役割とトークンの作成については、 「イベントストリーミングクライアントAPIアクセス」で説明します。
クライアントのインストール
クライアントのインストールは2つのステップで行われます。
- API 経由で新しいクライアントを宣言し、トークンを生成する
- ホストデバイスへのクライアントの展開
クライアント構成
Netskope API Swagger への認証に成功すると、/api/v2/streamingclient/clients エンドポイントで Event Streaming Client 構成が利用可能になります。

- 「試してみる」ボタンを使って、POST メソッドを使用して新しいクライアントを作成します。


- GETメソッドを使用して、作成されたクライアントを確認することが可能です。

詳細については、 「イベントストリーミングクライアント構成」を参照してください。
インストーラーをダウンロードしてください
Swaggerより


Linuxから
指示:
curl -X 'GET' 'https://<tenant>.goskope.com/api/v2/streamingclient/installer' -H 'accept: application/gzip' -H 'Authorization: Bearer XXXX' -OJ
例:
root@lab-esc1:~# curl -X 'GET' 'https://<tenant>.goskope.com/api/v2/streamingclient/installer' -H 'accept: application/gzip' -H 'Authorization: Bearer XXXX' -OJ
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 10796 100 10796 0 0 57922 0 --:--:-- --:--:-- --:--:-- 58994
root@lab-esc1:~# tar -zxvf NS_StreamingClient_Installer.tar.gz
netskope_event_streamingclient_installer.py
README.md
インスタンスのデプロイ
- Linuxサーバーに接続します
- Python3とDockerがインストールされていることを確認してください。
- 前の手順でインストーラーを入手してください。
- システムの専用設定を確認してください
HTTPプロキシを使用したDockerについては、 Dockerのプロキシ設定を参照してください
Podmanを使用したRHELについては、 Red HatとPodmanの設定を参照してください - インストーラースクリプトを実行します
python3 netskope_event_streamingclient_installer.py
6. installオプションSelect 、要求されたすべての入力に回答してください。
- ファイルの場所(デフォルト)
/root/ns Enter the client keyAPI /api/v2/streamingclient/clients/{id}/tokenで生成されたトークンです。- 自動更新を行う曜日と時間帯
- 必要に応じてHTTPプロキシを定義します
例
root@lab-esc2:~# python3 netskope_event_streamingclient_installer.py NETSKOPE LOG STREAM CLIENT INSTALLER I.2025.11.1 Please specify an option: 1. install - Set up and configure the container 2. reinstall - Remove and recreate the container 3. uninstall - Remove the container and cleanup Enter option (install/reinstall/uninstall): 1 INSTALLATION >>> Checking if operating system is supported... SUCCESS: Check for operating system passed. >>> Checking if hardware architecture is supported... SUCCESS: Check for Architecture passed. >>> Checking if Docker is installed and running... SUCCESS: Docker is installed. SUCCESS: Docker daemon is running. SUCCESS: All the systems checks passed. Configuring container ... Enter the directory path to store the installation files and logs [default: /root/ns]: Enter the client key : eyJDT05ORUNUSU9OX0tFWSI6InN0cmVhb Client key: eyJDT05ORUNUSU9OX0tFWSI6InN0cmVhbWluZ2NsaWVudC1h Please set up a weekly schedule for automatic Docker image updates. Do you want to use the default schedule (Thursday at 23:00)? [y/n]: y >>> Configuring proxy settings... Do you need proxy setup for Streaming Client? [y/n] (default: n): y INFO: Configuring proxy for containers --- Streaming Client Container Proxy Configuration --- This proxy will be used by the running containers for their operations. HTTPS Proxy URL (e.g., http://proxy.company.com:8080 or https://proxy.company.com:8080): http://163.xxx.xxx.80:80 INFO: Container HTTPS proxy configured: http://163.xxx.xxx.80:80 >>> Setting up and starting the container... INFO: Using existing installation directory: /root/ns >>> Pulling Docker image: netskope/nsstreamingclient:stable The process might take a moment... stable: Pulling from netskope/nsstreamingclient 645635fbf4d2: Pull complete c9debdf8207a: Pull complete 94e09fa58eb4: Pull complete c5b5b574d9eb: Pull complete 9a47257481ca: Pull complete 2f5e1dfb2cd4: Pull complete f9514487b3cf: Pull complete 78e884c4c39d: Pull complete 2aac2ff272d9: Pull complete da51ee03c947: Pull complete a84060cbac16: Pull complete 477d64974173: Pull complete 9a1325d79269: Pull complete a71a358f9aef: Pull complete 44d06538ce68: Pull complete 14477cceda61: Pull complete 8fb98c22d537: Pull complete db9fdfbf3f52: Pull complete 4958661942a9: Pull complete 1540d139dc0c: Pull complete b1f4e241f375: Pull complete 94bfc05d13f2: Pull complete 7f247b6c83f6: Pull complete a8cda5c427fe: Pull complete 28eedd26b6c7: Pull complete b9ce487eef38: Pull complete 0f452909bfe0: Pull complete bcdfc9f5c9e1: Pull complete 082b67164622: Pull complete 336355755be8: Pull complete 9e505fd59acf: Pull complete c4a41b87cf93: Pull complete de55d536641a: Pull complete 11aacba49461: Pull complete Digest: sha256:ea143d8520 Status: Downloaded newer image for netskope/nsstreamingclient:stable docker.io/netskope/nsstreamingclient:stable SUCCESS: Docker image pulled successfully! INFO: Configuring container volumes and environment variables... INFO: Initialized installer information log file. INFO: Container configuration file created successfully INFO: Creating proxy configuration file... INFO: Creating proxy configuration file... SUCCESS: Proxy configuration saved to proxy.env INFO: Starting container... INFO: Adding HTTPS proxy to container: http://163.xxx.xxx.80:80 e9fe4c230e5cc191 SUCCESS: Container 'nsstreamingclient' started successfully! Container files and Log files will be stored in: /root/ns >>> Setting up watcher container to monitor the main container... INFO: Pulling watcher image... stable: Pulling from netskope/nswatcher 21b919804656: Pull complete 891cc33da41a: Pull complete e6eb3a86a632: Pull complete edeb9247ddd4: Pull complete f988b2dd9cbf: Pull complete ef090e4f8d13: Pull complete b935cef6a087: Pull complete 06e748922bc3: Pull complete 49b990c12c1f: Pull complete fa2956f00aa5: Pull complete 3df31e584803: Pull complete 4164121f60f1: Pull complete f99197fd9601: Pull complete 1737cff1e8c9: Pull complete 60957cee4d80: Pull complete 964929934f06: Pull complete 5d335edf6f34: Pull complete 26ddf93d0751: Pull complete 141fda38c9b5: Pull complete 093dc20aa13e: Pull complete Digest: sha256:8eb9a2 Status: Downloaded newer image for netskope/nswatcher:stable docker.io/netskope/nswatcher:stable INFO: Starting watcher container... INFO: Adding container HTTPS proxy to watcher container: http://163.xxx.xxx.80:80 f519daf55cax SUCCESS: Watcher container started successfully! >>> Waiting for configuration to complete (max 60 seconds)... PROGRESS: Client is not enabled INFO: Installation successful. Waiting for configuration download... INFO: Monitoring for 15s ... Successfully downloaded stream configuration INSTALLATION COMPLETE root@lab-esc2:~#
インスタンス検証
インスタンスが実行されていることを確認するには、以下を確認することをお勧めします。
- インスタンスが実行中です
root@lab-esc1:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ac518e00355f netskope/nsstreamingclient:stable "./start.sh s h ' ' …" 2 minutes ago Up 2 minutes nsstreamingclient bf534b netskope/nswatcher:stable "bash start.sh" 2 days ago Up 2 days ns-watcher root@lab-esc1:~#
- Dockerログ
root@lab-esc1:~# docker logs nsstreamingclient
2025/09/04 13:16:53 Primary config missing (/opt/ns/cfg/container_config). Trying fallback (/app/container_config)...
Install Log: Starting static configuration and token loading process.
Install Log: Configuration variables loaded successfully.
2025/09/04 13:16:53 Start decrypting container and connection keys from the env app.env file
2025/09/04 13:16:53 Starting metrics logging
{"level":"info","timestamp":"2025-09-04T13:16:53.112Z","caller":"log/log.go:86","msg":"Start collecting the system metrics"}
{"level":"info","timestamp":"2025-09-04T13:16:53.201Z","caller":"log/log.go:86","msg":"PROGRESS: Connected with syslog."}
{"level":"info","timestamp":"2025-09-04T13:16:53.201Z","caller":"log/log.go:86","msg":"PROGRESS: Syslog details verified."}
{"level":"info","timestamp":"2025-09-04T13:16:53.201Z","caller":"log/log.go:86","msg":"PROGRESS: Configuration verified."}
{"level":"info","timestamp":"2025-09-04T13:16:53.201Z","caller":"log/log.go:86","msg":"Successfully downloaded stream configuration"}
{"level":"info","timestamp":"2025-09-04T13:16:53.202Z","caller":"log/log.go:86","msg":"starting stream config watcher"}
{"level":"info","timestamp":"2025-09-04T13:16:53.209Z","caller":"log/log.go:86","msg":"Creating connections for log streamer","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","containerId":"0198eb4f-b0cd-71b8-8c20-0311959d806c","conNum":8}
{"level":"info","timestamp":"2025-09-04T13:16:53.346Z","caller":"log/log.go:86","msg":"GRPC connection established successfully"}
{"level":"info","timestamp":"2025-09-04T13:16:53.346Z","caller":"log/log.go:86","msg":"Successfully registered with Proxy","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"b4be021a-669a-49bb-856b-3fd284a00451"}
{"level":"info","timestamp":"2025-09-04T13:16:53.396Z","caller":"log/log.go:86","msg":"GRPC connection established successfully"}
{"level":"info","timestamp":"2025-09-04T13:16:53.396Z","caller":"log/log.go:86","msg":"Successfully registered with Proxy","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"15807d37-795a-49a2-a71c-c8036de319f6"}
{"level":"info","timestamp":"2025-09-04T13:16:53.442Z","caller":"log/log.go:86","msg":"GRPC connection established successfully"}
{"level":"info","timestamp":"2025-09-04T13:16:53.442Z","caller":"log/log.go:86","msg":"Successfully registered with Proxy","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"aa1fb4d5-112f-4300-933c-f074e3327e36"}
{"level":"info","timestamp":"2025-09-04T13:16:53.488Z","caller":"log/log.go:86","msg":"GRPC connection established successfully"}
{"level":"info","timestamp":"2025-09-04T13:16:53.488Z","caller":"log/log.go:86","msg":"Successfully registered with Proxy","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"b036e41f-7ab0-4ab4-b10f-2346700b1710"}
{"level":"info","timestamp":"2025-09-04T13:16:53.535Z","caller":"log/log.go:86","msg":"GRPC connection established successfully"}
{"level":"info","timestamp":"2025-09-04T13:16:53.535Z","caller":"log/log.go:86","msg":"Successfully registered with Proxy","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"eb579304-6a57-4cf3-a6aa-f2150ddef1bd"}
{"level":"info","timestamp":"2025-09-04T13:16:53.582Z","caller":"log/log.go:86","msg":"GRPC connection established successfully"}
{"level":"info","timestamp":"2025-09-04T13:16:53.583Z","caller":"log/log.go:86","msg":"Successfully registered with Proxy","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"73f362f1-30d3-4889-802b-740fcf382ac0"}
{"level":"info","timestamp":"2025-09-04T13:16:53.629Z","caller":"log/log.go:86","msg":"GRPC connection established successfully"}
{"level":"info","timestamp":"2025-09-04T13:16:53.629Z","caller":"log/log.go:86","msg":"Successfully registered with Proxy","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"bf3b6503-0ff9-47a4-ab09-3e4c7591936d"}
{"level":"info","timestamp":"2025-09-04T13:16:53.676Z","caller":"log/log.go:86","msg":"GRPC connection established successfully"}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"Successfully registered with Proxy","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"0a07b1dc-5a07-4496-b934-864a74dfeac3"}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"starting stream...."}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"Starting the Log streamer","containerId":"0198eb4f-b0cd-71b8-8c20-0311959d806c"}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"Starting the Log reader","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"b4be021a-669a-49bb-856b-3fd284a00451"}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"Starting the Log reader","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"0a07b1dc-5a07-4496-b934-864a74dfeac3"}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"Starting the Log reader","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"b036e41f-7ab0-4ab4-b10f-2346700b1710"}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"Starting the Log reader","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"eb579304-6a57-4cf3-a6aa-f2150ddef1bd"}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"Starting the Log reader","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"aa1fb4d5-112f-4300-933c-f074e3327e36"}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"Starting the Log reader","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"bf3b6503-0ff9-47a4-ab09-3e4c7591936d"}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"Starting the Log reader","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"15807d37-795a-49a2-a71c-c8036de319f6"}
{"level":"info","timestamp":"2025-09-04T13:16:53.677Z","caller":"log/log.go:86","msg":"Starting the Log reader","groupId":"0199054e-5765-72cf-803a-ebd2dcfc17e2","connID":"73f362f1-30d3-4889-802b-740fcf382ac0"}
- ログファイルは、インストール先の選択した場所にあるフォルダ
container_files/logsの下にも存在します。
ログメッセージの詳細なリプションは、ガイドの下部にある「トラブルシューティング」セクションに記載されています。
フォーマット設定
イベントストリーミングクライアントは、以下のフォーマットをサポートしています。
- CEF
- ELFF
- JSON
JSONは最も汎用性が高い一方で、その構造ゆえに最も処理速度が遅い。CEFは一般的に、幅広いサポートとパフォーマンスのバランスが取れた優れたソリューションです。ELFFは依然として最も高性能な方式ですが、すべてのSIEMでネイティブにサポートされているわけではありません。

- POST を使用して最初のフォーマットを作成する
- PATCHは 作成後にオプションを追加または変更することができます
- 宛先オブジェクトを設定するには、フォーマットIDが必要です。
- 詳細については、 「イベントストリーミングクライアント構成」を参照してください。
Example with Default JSON Format:
{
"name": "Default JSON",
"type": "JSON",
"definition": {
"remove_empty_fields": true,
"customize": false
}
}


宛先設定
宛先オブジェクトは 各クライアントのSIEMアドレスを定義します。
完全に動作する構成を提供するには、以下の情報が必要です。
- クライアントオブジェクトに含まれるクライアントID(クライアントオブジェクトは有効になっている必要があります)
- Formatオブジェクトで見つかったフォーマットID
- SIEMのIPアドレス/ドメイン、ポート番号、プロトコル

- POST APIを使用して宛先を作成します
- PATCHは 作成後にオプションを追加または変更することができます
- 目的地が
- 有効なクライアントIDを持つターゲット
- ターゲットが有効になっています
- 宛先オブジェクトが有効になっています
- クライアントオブジェクトが有効になっています
- 詳細については、 「イベントストリーミングクライアント構成」を参照してください。
Example:
{
"name": "Sample destination",
"enabled": true,
"type": "syslog_tcp",
"format": "019914ed",
"targets":
[
{
"client": "0198eb4f",
"ip": "lab-splunk4.info",
"port": 5151,
"enabled": true
}
]
}


ログストリーミングの設定
POST /api/v2/events/logstreaming/stream APIを使用して宛先を登録します

{
"streamType": "transaction",
"name": "Transaction Stream",
"provider": "streamingclient",
"credential": {
"streamingclient": {
"client-destination": "REPLACE WITH YOUR DESTINATION ID"
}
},
"compressionType": "zstd"
}
- 既存の設定を編集するには、 PUT /api/v2/events/logstreaming/stream/{streamId} API
- 詳細については、 「イベントストリーミングクライアント構成」を参照してください。

