上次作业答疑
ELK介绍
https://www.elastic.co/elk-stack
安装
- ELK镜像 Docker
- 文档:https://elk-docker.readthedocs.io/
#docker pull sebp/elk
docker pull registry.docker-cn.com/sebp/elk
sysctl -w vm.max_map_count=262144
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -d --name elk sebp/elk
搭建成功你的入口在搭建机器的5601端口上
公共演练入口:http://elk.testing-studio.com:5601
准备数据
docker run -it --name logstash --rm logstash --path.data /tmp/logstash/data -e 'input { stdin { type=> "doc"} } output { elasticsearch { hosts => ["elk.testing-studio.com"] } }'
在Kibana中进入DIscover,然后Create index pattern,写入他所发现的索引,设置时间字段就可以创建了。
文件输入
创建一份配置文件
input {
file {
path => "/data/*.csv"
start_position => beginning
}
}
filter {
csv{
columns =>[ "log_time", "user", "api", "status", "version"]
}
date {
match => ["log_time", "yyyy-MM-dd HH:mm:ss"]
timezone => "Asia/Shanghai"
}
}
output {
elasticsearch {
hosts => ["elk.testing-studio.com:9200"]
index => "logstash-seveniruby-%{+YYYY.MM.dd}"
}
}
创建数据 data/demo.csv
2018-10-28 11:29:00,seveniruby,topics.json,200,7.4
2018-10-28 11:29:01,seveniruby,topics.json,200,7.4
2018-10-28 11:29:02,seveniruby,topics/3.json,200,7.4
2018-10-28 11:30:01,seveniruby,topics/4.json,200,7.4
2018-10-28 11:30:20,seveniruby,topics/1.json,200,7.4
2018-10-28 11:40:20,seveniruby,topics/5.json,200,7.4
执行命令
docker run -it --name logstash --rm \\
-v $PWD/conf:/conf \\
-v $PWD/data/:/data \\
logstash -f /conf/csv.conf
批量生产数据
apis=(1 2 3 4 5 1 1 1 1 2 3 3)
api_count=${#apis[*]}
status_list=(200 404 503 500 301 200 200 200 200 200 200 200 200 200 200 200 200 404)
status_count=${#status_list[*]}
while true
do
api_index=$((RANDOM%api_count))
status_index=$((RANDOM%status_count))
version=$([ $((RANDOM%5)) -ge 1 ] && echo debug || echo test)
version=${version}_3.$((RANDOM%3))
api=api/${apis[api_index]}.json
status=${status_list[status_index]}
ip=192.168.0.1$((RANDOM%5))$((RANDOM%5))
echo $(date +"%Y-%m-%d %H:%M:%S"),${ip},${api},${status},${version} | tee -a $(
date +%Y%m%d%H%M).csv
sleep 0.$((RANDOM%5))
done
分片数据
分片之上我们再分片
作业1
构造一个数据,内层是状态码的分布,外层是用户数据。也就是我希望直接获得有哪些用户遇到了404 503的报错,截图回复
作业2
打造一个漏测的图,截图回复