サーバー監視の基礎となるWebサーバーのログ(主にApache)の見方について少し書いてみようと思います。Apacheで解説しますが、nginxでもほぼおなじです。
モジュール読み込み
1 2 |
LoadModule log_config_module modules/mod_log_config.so LoadModule logio_module modules/mod_logio.so |
http.confの設定で上記を有効にしておくとログのカスタマイズが比較的柔軟にできるようです。※通常は最初から有効になっているようです。
一般的にいじるのは下記のような設定です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
## ErrorLog: The location of the error log file.# If you do not specify an ErrorLog directive within a <VirtualHost> # container, error messages relating to that virtual host will be # logged here. If you *do* define an error logfile for a <VirtualHost> # container, that host's errors will be logged there and not here. # #エラーログのファイルパス(通常はここにはかれます) ErrorLog logs/error_log # # LogLevel: Control the number of messages logged to the error_log. # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. # #エラーログのレベル() LogLevel warn # The following directives define some format nicknames for use with # a CustomLog directive (see below). # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog logs/access_log combined |
ログレベル
これ以上のレベルのものをログに吐き出します。レベルを下げればたくさんの情報が見れる反面、情報量が多すぎておえない、ということにもなります。
ディフォルトはwarnです。
レベルについては下記リンクを見てみましょう。
AdminWeb エラーログに記録されるレベルの設定(LogLevel)
customerログ
accessログのことです。combinedというのはApacheのオリジナルのフォーマットのことです。
AdminWeb ログファイルの場所(CustomLog, ErrorLog)
他にもJSON形式でだしたり、syslogにデータをまとめたりと様々なパターンがあるようです。
エラーログ
1 |
[Thu Jan 26 20:11:53 2017] [error] [client 192.168.33.1] Use of uninitialized value $str in substitution (s///) at base/StringUtil.pm line 129., referer: http://192.168.33.10/cgi-bin/ |
上記のように時間、とエラーレベルクライントとエラーの情報などがはかれます。
アクセスログ
アクセスログも同じように見方があります(詳細は下記リンクを参考に)
さくらのナレッジ 「ログの見かた」~初心者でもよくわかる!VPSによるWebサーバー運用講座(1)
参考文献
SoftWareDesign 2016年/9月