コマンドラインからの Orion の実行

broker を実行するには、次のコマンドを入力します :

contextBroker

broker はデフォルトでバックグラウンドで実行されるため、シグナルを使用して broker を停止する必要があります。

たとえば、-port オプションを使用して、Orion Context Broker がリッスンするポートを指定するために、コマンドライン引数を使用できます :

contextBroker -port 5057

可能なすべてのオプションを知るには、次のセクションをご覧ください。

コマンドライン・オプション

使用可能なオプションのリストを取得するには、次のコマンドを使用します:

contextBroker -u

オプション (デフォルト値や制限を含む) に関する詳細情報を得るには、以下を使用します :

contextBroker -U

使用可能なオプションのリストは次のとおりです :

  • -u and -U : 短い形式または長い形式のそれぞれで使用状況を表示します
  • --help : ヘルプを表示します (前と非常に似ています)
  • --version : バージョン番号を表示します
  • -port : broker がリスンするポートを指定します。デフォルトのポートは1026です
  • -ipv4 : broker を IPv4 専用モードで実行します。デフォルトでは、broker は IPv4 と IPv6 の両方で動作します。-ipv6 と同時に使用することはできません
  • -ipv6 : broker を IPv6 専用モードで実行します。デフォルトでは、broker は IPv4 と IPv6 の両方で動作します。-ipv4 と同時に使用することはできません。
  • -multiservice : マルチサービス/マルチテナントモードを有効にします。マルチ・テナンシーのセクションを参照してください
  • -db : 使用する MogoDB データベース、または (-multiservice を使用している場合) サービス単位/テナント単位のデータベースのプレフィックス (マルチ・テナンシーのセクションを参照してください) です。このフィールドは最大10文字までです
  • -dbURI : 使用する MongoDB を URI で指定します。 URI に文字列 ${PWD} がある場合は -dbpwd または環境変数 ORION_MONGO_PASSWORD で指定したパスワードで置き換えられます。
  • -dbpwd : 使用する MongoDB パスワード。MongoDB が認証を使用しない場合、このオプションは避けなければなりません。データベース認証セクションを参照してください
  • -dbPoolSize : データベース・コネクション・プール プールのデフォルトサイズは10接続です
  • -writeConcern <0|1> : MongoDB の書き込み操作に対する確認を指定 : 確認 (1) または未確認 (0)。デフォルトは 1です
  • -https : セキュアな HTTP モードで作業します (-cert および -key を参照)
  • -cert : https の証明書ファイル。絶対ファイルパスを使用します。 このファイルを生成する方法の例については、このスクリプトを見てください
  • -key : https のプライベート・サーバ・キーファイル。絶対ファイルパスを使用します。このファイルを生成する方法の例については、このスクリプトを見てください
  • -logDir <dir> : contextBroker のログ・ファイルに使用するディレクトリを指定します
  • -logAppend : これを使用すると、空のログ・ファイルではなく、既存の contextBroker ログ・ファイルにログ行が追加されます
  • -logLevel: 初期ロギングレベルを選択します (詳細については、ログ・ドキュメントを確認してください)。 admin API を使用して、実行時にロギングレベルを変更できるため、初期に注意してください。 サポートされているレベルは次のとおりです:
    • NONE (致命的なエラーメッセージを含むすべてのログ出力を抑制します),
    • FATAL (重大なエラーメッセージのみ表示します),
    • ERROR (エラーメッセージのみ表示します),
    • WARN (エラーメッセージと警告メッセージを表示します。これがデフォルト設定です),
    • INFO (エラー、警告、情報メッセージを表示します),
    • DEBUG (すべてのメッセージを表示します)
  • -t : ロギングの初期トレース・レベルを指定します。単一の値 (例えば "-t 70")、範囲 (例えば "-t 20-80")、コンマ区切りのリスト (例えば "-t 70,90")、またはそれらの組み合わせ (例えば "-t 60,80-90")。ロギングにすべてのトレース・レベルを使用する場合は、"-t 0-255" を使用します。トレース・レベルは、管理用 REST インターフェースを使用して動的に変更できます。利用可能なトレース・レベルとその値の詳細は、ここで (C 構造体として) 見つけることができます
  • -fg : broker をフォアグラウンドで実行します (デバッグに便利です)。ログ出力は、標準出力 (ログ・ファイルに加えて、単純化された形式を使用) で出力されます
  • -localIp : broker がリッスンする IP インタフェースを指定します。デフォルトでは、すべてのインタフェースをリッスンします
  • -pidpath : broker プロセスの PID を格納するファイルを指定します
  • -httpTimeout : メッセージの転送と通知のタイムアウトをミリ秒単位で指定します。HTTP 転送メッセージおよび通知のデフォルトのタイムアウト (このパラメータが指定されていない場合)。デフォルトのタイムアウト (このパラメータが指定されていない場合) は 5000 (5 秒) です。最大値は 1800000 (30分) です。 このパラメータは、サブスクリプションに対して個別に定義できます。サブスクリプションの JSON で定義されている場合、デフォルトのパラメータは無視されます。subscription.notification.httpのセクションを参照してください
  • -mqttTimeout . MQTT 通知での MQTT ブローカーへの接続のタイムアウトをミリ秒単位で指定します。 デフォルトのタイムアウト (このパラメータが指定されていない場合) は 5000 (5秒) です。 最大値は、1800000 (30分) です。
  • -reqTimeout : REST 接続のタイムアウトを秒単位で指定します。デフォルト値はゼロ、つまりタイムアウトなし (永遠に待機) であることに注意してください
  • -cprForwardLimit : 単一のクライアント要求に対するコンテキスト・プロバイダへの転送リクエストの最大数 (デフォルトは制限なし)。コンテキスト・プロバイダの転送を完全に無効にするには、0を使用します。
  • -corsOrigin : 許可された発信元を指定して、クロス・ソース・リソースの共有を有効にします (*__ALL を使用)。Orion での CORS サポートの詳細については、ユーザ・マニュアルを参照してください。
  • -corsMaxAge : プリフライト要求がキャッシュされる最大時間 (秒) を指定します。設定されていない場合の既定値は86400です。Orion での CORS サポートの詳細については、ユーザ・マニュアルを参照してください。
  • -reqMutexPolicy : 内部 mutex ポリシーを指定します。詳細については、パフォーマンス・チューニングのドキュメントを参照してください。
  • -subCacheIval : サブスクリプション・キャッシュの更新の呼び出し間隔 (秒単位)。ゼロ値は "リフレッシュしない" を意味します。デフォルト値は60秒で、mono-CB 配置に適しています。(このドキュメントのサブスクリプション・キャッシュの詳細を参照してください
  • -noCache : コンテキスト・サブスクリプション・キャッシュを無効にするので、サブスクリプション検索は常に DB で行われます。推奨されませんが、デバッグには便利です
  • -notificationModeこちら で詳しく説明しています。 通知モードを選択できます: transient, persistent または threadpool:q:n[,service1:q1:n1,...,serviceN:qN:nN]。 デフォルトモードは transient です
    • transient モードでは、通知を送信した直後に接続は CB によって閉じられます
    • persistent 接続モードでは、通知が指定された URL パスに初めて送信されたときに、持続的な接続が作成されます (受信者が持続的な接続をサポートしている場合)。同じ URL パスへの通知が行われると、接続が再利用され、HTTP 接続時間が保存されます
    • スレッドプール・モードでは、通知はサイズ q のキューに入れられ、n スレッドはキューから通知を受け取り、 非同期的に発信要求を実行します。サービスごとに予約済みのキュー/スレッドを設定することもできます。 このモードを使用する場合は、スレッド・モデル セクションをご覧ください
  • -notifFlowControl guage:stepDelay:maxInterval. フロー制御メカニズムを有効にします。 ドキュメントのこのセクションを参照してください
  • -simulatedNotification : 通知は送信されませんが、内部で記録され、 統計情報オペレーション (simulatedNotifications カウンタ) に表示されます。これは本番用ではありませんが、デバッグでは CB の内部ロジックの観点から通知レートの最大上限を計算すると便利です。
  • -connectionMemory : HTTP サーバ・ライブラリが内部的に使用する、接続ごとの接続メモリー・バッファのサイズ (KB 単位) を設定します。デフォルト値は64 KB です
  • -maxConnections : 同時接続の最大数です。従来の理由から、デフォルト値は1020であり、下限は1であり、上限はありません。オペレーティング・システムの最大ファイル記述子によって制限されます
  • -reqPoolSize : 着信接続のスレッド・プールのサイズです。。デフォルト値は0で、スレッド・プールがない ことを意味します
  • -inReqPayloadMaxSize 着信リクエストのペイロードの最大許容サイズ (バイト単位)。デフォルト値は1MBです
  • -outReqMsgMaxSize 送信メッセージ のリクエストの最大許容合計サイズ (バイト単位)。デフォルト値は8MBです
  • -statCounters, -statSemWait, -statTiming and -statNotifQueue : 統計情報の生成を有効にします。統計情報のドキュメントを参照してください
  • -logSummary : ログ・サマリ期間を秒単位で記録します。デフォルトは0 です。これは、ログ・サマリがオフ であることを意味します。最小値 : 0. 最大値 : 1か月 (3600 * 24 * 31 == 2,678,400 秒)。詳細については、ログのドキュメントを参照してください
  • -relogAlarms : ログ・ファイル内の可能性のある * すべて * のアラーム誘発障害を表示するには、アラームがすでにアクティブであっても、このオプションを使用します。詳細については、ログのドキュメントを参照してください
  • -disableCustomNotifications : NGSIv2 カスタム・通知を無効にします。特に :
    • httpCustom は、http として解釈されます。すなわち、url を除くすべてのサブフィールドが l 無視されます
    • ${...} マクロ置換は実行されません
  • -disableFileLog : Orion がファイルにロギングするのを避けます (デフォルトの動作はログ・ファイルを使用します)。このオプションは、kubernetes で実行している場合に役に立ちます
  • -logForHumans : 人のために標準化されたトレースを作成します。ログ・ファイルのトレースは影響を受けないことに注意してください
  • -logLineMaxSize : ログ行の最大長 (超過すると、Orion は LINE TOO LONG をログ・トレースとして出力します)。最小許容値:100バイト。デフォルト値:32キロバイト。Orion の起動後に log admin REST APIlineMaxSize フィールドで変更できます
  • -logInfoPayloadMaxSize : リクエストおよび/またはレスポンス・ペイロードを出力する INFO レベルのログ・トレースの場合、これはそれらのペイロードに許可される最大サイズです。ペイロード・サイズがこの設定より大きい場合、最初の -logInfoPayloadMaxSize バイトのみが含まれます (そして、(...) の形式の省略記号がトレースに表示されます)。デフォルト値:5キロバイト。Orion の起動後に log admin REST APIinfoPayloadMaxSize フィールドを使用して変更できます。
  • -disableMetrics : 'metrics' 機能をオフにします。メトリックの収集は、システムコールやセマフォが関与するため、少しコストがかかります。メトリックオーバーヘッドなしで broker を起動するには、このパラメータを使用します
  • -disableNgsiv1 : NGSIv1 操作をオフにします。 API エンドポイントのみが無効になることに注意してください。 "attrsFormat": "legacy" を使用する通知や、 "legacyForwarding": true を使用するレジストレーションに対応するリクエスト転送は機能します
  • -insecureNotif : 既知の CA 証明書で認証できないピアへの HTTPS 通知を許可する。これは、curl コマンドのパラメータ -k または --insecureparameteres に似ています
  • -mqttMaxAge : 未使用の MQTT 接続が保持される最大時間 (分単位)。デフォルト値: 60
  • -logDeprecate : 非推奨の使用法を警告として記録します。詳細については、ドキュメントのこのセクション を参照してください。デフォルトは false です。これは、Orion の起動後に log admin REST API を使用して deprecated フィールドを使用して変更できます

環境変数を使用した設定

Orion は、環境変数を使用した引数の受け渡しをサポートしています。 以下の表に示すように、各 CLI パラメータには同等の環境変数があります (contextBroker -U も同じ情報を取得するために使用できます)。

2つの事実を考慮する必要があります :

  • "フラグ" のように機能する CLI パラメータの環境変数は、   (つまり、有効か無効かのどちらかですが、実際の値はありません - -fg はその1つです)   大文字と小文字を区別する値の TRUE あるいは true (パラメータを有効にする) または FALSE あるいは false (パラメータを無効にする) をとることができます
  • 競合する場合 (つまり、環境変数と CLI パラメータを同時に使用する場合)、 CLI パラメータが使用されます
環境変数 同等の CLI パラメータ
ORION_LOG_DIR logDir
ORION_TRACE t
ORION_LOG_LEVEL logLevel
ORION_LOG_APPEND logAppend
ORION_FOREGROUND fg
ORION_LOCALIP localIp
ORION_PORT port
ORION_PID_PATH pidpath
ORION_MONGO_URI dbURI
ORION_MONGO_PASSWORD dbpwd
ORION_MONGO_DB db
ORION_MONGO_POOL_SIZE dbPoolSize
ORION_USEIPV4 ipv4
ORION_USEIPV6 ipv6
ORION_HTTPS https
ORION_HTTPS_KEYFILE key
ORION_HTTPS_CERTFILE cert
ORION_MULTI_SERVICE multiservice
ORION_HTTP_TIMEOUT httpTimeout
ORION_MQTT_TIMEOUT mqttTimeout
ORION_REQ_TIMEOUT reqTimeout
ORION_MUTEX_POLICY reqMutexPolicy
ORION_MONGO_WRITE_CONCERN writeConcern
ORION_CORS_ALLOWED_ORIGIN corsOrigin
ORION_CORS_MAX_AGE corsMaxAge
ORION_CPR_FORWARD_LIMIT cprForwardLimit
ORION_SUBCACHE_IVAL subCacheIval
ORION_NOCACHE noCache
ORION_CONN_MEMORY connectionMemory
ORION_MAX_CONN maxConnections
ORION_TRQ_POOL_SIZE reqPoolSize
ORION_IN_REQ_PAYLOAD_MAX_SIZE inReqPayloadMaxSize
ORION_OUT_REQ_MSG_MAX_SIZE outReqMsgMaxSize
ORION_NOTIF_MODE notificationMode
ORION_NOTIF_FLOW_CONTROL notifFlowControl
ORION_DROP_NOTIF simulatedNotification
ORION_STAT_COUNTERS statCounters
ORION_STAT_SEM_WAIT statSemWait
ORION_STAT_TIMING statTiming
ORION_STAT_NOTIF_QUEUE statNotifQueue
ORION_LOG_SUMMARY_PERIOD logSummary
ORION_RELOG_ALARMS relogAlarms
ORION_CHECK_ID_V1 strictNgsiv1Ids
ORION_DISABLE_CUSTOM_NOTIF disableCustomNotifications
ORION_DISABLE_FILE_LOG disableFileLog
ORION_LOG_FOR_HUMANS logForHumans
ORION_LOG_LINE_MAX_SIZE logLineMaxSize
ORION_LOG_INFO_PAYLOAD_MAX_SIZE logInfoPayloadMaxSize
ORION_DISABLE_METRICS disableMetrics
ORION_DISABLE_NGSIV1 disableNgsiv1
ORION_INSECURE_NOTIF insecureNotif
ORION_NGSIV1_AUTOCAST ngsiv1Autocast
ORION_MQTT_MAX_AGE mqttMaxAge