Nginx 로그 처리

1495 단어 nginxWeb
오늘 온라인 nginx access. log 로 그 를 분석 하기 위해 다음 과 같이 처리 하 였 습 니 다.
5 분 마다 방문 횟수 를 집계 하고 ganglia 모니터링 을 추가 하여 웹 을 통 해 보 여 주 는 방법 은 다음 과 같다.
1. 먼저 nginx 의 로 그 는 로그 절단 을 해 야 합 니 다. 스 크 립 트 는 다음 과 같 습 니 다.
cat nginx_log.sh
#!/bin/sh
#2014-06-06 by wu
savepath_log=/home/buddy/logs/
nglogs=/usr/local/nginx/logs/
mkdir -p $savepath_log/$(date +%Y)/$(date +%m)
mv $nglogs/access.log $savepath_log/$(date +%Y)/$(date +%m)/access.log.$(date +%Y%m%d)
mv $nglogs/error.log $savepath_log/$(date +%Y)/$(date +%m)/error.log.$(date +%Y%m%d)
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

crontab 가입, 매일 0 시 실행:
0 0 * * * (sh /root/admin/nginx_log.sh &>/dev/null)

2. 통계 로 그 를 작성 하고 gmetric 를 통 해 ganglia 모니터링 을 추가 합 니 다. 스 크 립 트 는 다음 과 같 습 니 다.
cat ganglia_access_count.sh
#!/bin/sh
#2014-06-18 by wu
#Statistical number of accessing nginx every 5 minutes
#  5        
hour=`date -d '-5 minute' +%H`
#  5        
minute=`date -d '-5 minute' +%M`
#   ,/,:3        ,                  ,         ,         
Num=`awk -F'[ ]|[/]|:' -v hour=$hour -v minute=$minute '$7>=hour && $8>=minute{print}' /usr/local/nginx/logs/access.log | wc -l`
#  gmetric  ganglia  
gmetric -n Nginx_access_counts -v $Num -t uint8 -u num

crontab 에 기록 하고 5 분 마다 실행 합 니 다.
*/5 * * * * (sh /root/admin/ganglia_gmetric/ganglia_access_count.sh &> /dev/null)

효과 전시

좋은 웹페이지 즐겨찾기