ディスク容量不足の対処(daemon.log肥大化・Datadogログ)

Zabbixからディスク容量不足の警告が来たため、原因を調査して対処しました。

問題の状況

/dev/sda1(20GB)が 93% 使用中(残り 1.6GB)という状態でした。

df -h
# /dev/sda1  xfs  20G  18G  1.6G  93%  /
容量を圧迫していた原因
場所 サイズ 原因
/var/log/daemon.log 5.8GB logrotate設定なし
/var/cache/apt/archives/ 1.9GB APTキャッシュ未クリア
/var/log/messages 587MB 大きめだが許容範囲

解決方法

1. APTキャッシュのクリア
sudo apt clean

これで /var/cache/apt/archives/ の約 1.9GB を回収。

2. daemon.log のlogrotate設定を追加

daemon.log/etc/logrotate.d/rsyslog の対象外になっており、ローテーションされずに 5.8GB まで膨らんでいました。

sudo tee /etc/logrotate.d/daemon-log << 'EOF'
/var/log/daemon.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    sharedscripts
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}
EOF

強制ローテーションを実行:

sudo logrotate -f /etc/logrotate.d/daemon-log
3. 結果確認
df -h /dev/sda1
# /dev/sda1  xfs  20G  16G  3.5G  83%  /

ls -lh /var/log/daemon.log*
# -rw-r----- 1 root adm  121  5月 23 09:35 /var/log/daemon.log
# -rw-r----- 1 root adm 5.8G  5月 23 09:35 /var/log/daemon.log.1

使用率が 93% → 83% に改善(残り 1.6GB → 3.5GB)。

Tips:daemon.log.1 はまだ圧縮前の状態。次回のlogrotate実行時に .gz へ圧縮されさらに縮小されます。急ぎであれば sudo rm /var/log/daemon.log.1 で即時削除も可能。

追加対処:Datadog agent.log のlogrotate設定

/var/log/datadog/agent.log も肥大化する問題があるため、事前に対策しました。

Datadogエージェントはログファイルのファイルディスクリプタを保持し続けるため、通常のローテーション(ファイル移動+シグナル)では切り替えがうまく動かないことがあります。copytruncate を使うことでエージェントの再起動なしに安全にローテーションできます。

sudo tee /etc/logrotate.d/datadog-agent << 'EOF'
/var/log/datadog/agent.log
/var/log/datadog/process-agent.log
/var/log/datadog/trace-agent.log
/var/log/datadog/security-agent.log
/var/log/datadog/system-probe.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    copytruncate
}
EOF

設定のドライラン確認:

sudo logrotate -d /etc/logrotate.d/datadog-agent

まとめ

  • apt clean1.9GB 回収
  • daemon.log ローテーションで 5.8GB 解消
  • Datadog ログも今後自動ローテーションされるよう設定済み
  • 合計で使用率 93% → 83% に改善