nginx日志统计相关命令和python脚本
src=(s1,s2,s3,s3)
for i in ${src[@]
nginx访问量统计
1.根据访问IP统计UV
awk '{print $1}' access.log|sort | uniq -c |wc -l
嘉图的统计 awk '{print $1}'
/var/log/nginx/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
6.根据时间点统计查看日志.
[root@hemlock nginx]# sed -n '/22\/Apr\/2016:10:10:00/,/22\/Apr\/2016:10:11:00/p' access.log|awk '{print $1,$6}'|sort|uniq -c |sort -nr|more
查看某个时间点的
7.查看服务器并发的
[root@hemlock php-fpm]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
[root@hemlock ~]# netstat -ant | grep ESTABLISHED|more
查看连接从哪里来
8.Mongo查看单个IP信息的语法
. db.access20160417.find({"remote_addr" : "222.64.69.202"})
10.在10.1.0.9查看这个IP有没登陆网站
mysql> SELECT * from garmentoffice.login_log where ip_address='5.9.98.178';
11显示主要信息
11[root@hemlock nginx]# grep "120.236" access.log |awk '{print $1,$5,$6,$8,$9,$10,$11,$12,$13,$14,$15}' |sort |uniq -c |sort -nr|more
1287 120.236.141.135 "GET /websocket/GetMemberInfo 403 0.002 "http://www.haodingdan.com/company-335380.html?spm=10001" "Mozilla/5.0 (Windows NT 6.1; WOW64)
显示了ip数和ip 显示了useragent 显示了utl 显示了主页 显示了状态 和显示request_time=0.002 GET是访问的uri 后面url是referer
12.统计目前访问最多的uri 和ip和其他参数
awk '{print $1,$5,$6,$8,$9,$10,$11,$12,$13,$14,$15}' access.log |sort |uniq -c |sort -nr|more
13,知道ip查找来自哪个机房域名的网站
http://ip.chinaz.com/?qq-pf-to=pcqq.group
14数据库监控负载的地址
http://10.1.0.12:8080/render/?width=1133&height=650&target=collectd.quivertree.load.load.shortterm&target=collectd.lime.load.load.shortterm&target=collectd.apple.load.load.shortterm&from=-8hours&fontSize=14
15mongo查看最慢的所有信息中最慢的request_time
db.access.find({},{"http_x_forwarded_for":1,"request_time":1,"request":1,"time":1}).sort({"request_time":-1}).limit(10);
注意这里的-1 这里是以request_time排序并且限制出来10条 ,其实mongo最多也就一次出来20条信息
16mongo查看单个IP的信息这里是request.time排序
db.access.find({http_x_forwarded_for:'220.181.108.160'},{"time":1,_id:0,status:1,request_time:1,http_user_agent:1,request:1,http_x_forwarded_for:1}).sort({request_time:1})
17 阿里云工单地址
https://workorder.console.aliyun.com/console.htm#/ticket/detail/?ticketId=DG6M0A9
18.云监控安装步骤
https://help.aliyun.com/document_detail/cms/User_Manual/CloudServiceMonitor/CloudMonitorGuide.htm
选择安装新版云监控插件
19. mongodb数据库删除集合
db.collection.drop()删除一个集合的命令
比如 db.access20160511.drop()
20.centos7.1安装计划任务
yum install crontabs -y
21 show variables like "%gen%";
搜索mysql的某个配置
22 php的平滑重启
kill -USR2 `cat /run/php-fpm/php-fpm.pid`
23 mongo的正则匹配查询只要加一个$regex 就可以查询/sync/check/后面可能还很多。都可以查询得到
db.access20160622.find({"request":{$regex:"/sync/check"}}).limit(5)
24 cedar每日统计错误代码比如500 404
nohup php script.php backend/mongo_log/countStatus/access20160603 >> access.log &
25 查询某个字段相关一共有多少条数据
db.user_inbox_session.find({unread_count:-1}).count()
26 查看访问的request、
sh check_options.sh danxin2.haodingdan.com|awk '{print $6,$7,$15}'|sort|uniq -c |sort -nr|more
27阿里云app地址
https://push.console.aliyun.com/?spm=5176.doc34370.2.2.kJCWpr#/app/deviceStat/?appId=2308580&appKey=23287577&appName=%E5%8D%83%E8%AF%A2&source=
28 mongo的模糊查询
db.access20160701.find({"request":{$regex:"session_id=9/-1000038/0,0&to=-1000038&user_id=342322"}},{request:1,time:1,_id:0,request_time:1}).sort({request_time:-1})
29 查看mongo的索引
HaodingdanRepSet:PRIMARY> db.user_inbox_session.getIndexes();
db.purchase_intention.getIndexes();
30 查看mongo表中的一条信息i
db.user_inbox_session.find().limit(1);
31 如果需要屏蔽改成1 下面是屏蔽的写法,一定指定id ,要不然全部都会被屏蔽 不屏蔽是0 ·执行的时候给老大看下····
update haodingdan.com_base_info set is_shield = 1 where member_id in( 1212 ,12121,);
32 统计danxin2站有referer_http
cat /var/log/nginx/access.log|grep danxin2.haodingdan.com|awk '{print $10}'|sort |uniq -c |sort -nr|more
说明 $10正好是_这个referer位置
33 统计日志请求大于3就
sh query_time.sh 08:00 09:00 |grep /websocket/CheckOnline |awk '{if ($5 > 3) print $1,$2,$3,$4,$5,$6,$7,$8}'
34 查看是否有索引
show index from tblname;
35 svn拉取之前的版本代码下来,注意我这里只能拉取目录 不能拉取文件 -r后面的1862是指定show log最后一次的版本号
svn co -r 1862 svn://packages.garmentoffice.org/hdd_modules/business_objects/branches/1.6.0/src/Haodingdan/BusinessModule/
Python
#统计PV,UV
#-*- coding: UTF-8 -*- ips = [] with open(r'C:\Users\qinghesh\Desktop\view\nxd-frontal-gateway.2017-12-17.log') as f: for line in f: ip = line.split(',')[1].split(':')[1].strip('"') ips.append(ip) print('PV is {0}'.format(len(ips))) print('UV is {0}'.format(len(set(ips)))) print('The ip is {}'.format(set(ips))) #统计httpd code d = {} with open('access_log',encoding='utf-8') as f: for line in f: key = line.split()[8] d.setdefault(key,0) d[key] += 1 sum_request = 0 err_request = 0 for key,val in d.items(): print(key,val) if int(key) >= 400: err_request += val sum_request+= val print(sum_request) print('error rate: {0:.2f}%'.format(err_request * 100.0 / sum_request))
#统计url
from collections import Counter from collections import Iterator c = Counter() with open('access_log') as f: for line in f: c[line.split()[6]] += 1 print("Poular resources : {0}".format(c.most_common(3)))