SYSLOG_CONFIG テーブル¶
概要¶
ホスト全体の rsyslog グローバル設定を CONFIG_DB に保持するシングルトンテーブル1。hostcfgd (sonic-host-services 内 syslog ハンドラ) が /etc/rsyslog.conf および各 docker の rsyslog テンプレに反映する。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>SYSLOG_CONFIG")]
DM["hostcfgd"]
CDB --> DM
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
固定キー GLOBAL のみのシングルトン container (SYSLOG_CONFIG.GLOBAL)。
フィールド¶
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
rate_limit_interval |
uint32 (0..2147483647 秒) | なし | rsyslog rate-limit インターバル (syslog-rate-limit-interval typedef) |
rate_limit_burst |
uint32 (0..2147483647 件) | なし | rate-limit バースト件数 (syslog-rate-limit-burst typedef) |
format |
enum welf/standard |
standard |
ログ書式 (log-format typedef) |
welf_firewall_name |
string | なし | WELF 形式時のファイアウォール名 (format != 'standard' の must 制約あり) |
severity |
enum none/debug/info/notice/warn/error/crit |
notice |
ローカル最低 severity (rsyslog-severity typedef) |
制約¶
welf_firewall_nameはmust "(../format != 'standard')"で WELF 形式時にのみ意味を持つ- container 名
SYSLOG_CONFIG、内部 container 名GLOBAL(YANG コメントにはSYSLOG_CONFIG_LISTと書かれているが、実体は container)1
購読者¶
hostcfgd(sonic-host-services): CONFIG_DB → rsyslog テンプレ展開 → systemd reload- 各 docker 内の
rsyslogd: ホスト側 rsyslog にフォワード後、グローバル設定で集約
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
SYSLOG_CONFIG_FEATURE,SYSLOG_SERVER - 関連 CLI:
config syslog rate-limit-host/config syslog level - 関連 YANG:
sonic-syslog
関連リファレンス¶
- YANG:
sonic-syslog - CLI:
config syslog
引用元¶
関連ページ¶
値依存挙動マトリクス¶
format (log-format): welf / standard (default)¶
severity (rsyslog-severity): none / debug / info / notice (default) / warn / error / crit¶
| フィールド | 値 | 挙動 |
|---|---|---|
format |
standard |
標準 rsyslog フォーマットで書き込み。welf_firewall_name は無視 |
format |
welf |
WELF フォーマット出力。welf_firewall_name の設定が必須(YANG must 制約) |
welf_firewall_name |
設定あり + format=standard |
YANG must 制約違反で書き込み拒否 |
rate_limit_interval |
0 |
rate-limit 無効化 |
rate_limit_burst |
0 |
バースト上限 0 = 全ログドロップ |
severity |
none |
フィルタなし(全 severity を出力) |
例外条件・特殊挙動¶
- rsyslog 再起動失敗時は設定不反映:
systemctl restart rsyslog-configが失敗すると"RSyslogCfg: Failed to restart rsyslog service"を LOG_ERR してキャッシュ更新せずに return する。CONFIG_DB の値は書き込まれているが rsyslog には反映されない(次回 hostcfgd 再起動またはテーブル変更時に再試行される)。 - 変更なしはノーオペレーション:
SYSLOG_CONFIGとSYSLOG_SERVERをまとめてキャッシュと比較し、変更がなければsystemctl restartをスキップする。 - YANG must 制約:
welf_firewall_nameはformat != 'standard'の must 制約を持ち、format = standardのまま書き込もうとすると YANG バリデーション層で拒否される(hostcfgd レベルの追加チェックはなし)。
運用ヒント¶
典型値¶
- key 形式:
SYSLOG_CONFIG|GLOBAL。 format:standard、welf_facility: 任意、rate_limit_interval/rate_limit_burstでドロップ閾値。
よくある誤設定¶
- rate_limit_burst が小さすぎて障害発生時に重要 syslog が捨てられる。
確認コマンド¶
-
src/sonic-yang-models/yang-models/sonic-syslog.yang(containerSYSLOG_CONFIG/GLOBAL、typedeflog-format/rsyslog-severity). https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-syslog.yang ↩↩