网站首页 > 技术教程 正文
概述
说明:记录的日志格式(字段有: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面试手册真就无敌了呗
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (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)
本文暂时没有评论,来添加一个吧(●'◡'●)