Nginx-TOmcatなどのメンテナンス常用サービスのログ分割-logrotate
7841 ワード
Nginx-TOmcatなどのメンテナンス常用サービスのログ分割-logrotate
目次
一、Nginx-TOmcat等の常用サービスログ分析 Nginxログ Tomcatログ MongoDBログ Redisログ 二、ログカットサービスlogrotate 三、ログカット例 Nginx切一切 Tomcat切一切
記事GitHubアドレス:運用次元の一般的なアプリケーションのログ分割
一、Nginx-TOmcatなどの常用サービスログ分析
実際の生産では、どのアプリケーションのログが自動的に分割されるか知っていますか?サービスによるタイミング分割が必要なアプリケーション・ログはどれですか?次に見てみましょう.
比較の基準自動切断しますか? 再起動は自動的に分割されますか?
Nginxログ
ログ名
ログの説明
自動切断
タイミングカットが必要かどうか
access.log
Nginxアクセスログ
いいえ
はい
error.log
Nginxエラーログ
いいえ
はい
サイトログを個別に構成する必要がある場合はserverモジュールに追加する必要がある
ログ名
ログの説明
自動切断
タイミングカットが必要かどうか
catalina.out
Tomcatランタイムログとコンソールログへの出力(適用)
いいえ
はい
catalina.2019-04-28.log
Tomcat自体が実行するログは、主に起動と一時停止です.
はい
いいえ
localhost_access_log.2019-04-28.txt
Tomcatのログにアクセスして、時間と資源を要求して、状態コードはすべて記録があります
はい
いいえ
localhost.2019-04-28.log
アプリケーション初期化(listener,filter,servlet)未処理の例外が最後にTomcatによってキャプチャされて出力されるログ
はい
いいえ
host-manager.2019-04-28.log
Tomcatの持参したHost Managerプロジェクトのログ情報を入れる
はい
いいえ
manager.2019-04-28.log
Tomcatには、Managerプロジェクト固有のログファイルが付属しています
はい
いいえ
Tomcatのログはとても面白くて、私も真剣に見てやっとその中の奥義を発見しました.
重点を置いた
Tomcatの
他のログTomcatは自動的に切断されますが、ログは翌日切断され、ログが切断され、再起動すると切断されます.デイリーカット:ログが24.00分に切断されるという意味で、00:00:10にその日の最初のログが発生した場合はカットします. ログがある場合のみカット:翌日の要求を満たしているが、翌日までログが発生していない場合は、翌日の最初のログが発生するまでカットするという意味です. 切断再開:上記の条件が満たされていなければ翌日になっても1つのログが生成されない場合、Tomcatの再起動時に切断が行われるという意味です.
上の内容は少し回りますが、いくつかの例を挙げて理解します.
例1:
例2:
MongoDBログ
MongoDBのログは普段はあまり注目されていませんが、こちらでは記録をします.
MongoDBのログが切断されるかどうかは、MongoDBの構成パラメータによって異なります.
ただし、MongoDBのログはデフォルトでは切断されません(再起動しなければ).
Redisログ
Redisログのデフォルトも切断されず、再起動しても切断されません.Redisログは実際の環境でも切断を推奨しており、切断頻度を低減することができます.あるRedisログが1 Gに達し、2年間実行されているのを見て、ログを検索するのは不便なので、Redisのログもカットすることをお勧めします.
二、ログカットサービスlogrotate
通常、対応するログカットサービスを探していますが、システムのデフォルトがログ付きのカットサービスをデフォルトで持っていることを知りません
logrotate公式リンク
logrotateコマンドおよびオプション
logrotateプロファイルパス
構成例
共通コマンド
注意事項:ログを日単位でカットするように設定した場合、具体的な実行時間はいつですか?24.00で切断されるとは思わないでください.切断される時間はランダムです.このランダム値は 本番環境でどのようにタイミングログを分割するか実際の本番環境では、通常、日次ログ分割を行います.つまり、前日のログ分割を24.00で行いたいと考えています.
三、ログカットの例
Nginxすべてを切る
例:
Tomcatはすべてを切る
例:
目次
記事GitHubアドレス:運用次元の一般的なアプリケーションのログ分割
一、Nginx-TOmcatなどの常用サービスログ分析
実際の生産では、どのアプリケーションのログが自動的に分割されるか知っていますか?サービスによるタイミング分割が必要なアプリケーション・ログはどれですか?次に見てみましょう.
比較の基準
Nginxログ
ログ名
ログの説明
自動切断
タイミングカットが必要かどうか
access.log
Nginxアクセスログ
いいえ
はい
error.log
Nginxエラーログ
いいえ
はい
サイトログを個別に構成する必要がある場合はserverモジュールに追加する必要がある
access_log logs/djx.log ;
Tomcatログログ名
ログの説明
自動切断
タイミングカットが必要かどうか
catalina.out
Tomcatランタイムログとコンソールログへの出力(適用)
いいえ
はい
catalina.2019-04-28.log
Tomcat自体が実行するログは、主に起動と一時停止です.
はい
いいえ
localhost_access_log.2019-04-28.txt
Tomcatのログにアクセスして、時間と資源を要求して、状態コードはすべて記録があります
はい
いいえ
localhost.2019-04-28.log
アプリケーション初期化(listener,filter,servlet)未処理の例外が最後にTomcatによってキャプチャされて出力されるログ
はい
いいえ
host-manager.2019-04-28.log
Tomcatの持参したHost Managerプロジェクトのログ情報を入れる
はい
いいえ
manager.2019-04-28.log
Tomcatには、Managerプロジェクト固有のログファイルが付属しています
はい
いいえ
Tomcatのログはとても面白くて、私も真剣に見てやっとその中の奥義を発見しました.
重点を置いた
Tomcatの
catalina.out
ログは自動的に切断されないので、タイミング的に切断する必要があります.Tomcatを再起動しても自動的に切断されません.他のログTomcatは自動的に切断されますが、ログは翌日切断され、ログが切断され、再起動すると切断されます.
上の内容は少し回りますが、いくつかの例を挙げて理解します.
例1:
Tomcat 2019 4 28 15.30 , catalina.2019-04-28.log 。2019 4 29 2019 4 29 9.30 。 ?
2019 4 29 9.30 。
例2:
Tomcat 2019 4 28 10.30 , catalina.2019-04-28.log 。 2019 4 29 3.30 Tomcat , ,Tomcat 2019 4 29 3.30 , 2019 4 29 3.50 。 ?
Tomcat 。
MongoDBログ
MongoDBのログは普段はあまり注目されていませんが、こちらでは記録をします.
MongoDBのログが切断されるかどうかは、MongoDBの構成パラメータによって異なります.
logRotate= rename/reopen
#3.0.0 。 rename reopen:
rename 。 。
reopen Linux/Unix 。 reopen Linux/Unix logrotate , 。
reopen, logappend
logappend= true # MongoDB , 。 ,MongoDB 。
ただし、MongoDBのログはデフォルトでは切断されません(再起動しなければ).
MongoDB
ログカット記事参照:MongoDBログカット3方式Redisログ
Redisログのデフォルトも切断されず、再起動しても切断されません.Redisログは実際の環境でも切断を推奨しており、切断頻度を低減することができます.あるRedisログが1 Gに達し、2年間実行されているのを見て、ログを検索するのは不便なので、Redisのログもカットすることをお勧めします.
二、ログカットサービスlogrotate
通常、対応するログカットサービスを探していますが、システムのデフォルトがログ付きのカットサービスをデフォルトで持っていることを知りません
logrotate
.私たちのシステムのログ/var/log/cron
・/var/log/maillog
・/var/log/messages
などはすべてlogrotate
によってカットされているので、ファイル/etc/logrotate.d/syslog
具体的な構成を見ることができます.logrotate
毎日または毎月周期的にログを自動カット・圧縮し、メールで送信することができます.logrotate
のオートカットはcrond
でタスクを実行します.logrotate公式リンク
logrotateコマンドおよびオプション
logrotate [OPTION...]
-d, --debug # , 。 。
-f, --force #
-m, --mail=command # , /bin/mail
-s, --state=statefile # , /var/lib/logrotate.status 。
-v, --verbose # logrotate
-l, --log=STRING #
--version #
logrotateプロファイルパス
logrotate
プロファイルの場所は/etc/logrotate.conf
logrotate
ユーザプロファイルがある/etc/logrotate.d/
logrotate
の実行状態ファイル/var/lib/logrotate.status
logrotateプロファイルのパラメータ:su djx djx # , root。 , 。
compress # gzip , xxx.log-20131216.gz ; ,
compresscmd # , gzip
uncompresscmd # gunzip
compressext # , gzip .gz。
copy # , create 。
copytruncate # , ; , , 。 create 。
create mode owner group # , , 。
dateext # ! YYYYMMDD , xxx.log-20131216 , , , xxx.log-1
dateformat format_string #
ifempty # , 。 notifempty
notifempty # , , ifempty
mailfirst # ,
maillast # , ,( )
rotate count # , , 。 200 , 180 , 20 。 daily, , 180 。
maxage count # count , mail 。
daily #
weekly # , 。
monthly # , 。
yearly # ,
nocompress # 。
size size #
olddir dir #
start count # , , 1 。 。
missingok # ,
mail [email protected] # rotate , rotate , , 。
prerotate # logrotate
postrotate # logrotate
### 3.85
hourly #
構成例
# , 。
/opt/tomcat/logs/catalina.out{
compress
compressext .gz
copytruncate
dateext
notifempty
maillast
rotate 180
daily
size 10M
olddir /opt/logs/tomcat
missingok
mail [email protected] # 。
}
共通コマンド
logrotate -d -f /etc/logrotate.d/tomcat #
logrotate -f /etc/logrotate.d/tomcat # ,
注意事項:
crond
サービスに依存し、最終的にはファイルに依存する/etc/anacrontab
、[root@localhost ~]# cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs #
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
タイミングタスクは3-22時の5分-45分にログカットが行われることがわかります.crond
サービスでタイミングカット(logrotate-f/etc/logrotate.d/tomcat)を行います.しかし、多くのアプリケーションでは、24.00で実行されるタイミングタスクがあります.その時間帯には大量のログが発生します.もし私たちがこの時点で切断すると、より多くの重要なログが失われる可能性があります(そして、この時点ではタスクが多く、リソースの消費が多く、切断も遅い)、まず開発に問い合わせることをお勧めします.24.00に大量のタイミングタスクがあるかどうか、24.00の数分前か数分後に切断することができます.これにより、大量のログの損失を回避できます.三、ログカットの例
Nginxすべてを切る
例:
Nginx
ログ保存/opt/nginx/logs/
、ログを含むaccess.log
およびerror.log
./opt/nginx/logs/* {
compress
compressext .gz
copytruncate
dateext
notifempty
maillast
rotate 180
daily
size 10M
olddir /opt/logs/nginx
missingok
mail [email protected] # 。
}
Tomcatはすべてを切る
例:
Tomcat
ログが保存されている/opt/tomcat/logs/
ログが含まれているcatalina.out
他のログは自動的にカットされます./opt/tomcat/logs/catalina.out{
compress
compressext .gz
copytruncate
dateext
notifempty
maillast
rotate 180
daily
size 10M
olddir /opt/logs/tomcat
missingok
mail [email protected] # 。
}