コンテンツにスキップ

Runbook: show techsupport (generate_dump) のアーカイブが GB 級に肥大化

実行前提

/var/dump/ の手動削除 / logrotate 強制実行 / journalctl --vacuum-size過去のログを永久喪失させる。障害解析中の dump を消すと再現できない。実行前に必要な dump を別ホストに退避scp)し、保持期間ポリシーを NOC と合意すること。ロールバック不可(削除後は復元不能)。

症状

  • /var/dump/sonic_dump_*.tar.gz が 数百 MB 〜 GB 単位
  • 生成に 10 分以上かかる / 完了せずタイムアウト(techsupport-timeout.md も参照)
  • /var/log 配下が溢れて他 process が disk full エラー

想定原因(優先度順)

  1. /var/log/syslog* の長期保持: rotate されず数 GB 蓄積
  2. core dump の同梱: /var/core/ に過去の crash dump が大量
  3. 特定 daemon が DEBUG ログを吐き続けている
  4. BGP / FRR の log volume 過大(debug bgp updates 等が有効のまま)
  5. counters CSV / dump の冗長収集: cumulative ログ

切り分け手順

flowchart TD
    A[techsupport が巨大化] --> B{core dump 多数?}
    B -- Yes --> B1["/var/core を整理 / クラッシュ原因を解消"]
    B -- No --> C{log rotate 設定 OK?}
    C -- No --> C1["rsyslog / logrotate 設定を修正"]
    C -- Yes --> D{特定 DB dump が巨大?}
    D -- Yes --> D1["CONFIG_DB / FRR running-config を確認"]
    D -- No --> E[show techsupport の since オプションで範囲限定]

確認コマンド

1. dump 構成

ls -lhS /var/dump/ | head
sudo tar -tzf /var/dump/sonic_dump_<latest>.tar.gz | xargs -I{} echo {} | head -50
sudo tar -tzvf /var/dump/sonic_dump_<latest>.tar.gz | sort -k3 -n -r | head -30

2. /var/log 占有

sudo du -sh /var/log/* | sort -rh | head
sudo ls -lh /var/log/syslog*
sudo journalctl --disk-usage

3. core dump

sudo ls -lh /var/core/ 2>/dev/null
sudo du -sh /var/core/ 2>/dev/null

4. ログレベル

sonic-db-cli CONFIG_DB hgetall "LOGGER|*"
docker exec bgp vtysh -c "show debugging"

5. logrotate 状態

sudo cat /etc/logrotate.d/rsyslog
sudo cat /etc/cron.daily/logrotate
sudo logrotate -d /etc/logrotate.conf 2>&1 | head -50

対処方法

  • ログレベル正常化: sonic-db-cli CONFIG_DB hset "LOGGER|<comp>" LOGLEVEL NOTICEロールバック: 元の LOGLEVEL を控えて hset で戻す)
  • FRR debug 解除: vtysh -c "no debug bgp updates"
  • 古い dump 削除: sudo find /var/dump/ -name "sonic_dump_*.tar.gz" -mtime +14 -print で確認後、退避済みであることを確認してから -delete
  • core dump: sudo find /var/core/ -mtime +14 -print で確認、退避後に削除
  • logrotate 強化: /etc/logrotate.d/rsyslogrotate / size / compress を調整

関連ページ

引用元

本ページの根拠は引用元 12 を参照。


  1. sonic-net/sonic-utilities @ master — generate_dump 

  2. sonic-net/sonic-utilities @ master — show/main.py