天才白菜のブログ -3ページ目

天才白菜のブログ

ブログの説明を入力します。

変なリクエストがないかアクセスログを調べる必要があったので以下のブログを参考にしJenkinsジョブを作ってみた。
Linuxサーバ管理:apacheログを集計する

Jenkinsジョブにした理由はサーバが55台もあるから一台ずつ入ってコマンド打つのが面倒だからです。
sshでログインするユーザのkeyはすでに各サーバに配置済みの状態を前提条件とします。
実際の中身は以下のようになります。
LIST=/usr/local/temp/server.list
COMMAND="zgrep -v 200 /usr/local/nginx/logs/access.log_20121028* | grep -v 304 | awk '{print $7,$9;}' | sort | uniq -c"
sed -e "s/#.*//" -e "s/^s*$//" $LIST | while read i; do
echo "#### run command -> $i ####"
  ssh -o 'StrictHostKeyChecking=no' -2 -n user@$i $COMMAND
done


今回勉強になった部分をメモります。
grep -vオプションは含めたくない文字列を指定できます。今回は200と304は正常ステタスコードなのでそれ意外を表示するようにしました。
awk awk '{print \$7,\$9;}'はnginxのアクセスログのurlとステタスコードを出力する意味です。
sortはその意味通り結果をソートするコマンドです。
uniq -cは重複しない行をカウントするコマンドです。

結果は以下のようになります。
9 /test.png 404
3 /robots.txt 403
220 400 "-"