网站首页 > 技术教程 正文
概述
说明:记录的日志格式(字段有:ip,time,method,uri,http,code,datasize,head,postdata)
步骤:
1.设置nginx日志格式
2.使用sh脚本格式化日志,并存入mysql
3.新建mysql表格
4.验证
一.设置nginx日志格式:
a.打开nginx.conf
在http模块里面添加自定义日式格式:
$remote_addr>>>>$time_local>>>>$request>>>>$status>>>>$body_bytes_sent>>>>$http_referer>>>>$http_user_agent>>>>$request_body
b.设置vhost目录中对应的网站conf参数(引入以上log_format):
c.重启nginx
service nginx restart
二:使用sh脚本格式化日志,并存入mysql
a.新建sh脚本:
vi nginxlog.sh
#!/bin/sh #获取nigin日志 log_path='/data/wwwlogs/kefu.xfz178.com.nginx_access_log' cat $log_path | while read line do if [ -n "$line" ] then ip=${line%%>>>>*} #echo $ip leavestr=${line#*>>>>} time=${leavestr% +0800>>>>*} day=${time%%/*} time=${time#*/} month=${time%%/*} time=${time#*/} year=${time%%:*} time=${time#*:} time=${month}' '${day},' '${year}' '${time} time=`date -d "$time" "+%Y-%m-%d %H:%M:%S"` #echo $time leavestr=${leavestr#*>>>>} method=${leavestr% /*} #echo $method leavestr=${leavestr#*' '} uri=${leavestr%% *} #echo $uri leavestr=${leavestr#*' '} http=${leavestr%%>>>>*} #echo $http leavestr=${leavestr#*>>>>} code=${leavestr%%>>>>*} #echo $code leavestr=${leavestr#*>>>>} datasize=${leavestr%%>>>>*} #echo $datasize leavestr=${leavestr#*>>>>} url=${leavestr%%>>>>*} #echo $url leavestr=${leavestr#*>>>>} head=${leavestr%%>>>>*} #echo $head leavestr=${leavestr#*>>>>} postdata=${leavestr%%>>>>*} #echo $leavestr #插入数据库信息 HOSTNAME="127.0.0.1" #数据库信息 PORT="3306" USERNAME="toor" PASSWORD="123456" DBNAME="request_logs" #数据库名称 TABLENAME="test" #数据库中表的名称 insert_sql="insert into ${TABLENAME}(ip,time,method,uri,http,code,datasize,head,postdata) values('${ip}','${time}','${method}','${uri}','${http}','${code}','${datasize}','${head}','${postdata}')" #insert_sql="insert into ${TABLENAME}(ip) values('${ip}')" #echo $insert_sql mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}" 2>/dev/null fi done #日志清除 echo > "${log_path}"
b.设置定时任务
crontab -e
*/5 * * * * sh /sh/nginxlog.sh #日志转存
三:新建mysql表格
sql:
DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `ip` varchar(255) DEFAULT NULL, `time` datetime DEFAULT NULL, `method` varchar(10) DEFAULT NULL, `uri` varchar(255) DEFAULT NULL, `http` varchar(50) DEFAULT NULL, `code` varchar(10) DEFAULT NULL, `datasize` int(5) DEFAULT NULL, `head` varchar(255) DEFAULT NULL, `postdata` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`), KEY `ip` (`ip`) USING HASH, KEY `code` (`code`) USING HASH, KEY `usetime` (`datasize`) USING HASH, KEY `time` (`time`) USING HASH ) ENGINE=InnoDB AUTO_INCREMENT=1823 DEFAULT CHARSET=utf8;
四:验证结果
后面小编会分享更多运维干货,感兴趣的朋友走一波关注哩~
猜你喜欢
- 2024-10-12 高并发+微服务+消息中间件+Redis+MySQL+Nginx对接阿里p级的技术
- 2024-10-12 MySQL存储引擎你们知道多少?(mysql存储引擎有哪些区别)
- 2024-10-12 一、《浪潮云服务器》部署jdk1.8和mysql 5.7
- 2024-10-12 Docker部署mysql集群之PXC(nginx负载均衡)
- 2024-10-12 nginScript 系列:通过 TCP 负载均衡和 Galera 集群来扩展 MySQL
- 2024-10-12 肝了15000字性能调优专题 JVM、MySQL、Nginx Tomcat,看不完先收藏
- 2024-10-12 「mysql优化专题」高可用性、负载均衡的mysql集群解决方案(12)
- 2024-10-12 使用nginx实现mysql负载均衡(nginx如何做负载均衡配置)
- 2024-10-12 Nginx实现MySQL数据库负载均衡及MySQL主主复制详细步骤
- 2024-09-25 GitHub上封神!百万人跪求的JAVA面试手册真就无敌了呗
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)