サービスの再起動後にログフローが開始されるかどうかを確認するには?

サービスの再起動後にログフローが開始されるかどうかを確認するには?

サービスの再起動後にログファイルのフローが開始されたことを確認することが確認手順の一部であるユースケースはありますか?それを簡単に達成する方法は?

ベストアンサー1

tail -f私は、「問題のログファイルがあり、新しいメッセージが表示され続けるかどうかを確認する」よりも厳しい(おそらく自動化に適している)ことを望んでいるとします。

サービスに専用のログファイルがあり、サービスが実際の書き込み用にのみファイルを開く場合は、ファイルの最後の変更時間がプロセスを再開してからであることを確認するのが最も簡単です。

それは次のとおりです。

starttime=$(date +%s)
# <insert command to start service here>
sleep 5   # wait for an appropriate time for service startup
filetime=$(stat -c %Y <insert logfile pathname here>)
if [ $filetime -gt $starttime ]
then
    echo "SUCCESS: service wrote at least one new log entry"
else
    echo "FAIL: no new log entries detected"
fi

ログメッセージの形式にタイムスタンプが含まれている場合は、最後にログに記録されたメッセージのタイムスタンプがサービスの再起動時間以降であるかどうかを確認できます。

ただし、最も徹底的な検証は、サービスに対して既知の種類の要求を実行して、予想される内容を含むメッセージを記録するように動機付けることです。その後、最初にログを確認し、ファイルのサイズ/場所を記録し、テスト要求を送信し、適切な時間待機してから、ログされた場所から予想されるメッセージのログを取得できます。

おすすめ記事