网站首页 > 技术教程 正文
概述
说明:记录的日志格式(字段有: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面试手册真就无敌了呗
欢迎 你 发表评论:
- 最近发表
- 标签列表
-
- 下划线是什么 (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)

本文暂时没有评论,来添加一个吧(●'◡'●)