vCenter Server を 8.0U3g にアップデート後、 vmware_postgres_log および vmware_vtsdb_postgres_log が存在しないため、vPostgres のログローテーションが失敗する。
search cancel

vCenter Server を 8.0U3g にアップデート後、 vmware_postgres_log および vmware_vtsdb_postgres_log が存在しないため、vPostgres のログローテーションが失敗する。

book

Article ID: 431487

calendar_today

Updated On:

Products

VMware vCenter Server 8.0

Issue/Introduction

免責事項: これは英文の記事「vCenter Server vPostgres log rotation fails due to missing vmware_postgres_log and vmware_vtsdb_postgres_log after updating to vCenter 8.0U3g」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


事象:

以下のログのローテーションが停止します。

  • /var/log/vmware/vpostgres/postgresql.log
  • /var/log/vmware/vtsdb/postgresql.log

その結果、/storage/log パーティションが 100% まで使用され、ログディスクの枯渇(ディスクフル)になる場合があります。

Environment

vCenter 8.0U3g

Cause

  • vCenter を 8.0U3g にアップグレード後、 vmware_postgres_log および vmware_vtsdb_postgres_log /etc/logrotate.d/vmware-additional-data.lr ファイルに統合されました。
  •  "postgresql.log" が正しく指定されていなかったため、ログローテーションが想定通りに動作していませんでした。

 

その結果、ログファイルがローテーションされず、最終的に /storage/log パーティションがいっぱいになる事象が発生します。

Resolution

暫定回避策:


vi などのエディタを使用して、以下の作業を実施します:

/etc/logrotate.d/vmware-additional-data.lr ファイルの
257 行目に /var/log/vmware/vpostgres/postgresql.log のエントリー

# From `vmware_postgres_log.lr`

/var/log/vmware/vpostgres/postgresql.log

/var/log/vmware/vpostgres/postgresql-%d.log
{
    rotate 30
    firstaction
        dim=$(date -d "$(date +%Y-%m-01) +1 month -1 day" +%d)
        find /var/log/vmware/vpostgres/ -name "postgresql.log-*gz" -mtime +$dim -exec rm {} \;
    endscript
    daily
    maxage 30
    dateext
    dateyesterday
    dateformat -%Y-%m-%d_%H:%M:%S
    compress
    copytruncate
}


274 行目に /var/log/vmware/vtsdb/postgresql.log のエントリー

# From `vmware_vtsdb_postgres_log.lr`

/var/log/vmware/vtsdb/postgresql.log
{
   rotate 30
   firstaction
      dim=$(date -d "$(date +%Y-%m-01) +1 month -1 day" +%d)
      find /var/log/vmware/vtsdb/ -name "postgresql.log-*gz" -mtime +$dim -exec rm {} \;
   endscript
   daily
   maxage 30
   dateext
   dateyesterday
   dateformat -%Y-%m-%d_%H:%M:%S
   compress
   copytruncate
}
Note: No other action should be needed as the cron job will run every hour. 
 
Note: If "postgresql.log" has already grown to +20gb, you will need to zero out the file in order for log rotation to work. 
>/var/log/vmware/vpostgres/postgresql.log
or
sudo truncate -s 0 /storage/log/vmware/vpostgres/postgresql.log

Additional Information