nginx的log日志存储到mongodb做视频点击排行榜

#!/bin/bash
# This script run at 00:00
# The Nginx logs path
# zhengyansheng time:2014-08-27
# Qq 467754239

logs_path="/usr/local/nginx/logs/"
access_dir="/usr/local/nginx/logs/Insert_mongodb"

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m"+"%d")
mv $logs_path/access_hktv.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m"+"%d")/access_$(date -d "yesterday" +"%Y%m%d%H%M").log

cat ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m"+"%d")/access_$(date -d "yesterday" +"%Y%m%d%H%M").log > $logs_path/access_mongo.log

/usr/local/nginx/sbin/nginx -s reload

cat $logs_path/access_mongo.log | while read line;
do
cookieId=`echo $line |awk -F "uid=" ‘{print $2}‘ | awk ‘{print $1}‘ | grep -v "^$"`
ip=`echo $line | awk ‘{print $3}‘`
appKey=`echo $line | awk ‘{print $1}‘`
visidate=`echo $line | awk ‘{print $2}‘ | awk -F "[" ‘{print $2}‘`
browsertype=`echo $line | awk -F "\"" ‘{print $6}‘`
refer=`echo $line | awk -F "\"" ‘{print $4}‘`
os=`echo $line | awk -F "\"" ‘{print $6}‘ |awk ‘{print $1}‘`
videoID=`echo $line | gawk -F‘?id=‘ ‘{ print $2 }‘ |cut -d‘&‘ -f1`

sql="db.user.visit.data.insert({browsertype:‘$browsertype‘,cookieId:‘$cookieId‘,appKey:‘$appKey‘,ip:‘"$ip"‘,os:‘"$os"‘,referer:‘"$refer"‘,videoId:‘$videoID‘,visitdate:ISODate(‘$visidate‘)})"

echo "$sql" >> $logs_path/nginx_log_mongo.txt
done

cat $logs_path/nginx_log_mongo.txt | mongo 192.168.0.100:27017/hktv_tv -u hktv -p cdvcloud#123
mv $logs_path/nginx_log_mongo.txt $logs_path/nginx_log_mongo_bak.txt

任务计划!先日志切割、然后再存储到mongodb数据库中,

*/5 * * * * /bin/bash  /usr/local/nginx/logs/nginx_mongo.sh

这个脚本已多次优化并在线程成功运作!如果有不足之处还请指出,谢谢

时间: 2025-01-03 20:18:09

nginx的log日志存储到mongodb做视频点击排行榜的相关文章

Nginx Access Log日志统计分析常用命令

Nginx Access Log日志统计分析常用命令 Nginx Access Log日志统计分析常用命令 IP相关统计 统计IP访问量 awk '{print $1}' access.log | sort -n | uniq | wc -l 查看某一时间段的IP访问量(4-5点) grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l 查看访问最频繁的前100

转 Nginx Access Log日志统计分析常用命令

Nginx Access Log日志统计分析常用命令Nginx Access Log日志统计分析常用命令IP相关统计 统计IP访问量 awk '{print $1}' access.log | sort -n | uniq | wc -l 查看某一时间段的IP访问量(4-5点) grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l 查看某个时间点的IP访问量(

windows下日志存储到mongodb下

需求:系统做分布式,各个模块的日志写文件,对于运维来说找起日志来不方便,统一写到mongodb中,error级别的日志单独存储. 我的环境是win7 64位系统 第一步: 下载mongdb,下载地址: https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl  ,我下载的是:win32/mongodb-win32-x86_64-2008plus-ssl-v3.0-latest.zip,下载后解压到d盘根目录下,路径为:D:\mongodb 启动,进

shell分析nginx access log日志

统计访问最多的ip1. tail -n 10000 xxaccess_log | cut -d " " -f 1 |sort|uniq -c|sort -rn|head -10 |more2.tail -n 10000 xx-access_log | awk '{print $1}'|sort|uniq -c|sort -rn|head -10 | more 统计访问最多的urltail -n 10000 xx-access_log |awk '{print $7}'| sort|un

分析nginx access log日志的命令

统计访问最多的ip 1. tail -n 10000 xxaccess_log | cut -d " " -f 1 |sort|uniq -c|sort -rn|head -10 |more 2.tail -n 10000 xx-access_log | awk '{print $1}'|sort|uniq -c|sort -rn|head -10 | more 统计访问最多的url tail -n 10000 xx-access_log |awk '{print $7}'| sort

Nginx 分析access日志文件

Nginx Access Log日志统计分析常用命令 IP相关统计 统计IP访问量 awk '{print $1}' access.log | sort -n | uniq | wc -l 查看某一时间段的IP访问量(4-5点) grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l 查看访问最频繁的前100个IP awk '{print $1}' access

Nginx 訪问日志增长暴增出现尖刀的具体分析

前言:          Nginx日志里面Mobileweb_access.log增长特别大.一天上百兆.将近100W的訪问记录.依照我们眼下的规模,热点用户才500个左右.就算人人用手机app訪问,怎么可能会有这么大的url訪问量?曾经仅仅是安装使用nginx.还没有抽空细致研究.这回须要彻底的去分析nginx日志了. 1.日志分类 主要2种,一种是错误日志.一种是訪问日志,这些配置都在/usr/local/nginx/conf/nginx.conf里面.默认都是打开的.自己也能够选择关闭.

日志系统之HBase日志存储设计优化

本人博客文章如未特别注明皆为原创!如有转载请注明出处:http://blog.csdn.net/yanghua_kobe/article/details/46482319 继续谈论最近接手的日志系统,上篇关于日志收集相关的内容,这篇我们谈谈日志存储相关的话题. 简介 我们首先来总结一下日志这种数据的业务特点:它几乎没有更新的需求,一个组件或一个系统通常有一个固定的日志格式,但就多个组件或系统而言它会存在各种五花八门的自定义的tag,这些tag建立的目的通常是为了后期查询/排查线上问题的需要,因此

从Nginx的access日志统计PV、UV和热点资源

需求: 在阿里云-CDN管理控制台的监控页面里,有对PV.UV和热点资源的统计.于是自己也写了脚本来获取相关数据. 分析: PV:指网站的访问请求数.包含同一来源IP的多次请求. UV:值网站的独立访客数.同一来源IP的多次请求只计算一次. 来看一条Nginx的access日志信息: # head -1 access.log  192.165.158.238 - - 2017-03-06T20:47:04+08:00 "GET http://download.helloworld.com/ HT