先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
5.1.1、定义日志格式
cat /etc/nginx/nginx.conf
log_format main '$remote_addr -
r
e
m
o
t
e
_
u
s
e
r
[
remote\_user [
remote_user[time_local]“KaTeX parse error: Double superscript at position 12: request" ' '̲status
b
o
d
y
_
b
y
t
e
s
_
s
e
n
t
"
body\_bytes\_sent "
body_bytes_sent"http_referer” ’
‘“
h
t
t
p
_
u
s
e
r
_
a
g
e
n
t
"
"
http\_user\_agent" "
http_user_agent""http_x_forwarded_for”’;复制代码
5.1.2、加载日志格式到对应域名配置中
cat /etc/nginx/conf.d/vhost/api.mingongge.com.cn.conf
server {
listen 80;
server_name newtest-msp-api.mingongge.com.cn;
access_log /var/log/nginx/api.mingongge.com.cn.log main;
}复制代码
5.1.3、reload生效
nginx -t reload复制代码
5.1.4、清空原输出文件,并查看输出的日志格式
:> /var/log/nginx/api.mingongge.com.cn.log
tailf /var/log/nginx/api.mingongger.com.cn.log
1xx.2xx.72.175 - - [18/Mar/2019:13:51:17 +0800] “GET/user/fund/113 HTTP/1.1” 200 673 “-” “Mozilla/5.0 (WindowsNT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) sun/1.5.6 Chrome/69.0.3497.106Electron/4.0.3 Safari/537.36” "-"复制代码
5.2、配置kafka
测试环境使用docker起的kafka,kafka部署掠过,以下任选一种
5.2.1、方法一 创建kafka topic
./kafka-topics.sh --create --topic nginxlog --replication-factor 1–partitions 1 --zookeeper localhost:2181复制代码
5.2.2、方法二
auto.create.topics.enable=true复制代码
开启kafka自动创建topic配置
5.2.3、filebeat部署完成后确认kafka topic中有数据
./kafka-console-consumer.sh --bootstrap-server 192.168.0.53:9091–from-beginning --topic nginxlog复制代码
输出如下
{“@timestamp”:“2019-03-14T07:16:50.140Z”,“@metadata”:{“beat”:“filebeat”,“type”:“doc”,“version”:“6.3.2”,“topic”:“nginxlog”},“fields”:{“log_topics”:“nginxlog”},“beat”:{“version”:“6.3.2”,“name”:“test-kafka-web”,“hostname”:“test-kafka-web”},“host”:{“name”:“test-kafka-web”},“source”:“/var/log/nginx/newtest-msp-api.mingongge.com.cn-80.log”,“offset”:114942,“message”:“116.226.72.175- - [14/Mar/2019:15:16:49 +0800] newtest-msp-api.mingongge.com.cn POST”/upstream/page" “-” 200 6314"http://newtest-msp-crm.mingongge.com.cn/" 200 192.168.0.49:60070.024 0.024 “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36"”-“”}
Processed a total of 7516 messages复制代码
测试环境中kafka地址为
192.168.0.53:9091复制代码
5.3、配置filebeat收集nginx日志
5.3.1、安装filebeat
cd /opt/ && wget http://download.mingongge.com.cn/download/software/filebeat-6.3.2-x86_64.rpm
yum localinstall filebeat-6.3.2-x86_64.rpm -y复制代码
5.3.2、编辑配置文件
cat /etc/filebeat/filebeat.yml
filebeat.prospectors:
- input_type: log
enabled: true
paths: - /var/log/nginx/api.mingongge.com.cn.log#收集日志路径
fields:
log_topics: nginxlog #kafka中topic名称
json.keys_under_root: true
json.overwrite_keys: true
output.kafka:
enabled: true
hosts:[“192.168.0.53:9091”] #kafka地址
topic:‘%{[fields][log_topics]}’ #kafka中topic名称
partition.round_robin:
reachable_only: false
compression: gzip
max_message_bytes: 1000000
required_acks: 1复制代码
5.3.3、启动filebeat& 开机启动
systemctl start filebeat
systemctl enable filebeat复制代码
5.4、配置logstash
5.4.1 编辑配置
cat /usr/local/logstash/config/nginx.conf
input {
kafka {
type =>“nginxlog”
topics =>[“nginxlog”]
bootstrap_servers=> [“192.168.0.53:9091”]
group_id =>“nginxlog”
auto_offset_reset=> latest
codec =>“json”
}
}
filter {
if [type] == “nginxlog”{
grok {
match => {“message” => “%{COMBINEDAPACHELOG}” }
remove_field =>“message”
}
date {
match => [“timestamp” , “dd/MMM/YYYY:HH:mm:ss Z” ]
}
geoip {
source =>“clientip”
target =>“geoip”
database =>“/usr/local/logstash/config/GeoLite2-City.mmdb”
add_field => [“[geoip][coordinates]”, “%{[geoip][longitude]}” ] #添加字段coordinates,值为经度
add_field => [“[geoip][coordinates]”, “%{[geoip][latitude]}” ] #添加字段coordinates,值为纬度
}
mutate {
convert => [“[geoip][coordinates]”, “float”]
}
useragent {
source =>“agent”
target =>“userAgent”
}
}
}
output {
if [type] == ‘nginxlog’ {
elasticsearch {
hosts =>[“http://192.168.0.48:9200”]
index =>“logstash-nginxlog-%{+YYYY.MM.dd}”
}
stdout {codec =>rubydebug}
}
}复制代码
5.4.2、使用配置文件启动logstash服务,观察输出
/usr/local/logstash/bin/logstash -f nginx.conf
{
“httpversion”=> “1.1”,
“verb” =>“GET”,
“auth”=> “-”,
“@timestamp”=> 2019-03-18T06:41:27.000Z,
“type”=> “nginxlog”,
“json”=> {},
“source”=> “/var/log/nginx/newtest-msp-api.mingongge.com.cn-80.log”,
“fields” =>{
“log_topics”=> “nginxlog”
},
“response”=> “200”,
“offset”=> 957434,
“host”=> {
“name” =>“test-kafka-web”
},
“beat”=> {
“hostname”=> “test-kafka-web”,
“version”=> “6.3.2”,
“name”=> “test-kafka-web”
},
“bytes”=> “673”,
“request”=> “/user/fund/113”,
“timestamp”=> “18/Mar/2019:14:41:27 +0800”,
“referrer”=> “”-“”,
“userAgent”=> {
“os”=> “Windows”,
“major” => “4”,
“patch”=> “3”,
“build”=> “”,
“minor”=> “0”,
“os_name”=> “Windows”,
“device”=> “Other”,
“name”=> “Electron”
},
“geoip”=> {
“ip” => “1xx.2xx.72.175”,
“country_name” => “China”,
“coordinates” => [
[0] 121.4012,
[1] 31.0449
],
“region_name” => “Shanghai”,
“location” => {
“lat”=> 31.0449,
“lon”=> 121.4012
},
“continent_code” => “AS”,
“timezone” => “Asia/Shanghai”,
“longitude” => 121.4012,
“city_name” => “Shanghai”,
“country_code2” => “CN”,
“region_code” => “SH”,
“latitude” => 31.0449,
“country_code3” => “CN”
},
“@version”=> “1”,
“clientip”=> “1xx.2xx.72.175”,
“ident”=> “-”,
“agent”=> "“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) sun/1.5.6 Chrome/69.0.3497.106 Electron/4.0.3Safari/537.36"”
}复制代码
5.4.3、后台启动logstash
确认出现以上输出后,将logstash分离出当前shell,并放在后台运行
nohup /usr/local/logstash/bin/logstash -f nginx.conf &>/dev/null &复制代码
5.5、kibana配置
5.5.1、修改kibana配置
/usr/local/kibana-6.5.4-linux-x86_64/config/kibana.yml #增加高德地图
tilemap.url:'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}'复制代码
5.5.2、创建Index Pattern
5.5.3、IP访问TOP5
选择柱形图
添加X轴,以geoip.ip为order by字段
5.5.4 、PV
选择metric
默认统计总日志条数,即为PV数
5.5.5、全球访问地图
选择map
Field选择geoip.location
选择添加高德地图
5.5.6、实时流量
选择线条图
5.5.7、操作系统
选择饼图
5.5.8、登陆次数
过滤login关键字,并做count统计
5.5.9、访问地区
5.5.10、Dashboard展示
- IP访问Top5:每日客户端IP请求数最多的前五个(可分析出攻击者IP)
- PV:每日页面访问量
- 全球访问图:直观的展示用户来自哪个国家哪个地区
- 实时流量:根据@timestamp字段来展示单位时间的请求数(可根据异常峰值判断是否遭遇攻击)
- 操作系统:展示客户端所用设备所占比重
- 登陆次数:通过过滤request中login的访问记录,粗略估算出进行过登陆的次数
- 访问地区:展示访问量最多的国家或地区
- 需展示其他指标,可进行自由发挥
- MORE | 往期精彩文章 -
- 逼格高又实用的 Linux 命令,一定要懂!
- 一文详解 LVS、Nginx 及 HAProxy 工作原理
- 老司机告诉你:正规的运维工作是什么的?
- 别装,你是干什么的,一句话就能说明!
- 哪来那么多开挂的人生?都是骗人的…
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
期精彩文章 -**
- 逼格高又实用的 Linux 命令,一定要懂!
- 一文详解 LVS、Nginx 及 HAProxy 工作原理
- 老司机告诉你:正规的运维工作是什么的?
- 别装,你是干什么的,一句话就能说明!
- 哪来那么多开挂的人生?都是骗人的…
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-xsgZDDk2-1713472354894)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!