三、基于hadoop的nginx访问日志分析--计算时刻pv

代码:

# cat pv_hour.py
#!/usr/bin/env python
# coding=utf-8

from mrjob.job import MRJob
from nginx_accesslog_parser import NginxLineParser

class PvDay(MRJob):

    nginx_line_parser = NginxLineParser()

    def mapper(self, _, line):

        self.nginx_line_parser.parse(line)
        _, tm = str(self.nginx_line_parser.time_local).split()
        h, m, s = tm.split(‘:‘)
        yield h, 1 # 每小时的

    def reducer(self, key, values):
        yield key, sum(values)

def main():
    PvDay.run()

if __name__ == ‘__main__‘:
    main()

执行结果

# python3 pv_hour.py access_all.log-20161227
No configs found; falling back on auto-configuration
Creating temp directory /tmp/pv_hour.root.20161228.025503.341576
Running step 1 of 1...
Streaming final output from /tmp/pv_hour.root.20161228.025503.341576/output...
"14"    21158
"15"    20958
"16"    16080
"17"    14194
"18"    13114
"19"    16898
"20"    18870
"21"    14067
"22"    14053
"23"    12683
"00"    13185
"01"    14785
"02"    12449
"03"    7364
"04"    3628
"05"    9074
"06"    9317
"07"    11887
"08"    13492
"09"    19564
"10"    18390
"11"    15697
"12"    17518
"13"    18785
Removing temp directory /tmp/pv_hour.root.20161228.025503.341576...
时间: 2024-10-05 03:45:54

三、基于hadoop的nginx访问日志分析--计算时刻pv的相关文章

二、基于hadoop的nginx访问日志分析---计算日pv

代码: # pv_day.py#!/usr/bin/env python # coding=utf-8 from mrjob.job import MRJob from nginx_accesslog_parser import NginxLineParser class PvDay(MRJob): nginx_line_parser = NginxLineParser() def mapper(self, _, line): self.nginx_line_parser.parse(line)

五、基于hadoop的nginx访问日志分析--userAgent和spider

useragent: 代码(不包含蜘蛛): # cat top_10_useragent.py #!/usr/bin/env python # coding=utf-8 from mrjob.job import MRJob from mrjob.step import MRStep from nginx_accesslog_parser import NginxLineParser import heapq class UserAgent(MRJob): nginx_line_parser =

Nginx 访问日志分析

0:Nginx日志格式配置 # vim nginx.conf ## # Logging Settings ## log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent $request_body "$http_referer" ' '"$http_user_agent" "$http_x_for

Nginx 访问日志增长暴增出现尖刀的详细分析

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

采集并分析Nginx访问日志

日志服务支持通过数据接入向导配置采集Nginx日志,并自动创建索引和Nginx日志仪表盘,帮助您快速采集并分析Nginx日志. 许多个人站长选取了Nginx作为服务器搭建网站,在对网站访问情况进行分析时,需要对Nginx访问日志统计分析,从中获取网站的访问量.访问时段等访问情况.传统模式下利用CNZZ等方式,在前端页面插入js,用户访问的时候触发js,但仅能记录访问请求.或者利用流计算.离线统计分析Nginx访问日志,但需要搭建一套环境,并且在实时性以及分析灵活性上难以平衡. 日志服务在支持查询

命令分析nginx访问日志的用法

awk分析日志常用高级使用命令方法 分析访问日志(Nginx为例) 日志格式: '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"' 统计访问IP次数: # awk '{a[$1]++}END{for(i

ELK+syslog+nginx访问日志收集+分词处理

一.nginx访问日志配置: 1.日志格式配置: log_format json '{"@timestamp":"$time_iso8601",' '"host":"$server_addr",' '"clientip":"$remote_addr",' '"size":$body_bytes_sent,' '"xff":"$http_x

elkstack实战---集中管理nginx访问日志及报表展示

一.nginx访问日志,格式调整为json # cat /opt/config/tengine/nginx.conf |grep json log_format json '{"@timestamp":"$time_iso8601",' '"host":"$server_addr",' '"method":"$request_method",' '"url":&quo

48.Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

一.Nginx访问日志 日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索log_format combined_realip //规则名字 除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 vim /usr/local/nginx/conf/vhost/test.com.conf 添加 access_log /tmp/1.log combined_realip; 这里的combined_realip就是在nginx.