0902数据分析实战

课前准备

docker pull docker.elastic.co/logstash/logstash:7.8.1
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.8.1
docker pull docker.elastic.co/kibana/kibana:7.8.1

知识点

ElasticSearch介绍

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.8.1
docker run -d --name elasticsearch \
  -p 9200:9200 -p 9300:9300 \
  -e "discovery.type=single-node" \
  docker.elastic.co/elasticsearch/elasticsearch:7.8.1


ES_HOST=stuq.ceshiren.com
curl -X PUT "$ES_HOST:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "seveniruby"
}
'
#文档检索
curl -X GET "$ES_HOST:9200/customer/_doc/1?pretty"

#搜索
curl -X GET "$ES_HOST:9200/customer/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": { "match_all": {} }
}
'

curl -X GET "$ES_HOST:9200/customer/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": { "match": { "name": "ceshiren.com" } }
}
'


apm

apm server

 docker run -d   --name=apm-server   --user=apm-server  -p 8200:8200   --link elasticsearch:elasticsearch  docker.elastic.co/apm/apm-server:7.9.0   --strict.perms=false -e   -E output.elasticsearch.hosts=["elasticsearch:9200"]

apm agent

java -javaagent:/Users/seveniruby/Downloads/elastic-apm-agent-1.18.0.RC1.jar \
     -Delastic.apm.service_name=my-application \
     -Delastic.apm.server_urls=http://stuq.ceshiren.com:9200 \
     -Delastic.apm.secret_token= \
     -Delastic.apm.application_packages=org.example \
     -jar /Users/seveniruby/ke/java_3/jacoco/apache-jmeter-5.2.1/bin/ApacheJMeter.jar

Logstash介绍

docker pull docker.elastic.co/logstash/logstash:7.8.1
docker run -it --rm \
  -v $PWD/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
  -v $PWD/logstash.yml:/usr/share/logstash/config/logstash.yml  \
  -v $PWD/:/data/ \
  docker.elastic.co/logstash/logstash:7.8.1 \
  --config.reload.automatic

logstash.conf

input {
    file {
        path=>["/data/*.json"]
    }
}

filter {
     json {
         source => "message"
     }
 }
output {
    elasticsearch{
        hosts=>["xx.xx.xx.xx"]
        index => "ceshiren2-%{+YYYY.MM}"
    }
    stdout {}

}

上课时候的配置

seveniruby:elk seveniruby$ cat logstash/logstash.conf
input{
  file { path => "/data/topics*.json" }
}

filter{
  json { source => "message" }
}

output{
  elasticsearch { hosts => ['stuq.ceshiren.com:9200'] }
  stdout {}
}

#logstash.yml为空
seveniruby:elk seveniruby$ cat logstash/logstash.yml

Kibana初步介绍

docker pull docker.elastic.co/kibana/kibana:7.8.1
docker run -d \
  --name kibana \
  --link elasticsearch:elasticsearch \
  -p 5601:5601 \
  docker.elastic.co/kibana/kibana:7.8.1

相关链接

https://www.elastic.co/guide/cn/index.html

作业

在本地搭建es+kibana+logstash,并截图kibana的discovery界面的数据到回复里

课后反馈

希望老师讲课完成后,花个10分钟对上课讲的知识点整合一下,进行归纳总结,之前的直播和视频,有点零散,理解起来有点困难 :rose:

希望老师在每个技术点、工具的介绍过程中,能有文本介绍,全是口头描述,理解成本太耗时了

老师,kibana能设置中文界面吗,给别人看数据的话,英文有点吃力

有的

老师,
可以在帖子补充下elk与第三方工具(如kafka/nginx)结合使用的基本示意图吗,类似前面课程用的plantuml图;
希望能串讲一下跟QA/测试相关常用(典型)的elk使用场景,谢谢~

作业截图:

1 Like

希望再细化些,有实际的落地操作;

作业

课后作业

作业

作业

还有个问题:

logstash启动时报错,如何解决?

解决:
由于使用的是mac本机搭建,需将logstash.conf中的hosts修改未本机mac的ip地址,而不是localhost。