nginx 日志访问量统计

1.根据访问IP统计UV

awk '{print $1}'  access.log|sort | uniq -c |wc -l

2.统计访问URL统计PV

awk '{print $7}' access.log|wc -l

3.查询访问最频繁的URL

awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more

4.查询访问最频繁的IP

awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more

5.根据时间段统计查看日志

 cat  access.log| sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p'|more

zabbix 配置文件添加

vim /etc/zabbix/zabbix_server.conf

### Option: AlertScriptsPath
#       Full path to location of custom alert scripts.
#       Default depends on compilation options.
#
# Mandatory: no
# Default:
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/local/zabbix/sbin

vim /usr/local/zabbix/sbin/nginx-status.py 

import urllib2,base64,sys,getopt,re

def Usage():
    print "Usage: Nginx-Status.py -h 127.0.0.1 -p 80 -a [active|accepted|handled|requests|reading|writting|waiting]"
    sys.exit(2)

def main():
    if len(sys.argv) < 6:
        Usage()

    try:
        opts,args = getopt.getopt(sys.argv[1:], "h:p:a:")
        Dict = dict(opts)
    except getopt.GetoptError:
        Usage()

    Nginx_url = "http://" + Dict['-h'] + ":" + Dict['-p'] + "/nginx_status"
    Nginx_req = urllib2.Request(Nginx_url)
    Nginx_res = urllib2.urlopen(Nginx_req)
    Output_key = re.findall(r'\d{1,8}', Nginx_res.read())

    if ( Dict['-a'] == "active"):
            print Output_key[0]
    elif ( Dict['-a'] == "accepted"):
            print Output_key[1]
    elif ( Dict['-a'] == "handled"):
            print Output_key[2]
    elif ( Dict['-a'] == "requests"):
            print Output_key[3]
    elif ( Dict['-a'] == "reading"):
            print Output_key[4]
    elif ( Dict['-a'] == "writting"):
            print Output_key[5]
    elif ( Dict['-a'] == "waiting"):
            print Output_key[6]
    else:
            print "unknown!!"
            sys.exit(1)

if __name__ == '__main__':
    main()

nginx_status_templates.xml



    2.0
    2015-11-03T01:37:04Z
    
        
            nginx-status
        
    
    
        
    
    
        
            nginx-clients-status
            900
            200
            0.0000
            100.0000
            1
            1
            0
            1
            0
            0.0000
            0.0000
            0
            0
            0
            0
            
                
                    0
                    0
                    00C800
                    0
                    2
                    0
                    
                        nginx-status
                        nginx-status.py["-h","{HOST.IP}","-p","80","-a","active"]
                    
                
                
                    1
                    0
                    C80000
                    0
                    2
                    0
                    
                        nginx-status
                        nginx-status.py["-h","{HOST.IP}","-p","80","-a","reading"]
                    
                
                
                    2
                    0
                    0000C8
                    0
                    2
                    0
                    
                        nginx-status
                        nginx-status.py["-h","{HOST.IP}","-p","80","-a","waiting"]
                    
                
                
                    3
                    0
                    C800C8
                    0
                    2
                    0
                    
                        nginx-status
                        nginx-status.py["-h","{HOST.IP}","-p","80","-a","writting"]
                    
                
            
        
        
            nginx-socket-status
            900
            200
            0.0000
            100.0000
            1
            1
            0
            1
            0
            0.0000
            0.0000
            0
            0
            0
            0
            
                
                    0
                    0
                    00C800
                    0
                    2
                    0
                    
                        nginx-status
                        nginx-status.py["-h","{HOST.IP}","-p","80","-a","handled"]
                    
                
                
                    1
                    0
                    0000C8
                    0
                    2
                    0
                    
                        nginx-status
                        nginx-status.py["-h","{HOST.IP}","-p","80","-a","requests"]
                    
                
                
                    2
                    0
                    C800C8
                    0
                    2
                    0
                    
                        nginx-status
                        nginx-status.py["-h","{HOST.IP}","-p","80","-a","accepted"]
                    
                
            
        
    




你可能感兴趣的:(nginx 日志访问量统计)