railsログを分析し、応答率を計算
chmod +x analyse_log copy_log
(1)スクリプトをローカルにコピーする
スクリプトの内容は次のとおりです.
#!/usr/bin/env bash
LOG_PATH=/opt/logs
LOCAL_LOG_PATH=~/Documents/logs/8-15
PROJECTS=(m-cms-for-tudou-tv m-cms-for-tv)
if [[ $1 == "--debug" ]]; then
set -x
fi
# Create local directories
for project in ${projects[@]}; do
mkdir -p $SAVE_TO/$project
done
# Copy m-cms-for-tv
project=m-cms-for-tv
remote_log_dir=$LOG_PATH/$project
for server in {13..15}; do
for port in {5200..5207}; do
server_ip="10.xxx.32.$server"
local_log_dir=$LOCAL_LOG_PATH/$project/$server_ip
log_file="thin server (0.0.0.0:$port)_2015-08-15.log"
if [[ ! -e $local_log_dir/"$log_file" ]]; then
mkdir -p $local_log_dir
scp $server_ip:$remote_log_dir/"'$log_file'" $local_log_dir/$port.log
fi
done
done
# Copy m-cms-for-todou-tv
project=m-cms-for-tudou-tv
remote_log_dir=$LOG_PATH/$project
for server in {13..15}; do
for port in {3201..3208}; do
server_ip="10.xxx.32.$server"
local_log_dir=$LOCAL_LOG_PATH/$project/$server_ip
log_file="thin server (0.0.0.0:$port)_2015-08-15.log"
if [[ ! -e $local_log_dir/"$log_file" ]]; then
mkdir -p $local_log_dir
scp $server_ip:$remote_log_dir/"'$log_file'" $local_log_dir/$port.log
fi
done
done
project=ott-client-cms
remote_log_dir=/opt/app/ruby/$project/current/log
for server in {13..15}; do
server_ip="10.xxx.32.$server"
local_log_dir=$LOCAL_LOG_PATH/$project/$server_ip
log_file="nginx.access.20150815.log"
if [[ ! -e $local_log_dir/"$log_file" ]]; then
mkdir -p $local_log_dir
scp $server_ip:$remote_log_dir/$log_file $local_log_dir/$log_file
fi
done
実行:
$./copy_log
実行後にコピーされたログは次のとおりです.
thin server (0.0.0.0:5200)_2015-08-15.log 100% 37MB 4.1MB/s 00:09
thin server (0.0.0.0:5201)_2015-08-15.log 100% 37MB 4.6MB/s 00:08
thin server (0.0.0.0:5202)_2015-08-15.log 100% 37MB 4.6MB/s 00:08
thin server (0.0.0.0:5203)_2015-08-15.log 100% 37MB 3.7MB/s 00:10
thin server (0.0.0.0:5204)_2015-08-15.log 100% 37MB 4.6MB/s 00:08
thin server (0.0.0.0:5205)_2015-08-15.log 100% 37MB 4.6MB/s 00:08
thin server (0.0.0.0:5206)_2015-08-15.log 100% 37MB 2.6MB/s 00:14
thin server (0.0.0.0:5207)_2015-08-15.log 100% 37MB 3.7MB/s 00:10
thin server (0.0.0.0:5200)_2015-08-15.log 100% 37MB 6.2MB/s 00:06
thin server (0.0.0.0:5201)_2015-08-15.log 100% 37MB 4.1MB/s 00:09
thin server (0.0.0.0:5202)_2015-08-15.log 100% 37MB 3.7MB/s 00:10
thin server (0.0.0.0:5203)_2015-08-15.log 100% 37MB 3.1MB/s 00:12
thin server (0.0.0.0:5204)_2015-08-15.log 100% 37MB 3.4MB/s 00:11
thin server (0.0.0.0:5205)_2015-08-15.log 100% 37MB 3.4MB/s 00:11
thin server (0.0.0.0:5206)_2015-08-15.log 100% 37MB 2.7MB/s 00:14
thin server (0.0.0.0:5207)_2015-08-15.log 100% 37MB 2.7MB/s 00:14
thin server (0.0.0.0:5200)_2015-08-15.log 100% 37MB 3.4MB/s 00:11
thin server (0.0.0.0:5201)_2015-08-15.log 100% 37MB 4.6MB/s 00:08
thin server (0.0.0.0:5202)_2015-08-15.log 100% 37MB 4.6MB/s 00:08
thin server (0.0.0.0:5203)_2015-08-15.log 100% 37MB 6.2MB/s 00:06
thin server (0.0.0.0:5204)_2015-08-15.log 100% 37MB 3.1MB/s 00:12
thin server (0.0.0.0:5205)_2015-08-15.log 100% 37MB 3.4MB/s 00:11
thin server (0.0.0.0:5206)_2015-08-15.log 100% 37MB 4.7MB/s 00:08
thin server (0.0.0.0:5207)_2015-08-15.log 100% 37MB 3.7MB/s 00:10
thin server (0.0.0.0:3201)_2015-08-15.log 100% 64KB 63.7KB/s 00:00
thin server (0.0.0.0:3202)_2015-08-15.log 100% 63KB 63.2KB/s 00:00
thin server (0.0.0.0:3203)_2015-08-15.log 100% 69KB 68.9KB/s 00:00
thin server (0.0.0.0:3204)_2015-08-15.log 100% 67KB 66.9KB/s 00:00
thin server (0.0.0.0:3205)_2015-08-15.log 100% 55KB 55.5KB/s 00:00
thin server (0.0.0.0:3206)_2015-08-15.log 100% 63KB 63.0KB/s 00:00
thin server (0.0.0.0:3207)_2015-08-15.log 100% 57KB 56.7KB/s 00:00
thin server (0.0.0.0:3208)_2015-08-15.log 100% 60KB 60.4KB/s 00:00
scp: /opt/logs/m-cms-for-tudou-tv/thin server (0.0.0.0:3201)_2015-08-15.log: No such file or directory
thin server (0.0.0.0:3202)_2015-08-15.log 100% 51KB 50.7KB/s 00:00
thin server (0.0.0.0:3203)_2015-08-15.log 100% 51KB 50.6KB/s 00:00
thin server (0.0.0.0:3204)_2015-08-15.log 100% 52KB 52.5KB/s 00:00
thin server (0.0.0.0:3205)_2015-08-15.log 100% 52KB 52.0KB/s 00:00
thin server (0.0.0.0:3206)_2015-08-15.log 100% 49KB 49.1KB/s 00:00
thin server (0.0.0.0:3207)_2015-08-15.log 100% 52KB 52.3KB/s 00:00
thin server (0.0.0.0:3208)_2015-08-15.log 100% 52KB 52.4KB/s 00:00
thin server (0.0.0.0:3201)_2015-08-15.log 100% 45KB 44.9KB/s 00:00
thin server (0.0.0.0:3202)_2015-08-15.log 100% 44KB 43.7KB/s 00:00
thin server (0.0.0.0:3203)_2015-08-15.log 100% 46KB 45.6KB/s 00:00
thin server (0.0.0.0:3204)_2015-08-15.log 100% 46KB 46.1KB/s 00:00
thin server (0.0.0.0:3205)_2015-08-15.log 100% 43KB 43.4KB/s 00:00
thin server (0.0.0.0:3206)_2015-08-15.log 100% 46KB 45.7KB/s 00:00
thin server (0.0.0.0:3207)_2015-08-15.log 100% 44KB 44.5KB/s 00:00
thin server (0.0.0.0:3208)_2015-08-15.log 100% 44KB 43.6KB/s 00:00
nginx.access.20150815.log 100% 81MB 4.3MB/s 00:19
nginx.access.20150815.log 100% 81MB 4.1MB/s 00:20
nginx.access.20150815.log 100% 81MB 2.7MB/s 00:30
(2)分析ログ
分析ログのスクリプトは次のとおりです.
#!/usr/bin/env bash
if [[ $1 == "--debug" ]]; then
set -x
fi
LOG_PATH=~/Documents/logs/8-15
TMP_FILE=/tmp/analyse_cat.log
tv() {
project=$1
log_files=$LOG_PATH/$project/**/*.log
for hour in {15..16}; do
for min in {0..5}; do
if [[ $hour -lt 10 ]]; then
str="2015-08-15 0$hour:$min"
else
str="2015-08-15 $hour:$min"
fi
request_count=$(grep "$str" $log_files | wc -l)
response_count=$(grep "^$hour:$min" $log_files | grep Completed | wc -l)
grep "^$hour:$min" $log_files | grep Completed > $TMP_FILE
echo "------- $str : $request_count, :$response_count"
echo ' :'
cut -d ' ' -f4 $TMP_FILE | sort -n | uniq -c
# echo ' :'
# cut -d ' ' -f7 $TMP_FILE | sort -n | uniq -c | sort -nr
done
done
}
echo '*** Youku TV ***'
tv m-cms-for-tv
echo '*** Tubou TV ***'
tv m-cms-for-tudou-tv
実行
$ ./analyse_log
実行後の結果
~/Desktop:$ ./analyse_log
*** Youku TV ***
------- 2015-08-15 15:0 : 10934, :10934
:
10934 200
------- 2015-08-15 15:1 : 10908, :10908
:
10908 200
------- 2015-08-15 15:2 : 10903, :10903
:
10903 200
------- 2015-08-15 15:3 : 7184, :7160
:
7160 200
------- 2015-08-15 15:4 : 552, :0
:
------- 2015-08-15 15:5 : 194063, :193978
:
193978 200
------- 2015-08-15 16:0 : 142234, :142233
:
142233 200
------- 2015-08-15 16:1 : 195244, :195244
:
195244 200
------- 2015-08-15 16:2 : 233320, :233342
:
233342 200
------- 2015-08-15 16:3 : 12787, :12788
:
12788 200
------- 2015-08-15 16:4 : 11341, :11341
:
11341 200
------- 2015-08-15 16:5 : 12470, :12470
:
12470 200
*** Tubou TV ***
------- 2015-08-15 15:0 : 5, :5
:
5 200
------- 2015-08-15 15:1 : 3, :3
:
3 200
------- 2015-08-15 15:2 : 39, :39
:
39 200
------- 2015-08-15 15:3 : 11, :3
:
3 200
------- 2015-08-15 15:4 : 31, :0
:
------- 2015-08-15 15:5 : 1315, :1288
:
1288 200
------- 2015-08-15 16:0 : 9, :9
:
9 200
------- 2015-08-15 16:1 : 2, :2
:
2 200
------- 2015-08-15 16:2 : 39, :39
:
39 200
------- 2015-08-15 16:3 : 10, :10
:
10 200
------- 2015-08-15 16:4 : 2, :2
:
2 200
------- 2015-08-15 16:5 : 15, :15
:
15 200