PowerFlexラック: Syslog転送機能が有効になっている場合の/var/log領域の問題
Summary: この記事では、ログ ローテーションが十分な頻度で発生していないことによる/var/log領域の問題について説明します。
Symptoms
現在のlogrotate構成では、メッセージ ファイルが週に1回ローテーションされますが、VxFlex ManagerでSyslog転送が有効になっている場合は、十分な速度でローテーションされない可能性があります。
ファクト:
- Syslog転送機能は、VxFlex Managerで有効になっています。
- /var/logパーティションがすぐにいっぱいになります。
- これはシステムによって大きく異なります
- VxFlex統合ラックまたはアプライアンス システムのデバイスでリモートSyslogが有効になっていて、VxFlex Managerにsyslogイベントを送信するように構成されている
Cause
/var/logファイル システムが100%の場合、すべてのリソースのリソース インベントリーが失敗します
メモ: 以下にリストされている警告または重要なアラートは、スペースがいっぱいでこれらのチェックを実行できない場合、または領域がすぐにいっぱいになる場合は機能しない場合があります。
- VxFlex Manager UIに、 >75%の場合に警告が表示されます。
VxFlex Manager UIで、 > 95%の場合に「Critical」と表示される:
df -hは、/var/logの使用容量が非常に高く、急速に増加していることを示しています。
Resolution
Syslog転送が有効になっているVxFlex Managerアプライアンスのログ ローテーションを修正するには、次の手順を実行して、logrotateの構成、既存のログの圧縮、rsyslog設定の変更、デバッグ ログ レベルの低下を実行できます。
手順1: VxFlex Managerにsshで接続し、rootユーザーになります。 sudo su -
手順2:次のテキストが次の場所に存在することを確認して、syslog logrotateルールを編集(viエディター) /etc/logrotate.d/syslog
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { size 100M nodateext rotate 5 compress missingok copytruncate postrotate /bin/killall -s SIGHUP -r rsyslog endscript }
手順3: 次のコマンドを入力して、新しい設定が正しく保存されているかどうかを確認します。
cat /etc/logrotate.d/syslog
手順4: /var/logスペースがいっぱいになる速さに応じて、次のいずれかのオプションを選択します。
毎日/var/logがいっぱいになることはないが、週次よりも速いローテーションが必要な環境の場合は、次のコマンドを使用して、logrotateを毎週から毎日に変更します。
cp /etc/cron.weekly/logrotate /etc/cron.daily/
毎日のローテーションで対応できる速度よりも早く/var/logがいっぱいになる環境の場合は、次のコマンドを使用してlogrotateをdailyからhourlyに変更します。
cp /etc/cron.daily/logrotate /etc/cron.hourly/
手順5: 次のコマンドを実行して、既存のファイルを圧縮し、スペースを解放します。
for log in `ls /var/log/messages-*`; do sudo gzip $log; done
メモ: /var/log/messagesファイルがいっぱいで圧縮できない場合は、次のコマンドを使用してクリアします。
cat /dev/null > /var/log/messages
手順6: logrotate構成が正常に動作しているかどうかを確認するには、次のコマンドを実行します。
logrotate -f /etc/logrotate.d/syslog
手順7: VxFlex Managerアプライアンスの/var/log/messagesファイルへの転送されたSyslogイベントのログ記録を停止するには、次の手順を実行します。
- 次のコマンドを使用して、/etc/rsyslog.d/の下にconfファイルを作成します。
vi 21-stop-remote-host-syslog-logging.conf - 上記で新しく作成したファイルに次の行を追加します。
if $fromhost-ip != '127.0.0.1' then ~ - 次のように入力して、ファイルを保存します。
:wq! - rsyslogサービスを再開します。
systemctl restart rsyslog.service
注:21はrsyslogに使用されるプライオリティ番号です。再起動後、rsyslogは受信したリモートsyslogを/var/log/messagesに保存しません。VxFlex ManagerのローカルSyslogは引き続き/var/log/messagesに保存されます。
メモ: VxFlex ManagerでSyslog転送が有効になっていない場合でも、ホストはVxFlex Managerをポイントすることができます。これにより、/var/log/messagesファイルがスパムされる可能性があります。VxFlex Manager Syslogがオンかどうかに関係なく、メッセージ ファイルがフラッディングされる場合は、手順7を構成します
ステップ8: 次の手順を実行して、VxFlex Managerアプライアンスのlogstashのデバッグ ログ レベルを変更します。
- 次のコマンドを使用して、ログ レベルを編集します。
vi /etc/logstash/logstash.yml - ファイル内のデバッグ設定を検索します
- ログ レベルをinfo(デフォルト)からerrorに変更します

- 次のファイルを編集します。 vi /etc/logstash/log4j2.properties
- デフォルト設定では、rootLogger.appenderRef.consoleで始まる行があり、次のように#を使用してこの行をコメントアウトします。
-
次のコマンドを実行して、logstashサービスを再開します。 systemctl restart logstash
手順8: /var/logファイル システムが100%フルだった場合は、VxFlex Managerアプライアンスを再起動します。これにより、すべてのサービスがバックアップを正しく開始します。
手記: テスト アラートを送信して、スペースの問題を解決してアプライアンスを再起動した後、アラート コネクターが正しく機能していることを確認します。
Additional Information
- /var/log/messagesへのSyslogメッセージの記録を停止する修正は、VxFlex Managerの将来のリリースで進行中です。
- これは、バージョン3.4.0.4271までのSyslog転送機能を持つVxFlex Managerのすべてのバージョンに関連しています。