TELEMETRY テーブル¶
概要¶
gRPC ストリーミングテレメトリ / gNMI サーバの設定。TLS 証明書パスと gNMI ランタイムオプションを保持する1。telemetry コンテナ (docker-telemetry、docker-gnmi) が起動時に CONFIG_DB を読み込む。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>TELEMETRY")]
DM["telemetry"]
CDB --> DM
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
TELEMETRY|certs¶
| フィールド | 型 | 説明 |
|---|---|---|
ca_crt |
string (*.cer パス) |
CA 証明書のローカルパス |
server_crt |
string (*.cer) |
サーバ証明書 |
server_key |
string (*.key) |
サーバ秘密鍵 |
TELEMETRY|gnmi¶
| フィールド | 型 | 説明 |
|---|---|---|
client_auth |
boolean | クライアント認証要求 |
log_level |
uint8 (0..100) | gNMI ログレベル |
port |
inet:port-number | gNMI 待受 TCP ポート |
save_on_set |
boolean | Set RPC 完了時に config 永続化 |
enable_crl |
boolean | CRL (Certificate Revocation List) 有効化 |
crl_expire_duration |
uint32 | CRL キャッシュ期限 [秒] |
user_auth |
string password/jwt/cert/none |
ユーザ認証方式 |
購読者¶
telemetry(docker-telemetry) /gnmi(docker-gnmi): プロセス起動時にこのテーブルを読む
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
GNMI_CLIENT_CERT(gNMI クライアント証明書 fingerprint) - 関連 CLI:
config telemetry config-db、config telemetry server、gnoi-system reboot等 - 関連 YANG:
sonic-telemetry、sonic-gnmi
関連リファレンス¶
- YANG:
sonic-telemetry - CLI:
config telemetry
引用元¶
関連 Topics¶
値依存挙動マトリクス¶
user_auth (string pattern): password / jwt / cert / none¶
client_auth (boolean): true / false¶
save_on_set (boolean): true / false¶
enable_crl (boolean): true / false¶
| フィールド | 値 | 挙動 |
|---|---|---|
user_auth |
password |
ユーザ名/パスワード認証 |
user_auth |
jwt |
JWT トークン認証 |
user_auth |
cert |
クライアント証明書認証 |
user_auth |
none |
認証なし |
client_auth |
true |
ca_crt 未設定/ファイル不在だとサーバ起動失敗 |
client_auth |
false |
サーバ証明書のみで TLS 接続 |
save_on_set |
true |
gNMI Set RPC 完了時に config save を実行 |
save_on_set |
false |
Set は CONFIG_DB のみに反映。永続化しない |
enable_crl |
true |
CRL チェック有効化。crl_expire_duration も設定が必要 |
port |
未設定 / 0 |
unix_socket も未設定の場合サーバ起動失敗 |
| 全フィールド | 起動後変更 | コンテナ再起動 (systemctl restart telemetry) まで反映されない |
例外条件・特殊挙動¶
- 起動時のみ参照:
telemetryコンテナは起動時に CONFIG_DB を一回読み込む。実行中の変更はコンテナ再起動(systemctl restart telemetry)なしには反映されない。 - ポート未設定でサーバ不起動:
portが 0 以下かつunix_socketも未設定の場合、"no listener configured: port must be > 0 or unix_socket must be set"を返してサーバが起動しない。 - TCP / UDS リスナー失敗時の縮退動作: TCP listen 失敗時は
"Failed to open listener port <port>: disabling TCP listener"を Warningf し UDS のみで継続(その逆も同様)。両方失敗した場合はサーバ起動エラーになる。 - TLS 証明書の不整合:
server_crt/server_keyのいずれか一方のみ設定されていると"server certificate or key file path is empty"を返す。証明書ファイルが存在しない場合も stat エラーを返してサーバが起動しない。 - CA 証明書ファイル不在: mTLS 設定時に
ca_crtパスが存在しない場合"CA certificate file not found"を返す。
運用ヒント¶
典型値¶
- key 形式:
TELEMETRY|<key>(gnmi,certs等)`。 port:8080/50051、client_auth:true、log_level:2。
よくある誤設定¶
- client_auth=true なのに CA bundle 設定漏れで gNMI client が TLS handshake に失敗する。