fr-itaya / training

0 stars 0 forks source link

Linux - 負荷、ログ解析をしてみる #4

Closed fr-sato closed 10 years ago

fr-sato commented 10 years ago

サーバの負荷状況、ログファイルからの解析等、コマンドを用いて調査します。 WEBサイトでページが重たい場合や、不具合があって調査をするために負荷状況の把握やログファイルからの解析が必要になります。

■アクセス方法

自分のPCからPuTTYを使用して開発環境にリモートアクセスします。  

■課題1

開発環境のCPU利用率、load average等を調査し、調査で用いたコマンドの出力結果、およびCPU利用率やload average等の負荷状況をIssueのコメントに記述して下さい。

■課題2

開発環境のメモリ使用量を調査し、調査で用いたコマンドの出力結果、およびメモリの利用率、空きメモリ容量をIssueのコメントに記述して下さい。

■課題3

開発環境で動作中のプロセスを調査し、調査で用いたコマンドの出力結果の一部をIssueのコメントに記述して下さい。

■課題4

開発環境のHDD容量を調査し、調査で用いたコマンドの出力結果とHDDの残り容量をこのissueのコメントに記述して下さい。

■課題5

開発環境のApacheのログから複数のコマンドを用いて以下を出力して下さい。発行したコマンドと出力結果(長い場合は一部のみ)をIssueのコメントに記述して下さい。 Apacheのログファイルは/usr/local/apache2/logs/access_logにあります。

例)
2 /download/1.html
2 /download/2.html
1 /download/3.html
fr-itaya commented 10 years ago

4/8本日は課題1を17:55から夜礼(18:30)まで取り組みます。 残りの課題は4/9に回しますので、よろしくお願いいたします。

fr-itaya commented 10 years ago

出力結果からCPU利用率、ロードアベレージの読み取りまで終わらせられませんでした。 以下、途中経過です。


■課題1 開発環境のCPU利用率、load average等を調査する。

top - 09:25:13 up 6 days,  7:03,  1 user,  load average: 0.
Tasks:  70 total,   1 running,  69 sleeping,   0 stopped,
Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%h
Mem:    608280k total,   482400k used,   125880k free,    2
Swap:        0k total,        0k used,        0k free,   31
fr-itaya commented 10 years ago

4/9は15:00開始、課題1-5を夜礼までの3時間半で取り組みます。 よろしくお願いします。

fr-itaya commented 10 years ago
課題1:開発環境のCPU利用率、load average等を調査する。

(出力結果は最新のものに差し替えました)

top - 06:06:13 up 7 days,  3:44,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  65 total,   1 running,  64 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    608280k total,   483848k used,   124432k free,    24644k buffers
Swap:        0k total,        0k used,        0k free,   318396k cached
課題2:開発環境のメモリ使用量を調査する。
$ free
                 total       used        free     shared    buffers     cached
Mem:        608280     485112     123168          0      24780     319484
-/+ buffers/cache:     140848     467432
Swap:              0            0            0
課題3:開発環境で動作中のプロセスを調査
$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  19360  1552 ?        Ss   Apr02   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Apr02   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Apr02   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S    Apr02   0:00 [kworker/0:0]
root         5  0.0  0.0      0     0 ?        S    Apr02   0:00 [kworker/u:0]
課題4:開発環境のHDD容量を調査
$ df
Filesystem     1K-blocks        Used  Available       Use%     Mounted on
/dev/xvda1       8256952 3278100   4894968         41%      /
tmpfs                  304140             0     304140           0%     /dev/shm

$ df -h
Filesystem      Size  Used    Avail Use%   Mounted on
/dev/xvda1      7.9G  3.2G  4.7G  41%     /
tmpfs           298M          0  298M    0%    /dev/shm
課題5:開発環境のApacheのログから出力

使用したApacheログ(一部)

$ cat /usr/local/apache2/logs/access_log
122.208.206.18 - - [19/Mar/2014:07:34:37 +0000] "GET / HTTP/1.1" 200 39
122.208.206.18 - - [19/Mar/2014:07:34:38 +0000] "GET / HTTP/1.1" 304 -
122.208.206.18 - - [19/Mar/2014:07:46:55 +0000] "GET / HTTP/1.1" 304 -
122.208.206.18 - - [19/Mar/2014:07:46:56 +0000] "GET / HTTP/1.1" 304 -
122.208.206.18 - - [19/Mar/2014:08:36:43 +0000] "GET / HTTP/1.1" 304 -
  1. アクセス日(ex.) [01/Jan/2010:22:01:04 +0900]
    • コマンド $ cat /usr/local/apache2/logs/access_log | cut -f4,5 -d ' '
    • 出力結果
$ cat /usr/local/apache2/logs/access_log | cut -f4,5 -d ' '
[19/Mar/2014:07:34:37 +0000]
[19/Mar/2014:07:34:38 +0000]
[19/Mar/2014:07:46:55 +0000]
[19/Mar/2014:07:46:56 +0000]
[19/Mar/2014:08:36:43 +0000]
  1. アクセスURL(ex.) /index.html
    • コマンド $ cat /usr/local/apache2/logs/access_log | awk -F\" '{print $2}' | awk -F' ' '{print $2}' | sort | uniq
    • 出力結果
$ cat /usr/local/apache2/logs/access_log | awk -F\" '{print $2}' | awk -F' ' '{print $2}' | sort | uniq
/
/agSearch/SQlite/main.php
/cgi-bin/php
/favicon.ico
/HNAP1/
http://www.baidu.com
  1. アクセスURLごとのPV数を多い順にソート
    • コマンド $ cat /usr/local/apache2/logs/access_log | awk -F\" '{print $2}' | awk -F' ' '{print $2}' | sort | uniq -c | sort -nr
    • 出力結果
$ cat /usr/local/apache2/logs/access_log | awk -F\" '{print $2}' | awk -F' ' '{print $2}' | sort | uniq -c | sort -nr
     77 /
     26 /index.php
      4 /manager/html
      4 /favicon.ico
      2 /w00tw00t.at.ISC.SANS.DFind:)
fr-sato commented 10 years ago

確認しました、バッチリです。以下ちょっとした知識です。

load average

load averageが1以下であればだいたい正常状態です。3以上だと負荷がかかってると思って下さい。

プロセス確認

ミドルウェア等が起動しているか確認する場合、よくps awux | grep ****とかで確認するので覚えておいて下さい。

アクセスログ解析

ユーザーがどういう遷移をしたか、不具合が起きた時の状況はどうなってるかなどの調査でよくログ解析は行います。ので今回のコマンドは覚えておくと役に立ちます。