线上第六期_质量监控平台_20181104

上次作业答疑

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 $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

打造一个漏测的图,截图回复