杭州第一期_质量监控平台_20181028

上次作业答疑

ELK介绍

https://www.elastic.co/elk-stack

安装

#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,贴图回复