上次作业答疑
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 /Users/seveniruby/temp/elk/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
填充基本的数据,创建index pattern,并检索数据
作业2
批量制作csv文件数据,并导入到ELK中。存储到elk.testing-studio.com,把user名字改成你的自己的名字并上传上来。搜索自己的名字并贴图回复。
作业3
基于已有数据,找出来最近一天,遇到状态码400的所有用户数量,绘制饼图
作业4
统计最近2个小时里不同版本的数据量,以一个总的线形图表达出来,并贴到回复里
作业5
使用条形图分析每个用户user在3.1版本version的开发、测试阶段遇到的状态码status情况,贴图回复
作业6
制作漏测分析图,x轴是api,y轴分研发与测试。核心数据是关键api有没有记录,需要用到unique count,贴图回复