Showing preview only (254K chars total). Download the full file or copy to clipboard to get everything.
Repository: higee/elastic
Branch: master
Commit: 240ce84f6708
Files: 179
Total size: 204.4 KB
Directory structure:
gitextract__q_184o4/
├── Install/
│ ├── config/
│ │ ├── docker-compose-higee.yml
│ │ ├── docker-compose.yml
│ │ └── kibana.yml
│ ├── data/
│ │ ├── access.log
│ │ ├── access2.log
│ │ ├── apache.log
│ │ ├── date.log
│ │ ├── ip-address.log
│ │ ├── test.csv
│ │ ├── titanic-header.csv
│ │ ├── titanic.csv
│ │ └── titanic2.csv
│ ├── driver/
│ │ └── mysql-connector-java-5.1.36-bin.jar
│ └── object/
│ ├── nginx-dashboard.json
│ ├── nginx-visualizations.json
│ ├── shopping-dashboard.json
│ └── shopping-visualizations.json
├── README.md
├── Week1_Kibana/
│ └── code/
│ ├── es_conf.py
│ ├── fake.py
│ └── insert.py
├── Week2_Kibana/
│ └── code/
│ └── timelion/
│ ├── all
│ ├── exercise
│ ├── tl10_scale_interval
│ ├── tl11_if
│ ├── tl1_index
│ ├── tl2_timefield
│ ├── tl3_query
│ ├── tl4_metric
│ ├── tl5_indices
│ ├── tl6_label
│ ├── tl7_divide
│ ├── tl8_offset
│ └── tl9_range
├── Week3_Kibana/
│ └── code/
│ ├── lucene_query_syntax/
│ │ ├── all
│ │ ├── and
│ │ ├── compound
│ │ ├── exact_field_match
│ │ ├── exercise
│ │ ├── field_match
│ │ ├── fuzzy
│ │ ├── keyword
│ │ ├── negative
│ │ ├── not
│ │ ├── numeric
│ │ ├── or
│ │ ├── positive
│ │ ├── proximity
│ │ ├── range
│ │ ├── term
│ │ ├── wildcard_1
│ │ └── wildcard_2
│ └── scripted_field/
│ ├── arithmetic_operation_1
│ ├── arithmetic_operation_2
│ ├── concat_1
│ ├── date_1
│ ├── date_2
│ ├── date_3
│ ├── date_4
│ ├── date_5
│ ├── if_1
│ └── if_2
├── Week4_Elasticsearch/
│ ├── code/
│ │ ├── data-type/
│ │ │ ├── complex/
│ │ │ │ ├── array/
│ │ │ │ │ ├── indexing
│ │ │ │ │ ├── mapping
│ │ │ │ │ └── search
│ │ │ │ ├── nested/
│ │ │ │ │ ├── indexing
│ │ │ │ │ ├── mapping
│ │ │ │ │ ├── search_1
│ │ │ │ │ └── search_2
│ │ │ │ └── object/
│ │ │ │ ├── indexing
│ │ │ │ └── mapping
│ │ │ └── core/
│ │ │ ├── float
│ │ │ ├── numeric
│ │ │ └── string
│ │ └── elasticsearch_API/
│ │ ├── document/
│ │ │ ├── add-document-post
│ │ │ ├── add-document-put
│ │ │ ├── check-document-id
│ │ │ ├── delete-document-id
│ │ │ ├── delete-document-query
│ │ │ ├── exercise
│ │ │ ├── reindex-all-documents
│ │ │ ├── reindex-some-documents
│ │ │ ├── update-document-id-all-fields
│ │ │ ├── update-document-id-some-fields
│ │ │ ├── update-document-query
│ │ │ └── upsert-document
│ │ ├── indices/
│ │ │ ├── add-mapping
│ │ │ ├── check-mapping
│ │ │ ├── check-mapping-template
│ │ │ ├── create-index
│ │ │ ├── create-mapping-template
│ │ │ ├── create-mapping-with-index
│ │ │ ├── create-mapping-without-index
│ │ │ ├── delete-index
│ │ │ └── exercise
│ │ └── search/
│ │ ├── from-size
│ │ ├── query_dsl/
│ │ │ ├── Compound-queries/
│ │ │ │ ├── bool-a-and-b
│ │ │ │ ├── bool-a-and-b-or-c
│ │ │ │ ├── bool-a-and-b-or-c-or-d
│ │ │ │ ├── bool-a-and-not-b
│ │ │ │ ├── bool-a-or-b
│ │ │ │ └── bool-example
│ │ │ ├── Full-text-queries/
│ │ │ │ ├── match
│ │ │ │ └── query-string
│ │ │ ├── Specialized-queries/
│ │ │ │ └── script-query
│ │ │ ├── TERM-VS-MATCH/
│ │ │ │ ├── indexing
│ │ │ │ ├── keyword-match-search
│ │ │ │ ├── keyword-term-search
│ │ │ │ ├── mapping
│ │ │ │ ├── text-match-search
│ │ │ │ └── text-term-search
│ │ │ ├── Term-level-queries/
│ │ │ │ ├── exists
│ │ │ │ ├── fuzzy
│ │ │ │ ├── prefix
│ │ │ │ ├── range
│ │ │ │ ├── term
│ │ │ │ ├── terms
│ │ │ │ └── wildcard
│ │ │ └── match_all
│ │ ├── sort
│ │ └── source
│ └── object/
│ ├── dashboard/
│ │ ├── nginx-dashboard.json
│ │ └── shopping-dashboard.json
│ ├── search/
│ │ └── nginx-search.json
│ └── visualization/
│ ├── nginx-visualization.json
│ └── shopping-visualization.json
├── Week5_Logstash/
│ └── code/
│ ├── filter/
│ │ ├── csv/
│ │ │ ├── autodetect-column-names.conf
│ │ │ ├── convert.conf
│ │ │ └── separator.conf
│ │ ├── date/
│ │ │ ├── date.conf
│ │ │ └── default.conf
│ │ ├── drop/
│ │ │ ├── drop1.conf
│ │ │ └── drop2.conf
│ │ ├── elasticsearch/
│ │ │ ├── example1.conf
│ │ │ ├── example1_.conf
│ │ │ ├── example2.conf
│ │ │ ├── example3.conf
│ │ │ ├── example3.json
│ │ │ ├── example4.conf
│ │ │ └── example4.json
│ │ ├── grok/
│ │ │ ├── access.conf
│ │ │ └── apache.conf
│ │ ├── mutate/
│ │ │ ├── add_field.conf
│ │ │ ├── remove_field.conf
│ │ │ └── split.conf
│ │ └── ruby/
│ │ ├── example1.conf
│ │ └── example2.conf
│ ├── input/
│ │ ├── elasticsearch/
│ │ │ └── elasticsearch.conf
│ │ ├── file/
│ │ │ ├── file-sincedb-path.conf
│ │ │ ├── file-start-position.conf
│ │ │ ├── file.conf
│ │ │ └── nginx.conf
│ │ ├── jdbc/
│ │ │ ├── jdbc-schedule.conf
│ │ │ ├── jdbc-sql-last-value-1.conf
│ │ │ ├── jdbc-sql-last-value-2.conf
│ │ │ └── jdbc.conf
│ │ └── stdin/
│ │ └── stdin.conf
│ ├── logstash.md
│ └── output/
│ ├── conditional.conf
│ ├── csv/
│ │ └── csv.conf
│ ├── elasticsearch/
│ │ ├── elasticsearch-dynamic-field-name-1.conf
│ │ ├── elasticsearch-dynamic-field-name-2.conf
│ │ ├── elasticsearch-stdout.conf
│ │ └── elasticsearch.conf
│ └── stdout/
│ └── stdout.conf
└── Week6_Review/
└── solution/
├── p44_template
├── p46_logstash
├── p53-heatmap.json
├── p54-coordinate-map.json
├── p55-coordinate-map.json
├── p58-timelion.json
├── p60-pie-chart.json
├── p62-data-table.json
├── p64-markdown.json
├── p65-dashboard.json
├── p66_query_dsl
├── p67_logstash
├── p71_backup_logstash
└── p73_backup_reindex
================================================
FILE CONTENTS
================================================
================================================
FILE: Install/config/docker-compose-higee.yml
================================================
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4
container_name: elasticsearch
environment:
http.host: '0.0.0.0'
network.host: '127.0.0.1'
ES_JAVA_OPTS: '-Xms4g -Xmx4g -XX:-AssumeMP'
bootstrap.memory_lock: 'true'
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
nproc:
soft: 4096
hard: 4096
ports:
- "9200:9200"
- "9300:9300"
restart: always
networks:
- elastic
logstash:
image: docker.elastic.co/logstash/logstash-oss:6.2.4
container_name: logstash
environment:
JAVA_OPTS: '-Xms1g -Xmx1g -XX:-AssumeMP'
depends_on: ['elasticsearch']
networks:
- elastic
volumes:
- ../driver:/usr/share/logstash/driver
- ../data:/usr/share/logstash/data
- /var/log/nginx:/usr/share/logstash/data2
- ../../Week5_Logstash/code:/usr/share/logstash/code
- ../../Week5_Logstash/code/input/file/nginx.conf:/usr/share/logstash/pipeline/logstash.conf
restart: always
kibana:
image: docker.elastic.co/kibana/kibana-oss:6.2.4
container_name: kibana
environment:
- ELASTICSEARCH_HOST=elasticsearch
- ELASTICSEARCH_PORT=9200
depends_on: ['elasticsearch']
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
ports:
- "5601:5601"
restart: always
networks:
- elastic
networks:
elastic:
driver: bridge
================================================
FILE: Install/config/docker-compose.yml
================================================
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4
container_name: elasticsearch
environment:
http.host: '0.0.0.0'
network.host: '127.0.0.1'
ES_JAVA_OPTS: '-Xms2g -Xmx2g -XX:-AssumeMP'
bootstrap.memory_lock: 'true'
reindex.remote.whitelist: "elasticsearch.higee.co:80"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
nproc:
soft: 4096
hard: 4096
ports:
- "9200:9200"
- "9300:9300"
restart: always
networks:
- elastic
logstash:
image: docker.elastic.co/logstash/logstash-oss:6.2.4
container_name: logstash
environment:
JAVA_OPTS: '-Xms512m -Xmx512m -XX:-AssumeMP'
depends_on: ['elasticsearch']
volumes:
- ../driver:/usr/share/logstash/driver
- ../data:/usr/share/logstash/data
- ../../Week5_Logstash/code:/usr/share/logstash/code
tty: true
entrypoint: ["/bin/bash"]
restart: always
networks:
- elastic
kibana:
image: docker.elastic.co/kibana/kibana-oss:6.2.4
container_name: kibana
environment:
- ELASTICSEARCH_HOST=elasticsearch
- ELASTICSEARCH_PORT=9200
depends_on: ['elasticsearch']
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
ports:
- "5601:5601"
restart: always
networks:
- elastic
networks:
elastic:
driver: bridge
================================================
FILE: Install/config/kibana.yml
================================================
#Kibana is served by a back end server. This setting specifies the port to use.
#server.port: 5601
# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "0.0.0.0"
# Enables you to specify a path to mount Kibana at if you are running behind a proxy. This only affects
# the URLs generated by Kibana, your proxy is expected to remove the basePath value before forwarding requests
# to Kibana. This setting cannot end in a slash.
#server.basePath: ""
# The maximum payload size in bytes for incoming server requests.
#server.maxPayloadBytes: 1048576
# The Kibana server's name. This is used for display purposes.
#server.name: "your-hostname"
# The URL of the Elasticsearch instance to use for all your queries.
elasticsearch.url: "http://elasticsearch:9200"
# When this setting's value is true Kibana uses the hostname specified in the server.host
# setting. When the value of this setting is false, Kibana uses the hostname of the host
# that connects to this Kibana instance.
#elasticsearch.preserveHost: true
# Kibana uses an index in Elasticsearch to store saved searches, visualizations and
# dashboards. Kibana creates a new index if the index doesn't already exist.
#kibana.index: ".kibana"
# The default application to load.
#kibana.defaultAppId: "discover"
# If your Elasticsearch is protected with basic authentication, these settings provide
# the username and password that the Kibana server uses to perform maintenance on the Kibana
# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
# is proxied through the Kibana server.
#elasticsearch.username: "user"
#elasticsearch.password: "pass"
# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
# These settings enable SSL for outgoing requests from the Kibana server to the browser.
#server.ssl.enabled: false
#server.ssl.certificate: /path/to/your/server.crt
#server.ssl.key: /path/to/your/server.key
# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
# These files validate that your Elasticsearch backend uses the same key files.
#elasticsearch.ssl.certificate: /path/to/your/client.crt
#elasticsearch.ssl.key: /path/to/your/client.key
# Optional setting that enables you to specify a path to the PEM file for the certificate
# authority for your Elasticsearch instance.
#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]
# To disregard the validity of SSL certificates, change this setting's value to 'none'.
#elasticsearch.ssl.verificationMode: full
# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of
# the elasticsearch.requestTimeout setting.
#elasticsearch.pingTimeout: 1500
# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value
# must be a positive integer.
#elasticsearch.requestTimeout: 30000
# List of Kibana client-side headers to send to Elasticsearch. To send *no* client-side
# headers, set this value to [] (an empty list).
#elasticsearch.requestHeadersWhitelist: [ authorization ]
# Header names and values that are sent to Elasticsearch. Any custom headers cannot be overwritten
# by client-side headers, regardless of the elasticsearch.requestHeadersWhitelist configuration.
#elasticsearch.customHeaders: {}
# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable.
#elasticsearch.shardTimeout: 0
# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying.
#elasticsearch.startupTimeout: 5000
# Specifies the path where Kibana creates the process ID file.
#pid.file: /var/run/kibana.pid
# Enables you specify a file where Kibana stores log output.
#logging.dest: stdout
# Set the value of this setting to true to suppress all logging output.
#logging.silent: false
# Set the value of this setting to true to suppress all logging output other than error messages.
#logging.quiet: false
# Set the value of this setting to true to log all events, including system usage information
# and all requests.
#logging.verbose: false
# Set the interval in milliseconds to sample system and process performance
# metrics. Minimum is 100ms. Defaults to 5000.
#ops.interval: 5000
# The default locale. This locale can be used in certain circumstances to substitute any missing
# translations.
#i18n.defaultLocale: "en"
regionmap:
layers:
- name: "Korea City"
url: "https://s3.ap-northeast-2.amazonaws.com/higee-map/korea.geojson"
fields:
- name: "name"
description: "City name"
================================================
FILE: Install/data/access.log
================================================
2018-02-05T05:49:53.859060Z 172.30.39.133 0.079 200 "GET https://helloworld.com/users/1 HTTP/1.1"
2018-02-05T06:49:53.859060Z 172.29.43.253 0.1 404 "GET https://helloworld.com/users/3 HTTP/1.1"
2018-02-05T07:49:53.859060Z 172.30.40.210 0.052 503 "GET https://helloworld.com/users/2 HTTP/1.1"
2018-02-05T08:49:53.859060Z 172.31.40.131 0.038 200 "POST https://helloworld.com/users/5 HTTP/1.1"
================================================
FILE: Install/data/access2.log
================================================
2018-09-10T05:49:22.859Z 178.73.215.171 0.079 200 "GET https://helloworld.com/users/1 HTTP/1.1"
2018-09-10T16:51:42.119Z 115.127.73.2 0.1 404 "GET https://helloworld.com/users/3 HTTP/1.1"
2018-09-10T07:41:39.239Z 207.148.120.201 0.052 503 "GET https://helloworld.com/users/2 HTTP/1.1"
2018-09-10T08:09:03.779Z 93.117.2.7 0.038 200 "POST https://helloworld.com/users/5 HTTP/1.1"
2018-09-10T08:19:13.989Z 93.115.2.7 0.038 200 "POST https://helloworld.com/users/5 HTTP/1.1"
================================================
FILE: Install/data/apache.log
================================================
127.0.0.1 - - [13/Dec/2015:03:02:45 -0800] "GET /xampp/status.php HTTP/1.1" 200 891 "http://cadenza/xampp/navi.php" "Mozilla/5.0 (Macintosh; Intel Mac OSX 10.9; rv:25.0) Gecko/20100101 Firefox/25.0"
123.222.333.123 HOME - [01/Feb/1998:01:08:46 -0800] "GET /bannerad/ad.htm HTTP/1.0" 200 2808 "http://www.referrer.com/bannerad/ba_intro.htm" "Mozilla/4.01 (Macintosh; I; PPC)"
daum.net HOME - [01/Apr/1998:01:09:14 -0800] "GET /bannerad/click.htm HTTP/1.0" 200 2070 "http://www.referrer.com/bannerad/menu.htm" "Mozilla/4.01 (Macintosh; I; PPC)"
111.222.333.123 AWAY - [01/Apr/1998:01:09:14 -0800] "GET /bannerad/click.htm HTTP/1.0" 200 2070 "http://www.referrer.com/bannerad/menu.htm" "Mozilla/4.01 (Macintosh; I; PPC)"
unicomp6.unicomp.net AWAY - [01/Apr/1998:01:09:14 -0800] "GET /bannerad/click.htm HTTP/1.0" 200 2070 "http://www.referrer.com/bannerad/menu.htm" "Mozilla/4.01 (Macintosh; I; PPC)"
123.222.333.123 AWAY - [01/Feb/2003:01:08:53 -0800] "GET /bannerad/ad7.gif HTTP/1.0" 200 332 "http://www.referrer.com/bannerad/ba_ad.htm" "Mozilla/4.01 (Macintosh; I; PPC)"
================================================
FILE: Install/data/date.log
================================================
2018-02-12T16:03:38 Ben
2018-02-13T03:25:31 John
2018-02-14T13:31:11 Leo
================================================
FILE: Install/data/ip-address.log
================================================
13.124.230.195:5601
13.124.230.195:3306
13.124.230.195:9200
13.124.230.195:9300
================================================
FILE: Install/data/test.csv
================================================
customer_card,seller_site,seller_rating,customer_sex,product_price,product_quantity,customer_age,customer_location,date_order,date_delivery,product_item,product_gps_lat,product_gps_lon
시티,옥션,3,남성,29000,4,46,경기도,2018-01-09T03:08:32,2018-01-12T19:23:32,가디건,37.5656494,126.868678
국민,옥션,1,남성,0,2,26,경기도,2018-01-19T03:08:32,2018-01-23T19:23:32,가디건,37.5556494,126.898678
시티,쿠팡,2,여성,10,4,46,서울특별시,2017-01-10T03:08:32,2017-11-12T19:23:32,가디건,37.50256494,127.038678
하나,11번가,5,남성,29000,4,46,경기도,2018-01-09T03:08:32,2018-01-12T19:23:32,셔츠,37.5656494,126.868678
하나,11번가,1,남성,0,2,26,경기도,2018-01-19T03:08:32,2018-01-23T19:23:32,니트,37.5556494,126.898678
우리,쿠팡,2,여성,1000,4,46,서울특별시,2017-01-10T03:08:32,2017-11-12T19:23:32,청바지,37.50256494,127.038678
시티,위메프,3,남성,3000,4,46,경기도,2018-01-09T03:08:32,2018-01-12T19:23:32,가디건,37.5656494,126.868678
국민,위메프,3,남성,5000,2,26,경기도,2018-01-19T03:08:32,2018-01-23T19:23:32,셔츠,37.5556494,126.898678
우리,쿠팡,3,여성,10000,4,46,서울특별시,2017-01-10T03:08:32,2017-11-12T19:23:32,셔츠,37.50256494,127.038678
국민,옥션,4,남성,290000,4,46,경기도,2018-01-09T03:08:32,2018-01-12T19:23:32,셔츠,37.5656494,126.868678
국민,GS샵,5,남성,1000,2,26,경기도,2018-01-19T03:08:32,2018-01-23T19:23:32,셔츠,37.5556494,126.898678
시티,GS샵,1,여성,15000,4,46,서울특별시,2017-01-10T03:08:32,2017-11-12T19:23:32,가디건,37.50256494,127.038678
================================================
FILE: Install/data/titanic-header.csv
================================================
Index,Name,Survival,Pclass,Sex,Age,SibSp,Parch,Ticket,Fare,Embarked
1,Braund,0,3,male,22,1,0,A/5 21171,7.25,S
2,Cumings,1,1,female,38,1,0,PC 17599,71.2833,C
3,Heikkinen,1,3,female,26,0,0,STON/O2. 3101282,7.925,S
================================================
FILE: Install/data/titanic.csv
================================================
1,Braund,0,3,male,22,1,0,A/5 21171,7.25,S
2,Cumings,1,1,female,38,1,0,PC 17599,71.2833,C
3,Heikkinen,1,3,female,26,0,0,STON/O2. 3101282,7.925,S
4,Futrelle,1,1,female,35,1,0,113803,53.1,S
5,Allen,0,3,male,35,0,0,373450,8.05,S
6,Moran,0,3,male,29.69911765,0,0,330877,8.4583,Q
7,McCarthy,0,1,male,54,0,0,17463,51.8625,S
8,Palsson,0,3,male,2,3,1,349909,21.075,S
9,Johnson,1,3,female,27,0,2,347742,11.1333,S
10,Nasser,1,2,female,14,1,0,237736,30.0708,C
11,Sandstrom,1,3,female,4,1,1,PP 9549,16.7,S
12,Bonnell,1,1,female,58,0,0,113783,26.55,S
13,Saundercock,0,3,male,20,0,0,A/5. 2151,8.05,S
14,Andersson,0,3,male,39,1,5,347082,31.275,S
15,Vestrom,0,3,female,14,0,0,350406,7.8542,S
16,Hewlett,1,2,female,55,0,0,248706,16,S
17,Rice,0,3,male,2,4,1,382652,29.125,Q
18,Williams,1,2,male,29.69911765,0,0,244373,13,S
19,Vander Planke,0,3,female,31,1,0,345763,18,S
20,Masselmani,1,3,female,29.69911765,0,0,2649,7.225,C
21,Fynney,0,2,male,35,0,0,239865,26,S
22,Beesley,1,2,male,34,0,0,248698,13,S
23,McGowan,1,3,female,15,0,0,330923,8.0292,Q
24,Sloper,1,1,male,28,0,0,113788,35.5,S
25,Palsson,0,3,female,8,3,1,349909,21.075,S
26,Asplund,1,3,female,38,1,5,347077,31.3875,S
27,Emir,0,3,male,29.69911765,0,0,2631,7.225,C
28,Fortune,0,1,male,19,3,2,19950,263,S
29,O'Dwyer,1,3,female,29.69911765,0,0,330959,7.8792,Q
30,Todoroff,0,3,male,29.69911765,0,0,349216,7.8958,S
31,Uruchurtu,0,1,male,40,0,0,PC 17601,27.7208,C
32,Spencer,1,1,female,29.69911765,1,0,PC 17569,146.5208,C
33,Glynn,1,3,female,29.69911765,0,0,335677,7.75,Q
34,Wheadon,0,2,male,66,0,0,C.A. 24579,10.5,S
35,Meyer,0,1,male,28,1,0,PC 17604,82.1708,C
36,Holverson,0,1,male,42,1,0,113789,52,S
37,Mamee,1,3,male,29.69911765,0,0,2677,7.2292,C
38,Cann,0,3,male,21,0,0,A./5. 2152,8.05,S
39,Vander Planke,0,3,female,18,2,0,345764,18,S
40,Nicola-Yarred,1,3,female,14,1,0,2651,11.2417,C
41,Ahlin,0,3,female,40,1,0,7546,9.475,S
42,Turpin,0,2,female,27,1,0,11668,21,S
43,Kraeff,0,3,male,29.69911765,0,0,349253,7.8958,C
44,Laroche,1,2,female,3,1,2,SC/Paris 2123,41.5792,C
45,Devaney,1,3,female,19,0,0,330958,7.8792,Q
46,Rogers,0,3,male,29.69911765,0,0,S.C./A.4. 23567,8.05,S
47,Lennon,0,3,male,29.69911765,1,0,370371,15.5,Q
48,O'Driscoll,1,3,female,29.69911765,0,0,14311,7.75,Q
49,Samaan,0,3,male,29.69911765,2,0,2662,21.6792,C
50,Arnold-Franchi,0,3,female,18,1,0,349237,17.8,S
================================================
FILE: Install/data/titanic2.csv
================================================
51,Panula,0,3,male,7,4,1,3101295,39.6875,S
52,Nosworthy,0,3,male,21,0,0,A/4. 39886,7.8,S
53,Harper,1,1,female,49,1,0,PC 17572,76.7292,C
54,Faunthorpe,1,2,female,29,1,0,2926,26,S
55,Ostby,0,1,male,65,0,1,113509,61.9792,C
56,Woolner,1,1,male,29.69911765,0,0,19947,35.5,S
57,Rugg,1,2,female,21,0,0,C.A. 31026,10.5,S
58,Novel,0,3,male,28.5,0,0,2697,7.2292,C
59,West,1,2,female,5,1,2,C.A. 34651,27.75,S
60,Goodwin,0,3,male,11,5,2,CA 2144,46.9,S
61,Sirayanian,0,3,male,22,0,0,2669,7.2292,C
62,Icard,1,1,female,38,0,0,113572,80,C
63,Harris,0,1,male,45,1,0,36973,83.475,S
64,Skoog,0,3,male,4,3,2,347088,27.9,S
65,Stewart,0,1,male,29.69911765,0,0,PC 17605,27.7208,C
66,Moubarek,1,3,male,29.69911765,1,1,2661,15.2458,C
67,Nye,1,2,female,29,0,0,C.A. 29395,10.5,S
68,Crease,0,3,male,19,0,0,S.P. 3464,8.1583,S
69,Andersson,1,3,female,17,4,2,3101281,7.925,S
70,Kink,0,3,male,26,2,0,315151,8.6625,S
71,Jenkin,0,2,male,32,0,0,C.A. 33111,10.5,S
72,Goodwin,0,3,female,16,5,2,CA 2144,46.9,S
73,Hood,0,2,male,21,0,0,S.O.C. 14879,73.5,S
74,Chronopoulos,0,3,male,26,1,0,2680,14.4542,C
75,Bing,1,3,male,32,0,0,1601,56.4958,S
76,Moen,0,3,male,25,0,0,348123,7.65,S
77,Staneff,0,3,male,29.69911765,0,0,349208,7.8958,S
78,Moutal,0,3,male,29.69911765,0,0,374746,8.05,S
79,Caldwell,1,2,male,0.83,0,2,248738,29,S
80,Dowdell,1,3,female,30,0,0,364516,12.475,S
81,Waelens,0,3,male,22,0,0,345767,9,S
82,Sheerlinck,1,3,male,29,0,0,345779,9.5,S
83,McDermott,1,3,female,29.69911765,0,0,330932,7.7875,Q
84,Carrau,0,1,male,28,0,0,113059,47.1,S
85,Ilett,1,2,female,17,0,0,SO/C 14885,10.5,S
86,Backstrom,1,3,female,33,3,0,3101278,15.85,S
87,Ford,0,3,male,16,1,3,W./C. 6608,34.375,S
88,Slocovski,0,3,male,29.69911765,0,0,SOTON/OQ 392086,8.05,S
89,Fortune,1,1,female,23,3,2,19950,263,S
90,Celotti,0,3,male,24,0,0,343275,8.05,S
91,Christmann,0,3,male,29,0,0,343276,8.05,S
92,Andreasson,0,3,male,20,0,0,347466,7.8542,S
93,Chaffee,0,1,male,46,1,0,W.E.P. 5734,61.175,S
94,Dean,0,3,male,26,1,2,C.A. 2315,20.575,S
95,Coxon,0,3,male,59,0,0,364500,7.25,S
96,Shorney,0,3,male,29.69911765,0,0,374910,8.05,S
97,Goldschmidt,0,1,male,71,0,0,PC 17754,34.6542,C
98,Greenfield,1,1,male,23,0,1,PC 17759,63.3583,C
99,Doling,1,2,female,34,0,1,231919,23,S
100,Kantor,0,2,male,34,1,0,244367,26,S
================================================
FILE: Install/object/nginx-dashboard.json
================================================
[
{
"_id": "bd2418e0-6f26-11e8-a0fb-51f0eb991705",
"_type": "dashboard",
"_source": {
"title": "nginx",
"hits": 0,
"description": "",
"panelsJSON": "[{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 350\":\"rgb(247,252,245)\",\"1,050 - 1,400\":\"rgb(35,139,69)\",\"350 - 700\":\"rgb(199,233,192)\",\"700 - 1,050\":\"rgb(116,196,118)\"},\"legendOpen\":false}},\"gridData\":{\"h\":3,\"i\":\"1\",\"w\":6,\"x\":0,\"y\":7},\"id\":\"fe7b9a30-6f20-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"1\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"2\",\"w\":4,\"x\":6,\"y\":7},\"id\":\"25a7f140-6f20-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"3\",\"w\":2,\"x\":10,\"y\":7},\"id\":\"cfbbc570-6f26-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"3\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"embeddableConfig\":{\"mapCenter\":[15.284185114076445,12.128906250000002],\"mapZoom\":2},\"gridData\":{\"h\":4,\"i\":\"4\",\"w\":12,\"x\":0,\"y\":10},\"id\":\"7a9123a0-6f27-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":4,\"i\":\"5\",\"w\":12,\"x\":0,\"y\":3},\"id\":\"08e28cc0-6f28-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"5\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"6\",\"w\":12,\"x\":0,\"y\":0},\"id\":\"57d11570-6f2a-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"6\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"7\",\"w\":6,\"x\":0,\"y\":14},\"id\":\"98a8d0b0-6f2a-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"7\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"8\",\"w\":6,\"x\":6,\"y\":14},\"id\":\"4b2430e0-6f2b-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"8\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"embeddableConfig\":{\"vis\":{\"colors\":{\"200\":\"#6ED0E0\",\"NOT 200\":\"#F29191\",\"nginx.access.response_code:200\":\"#F29191\"},\"legendOpen\":true}},\"gridData\":{\"h\":3,\"i\":\"9\",\"w\":12,\"x\":0,\"y\":20},\"id\":\"c1d84360-6f2c-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"9\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"10\",\"w\":12,\"x\":0,\"y\":23},\"id\":\"7b3cdde0-6f30-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"10\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"12\",\"w\":12,\"x\":0,\"y\":17},\"id\":\"de77bd70-6f31-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"12\",\"sort\":[\"nginx.access.body_sent.bytes\",\"desc\"],\"type\":\"search\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"13\",\"w\":12,\"x\":0,\"y\":26},\"id\":\"b23c8a00-6f32-11e8-a0fb-51f0eb991705\",\"panelIndex\":\"13\",\"type\":\"visualization\",\"version\":\"6.2.4\"}]",
"optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
"version": 1,
"timeRestore": false,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
}
}
}
]
================================================
FILE: Install/object/nginx-visualizations.json
================================================
[
{
"_id": "7a9123a0-6f27-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] coordinate maps",
"visState": "{\"title\":\"[nginx] coordinate maps\",\"type\":\"tile_map\",\"params\":{\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true,\"heatClusterSize\":1,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"baseLayersAreLoaded\":{},\"tmsLayers\":[{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}],\"selectedTmsLayer\":{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.geoip.location\",\"autoPrecision\":true,\"isFilteredByCollar\":true,\"useGeocentroid\":true,\"precision\":2}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "08e28cc0-6f28-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] region maps",
"visState": "{\"title\":\"[nginx] region maps\",\"type\":\"region_map\",\"params\":{\"legendPosition\":\"bottomright\",\"addTooltip\":true,\"colorSchema\":\"Yellow to Red\",\"selectedLayer\":{\"attribution\":\"<p><a href=\\\"http://www.naturalearthdata.com/about/terms-of-use\\\">Made with NaturalEarth</a> | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"name\":\"World Countries\",\"weight\":1,\"format\":{\"type\":\"geojson\"},\"url\":\"https://vector.maps.elastic.co/blob/5659313586569216?elastic_tile_service_tos=agree&my_app_version=6.2.4\",\"fields\":[{\"name\":\"iso2\",\"description\":\"Two letter abbreviation\"},{\"name\":\"name\",\"description\":\"Country name\"},{\"name\":\"iso3\",\"description\":\"Three letter abbreviation\"}],\"created_at\":\"2017-04-26T17:12:15.978370\",\"tags\":[],\"id\":5659313586569216,\"layerId\":\"elastic_maps_service.World Countries\"},\"selectedJoinField\":{\"name\":\"iso2\",\"description\":\"Two letter abbreviation\"},\"isDisplayWarning\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"baseLayersAreLoaded\":{},\"tmsLayers\":[{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}],\"selectedTmsLayer\":{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}},\"mapZoom\":2,\"mapCenter\":[0,0],\"outlineWeight\":2,\"showAllShapes\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.geoip.country_code2\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{\"mapZoom\":2,\"mapCenter\":[11.695272733029402,24.433593750000004]}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "cfbbc570-6f26-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] metric",
"visState": "{\"title\":\"[nginx] metric\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":31}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"req\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "c1d84360-6f2c-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] area chart",
"visState": "{\"title\":\"[nginx] area chart\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"req 개수\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"area\",\"mode\":\"stacked\",\"data\":{\"label\":\"req 개수\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"req 개수\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"h\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"날짜\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"filters\",\"schema\":\"group\",\"params\":{\"filters\":[{\"input\":{\"query\":\"nginx.access.response_code:200\"},\"label\":\"200\"},{\"input\":{\"query\":\"NOT nginx.access.response_code:200\"},\"label\":\"NOT 200\"}]}}]}",
"uiStateJSON": "{\"vis\":{\"colors\":{\"200\":\"#6ED0E0\",\"nginx.access.response_code:200\":\"#F29191\"},\"legendOpen\":false}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "98a8d0b0-6f2a-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] pie chart",
"visState": "{\"title\":\"[nginx] pie chart\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.method\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "4b2430e0-6f2b-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] horizontal bar",
"visState": "{\"title\":\"[nginx] horizontal bar\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"평균 전송량 (byte)\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"평균 전송량 (byte)\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"nginx.access.body_sent.bytes\",\"customLabel\":\"평균 전송량 (byte)\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.user_agent.name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"agent\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "fe7b9a30-6f20-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] heat map",
"visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"요일\",\"field\":\"요일_한글\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"asc\",\"orderAgg\":{\"enabled\":true,\"id\":\"2-orderAgg\",\"params\":{\"field\":\"요일_숫자\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket\",\"!min_bucket\",\"!sum_bucket\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"orderAgg\",\"params\":[],\"title\":\"Order Agg\"},\"type\":\"avg\"},\"orderBy\":\"custom\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":7},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"시간대\",\"field\":\"시간대\",\"ranges\":[{\"from\":18,\"to\":23},{\"from\":14,\"to\":18},{\"from\":10,\"to\":14},{\"from\":5,\"to\":10},{\"from\":0,\"to\":5}]},\"schema\":\"group\",\"type\":\"range\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"colorSchema\":\"Yellow to Red\",\"colorsNumber\":6,\"colorsRange\":[],\"enableHover\":false,\"invertColors\":false,\"legendPosition\":\"right\",\"percentageMode\":false,\"setColorRange\":false,\"times\":[],\"type\":\"heatmap\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"color\":\"#555\",\"rotate\":0,\"show\":false},\"scale\":{\"defaultYExtents\":false,\"type\":\"linear\"},\"show\":false,\"type\":\"value\"}]},\"title\":\"[nginx] heat map\",\"type\":\"heatmap\"}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 584\":\"rgb(255,255,204)\",\"584 - 1,167\":\"rgb(255,230,146)\",\"1,167 - 1,750\":\"rgb(254,191,90)\",\"1,750 - 2,334\":\"rgb(253,141,60)\",\"2,334 - 2,917\":\"rgb(244,61,37)\",\"2,917 - 3,500\":\"rgb(202,8,35)\"}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "1fe62120-6f37-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] Goal",
"visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customBucket\":{\"enabled\":true,\"id\":\"1-bucket\",\"params\":{\"customInterval\":\"2h\",\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"d\",\"min_doc_count\":1},\"schema\":{\"aggFilter\":[],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"max\":null,\"min\":0,\"name\":\"bucketAgg\",\"params\":[],\"title\":\"Bucket Agg\"},\"type\":\"date_histogram\"},\"customMetric\":{\"enabled\":true,\"id\":\"1-metric\",\"params\":{},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!percentile_ranks\",\"!median\",\"!std_dev\",\"!sum_bucket\",\"!avg_bucket\",\"!min_bucket\",\"!max_bucket\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"max\":null,\"min\":0,\"name\":\"metricAgg\",\"params\":[],\"title\":\"Metric Agg\"},\"type\":\"count\"}},\"schema\":\"metric\",\"type\":\"max_bucket\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"filters\":[{\"input\":{\"query\":\"nginx.access.geoip.country_name: \\\"United States\\\"\"},\"label\":\"\"}]},\"schema\":\"group\",\"type\":\"filters\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"gauge\":{\"autoExtend\":false,\"backStyle\":\"Full\",\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":200}],\"extendRange\":true,\"gaugeColorMode\":\"None\",\"gaugeStyle\":\"Full\",\"gaugeType\":\"Arc\",\"invertColors\":false,\"labels\":{\"color\":\"black\",\"show\":true},\"orientation\":\"vertical\",\"percentageMode\":true,\"scale\":{\"color\":\"#333\",\"labels\":false,\"show\":false,\"width\":2},\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":60,\"labelColor\":false,\"subText\":\"\"},\"type\":\"meter\",\"useRanges\":false,\"verticalSplit\":false},\"isDisplayWarning\":false,\"type\":\"gauge\"},\"title\":\"[nginx] Goal\",\"type\":\"goal\"}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "57d11570-6f2a-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] markdown",
"visState": "{\"title\":\"[nginx] markdown\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"### Nginx Access.Log Dashboard\\n---\\n```\\n66.249.82.131 - - [13/Jun/2018:17:01:02 +0000] \\\"GET /ui/favicons/favicon-16x16.png HTTP/1.1\\\" 304 0 \\\"http://kibana.higee.co/app/kibana\\\" \\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\" \\\"118.221.38.242\\\"\\n118.221.38.242 - - [13/Jun/2018:17:01:14 +0000] \\\"POST /api/console/proxy?path=_aliases&method=GET HTTP/1.1\\\" 200 107 \\\"http://kibana.higee.co/app/kibana\\\" \\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\" \\\"-\\\"\\n118.221.38.242 - - [13/Jun/2018:17:01:14 +0000] \\\"POST /api/console/proxy?path=_mapping&method=GET HTTP/1.1\\\" 200 974 \\\"http://kibana.higee.co/app/kibana\\\" \\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\" \\\"-\\\"\\n66.249.82.131 - - [13/Jun/2018:17:01:16 +0000] \\\"GET /ui/favicons/favicon-32x32.png HTTP/1.1\\\" 304 0 \\\"http://kibana.higee.co/app/kibana\\\" \\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\" \\\"118.221.38.242\\\"\\n66.249.82.129 - - [13/Jun/2018:17:01:17 +0000] \\\"GET /ui/favicons/favicon-16x16.png HTTP/1.1\\\" 304 0 \\\"http://kibana.higee.co/app/kibana\\\" \\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\" \\\"118.221.38.242\\\"\\n```\"},\"aggs\":[]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{}"
}
}
},
{
"_id": "7b3cdde0-6f30-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] Timelion",
"visState": "{\"title\":\"[nginx] Timelion\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(index=nginx*, timefield=@timestamp, metric=count).label(전체).lines(), .es(index=nginx*, timefield=@timestamp, q= -nginx.access.response_code:200, metric=count).divide(.es(index=nginx*, timefield=@timestamp, metric=count)).if(gte, 0.5, .es(index=nginx*, timefield=@timestamp, metric=count, q=-nginx.access.response_code:200), null).points().color(#fd8282).label('에러 50% 이상').legend(position=ne)\",\"interval\":\"auto\"},\"aggs\":[]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{}"
}
}
},
{
"_id": "25a7f140-6f20-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] tag-cloud",
"visState": "{\"title\":\"[nginx] tag-cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":35},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.user_agent.os_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "2bd12750-a362-11e8-8d82-2973ec7f077b",
"_type": "visualization",
"_source": {
"title": "[nginx] heat map2",
"visState": "{\"title\":\"[nginx] heat map2\",\"type\":\"heatmap\",\"params\":{\"addLegend\":true,\"addTooltip\":true,\"colorSchema\":\"Yellow to Red\",\"colorsNumber\":6,\"colorsRange\":[],\"enableHover\":false,\"invertColors\":false,\"legendPosition\":\"right\",\"percentageMode\":false,\"setColorRange\":false,\"times\":[],\"type\":\"heatmap\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"color\":\"#555\",\"rotate\":0,\"show\":false},\"scale\":{\"defaultYExtents\":false,\"type\":\"linear\"},\"show\":false,\"type\":\"value\"}]},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"nginx.access.remote_ip\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.geoip.city_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"orderAgg\":{\"id\":\"2-orderAgg\",\"enabled\":true,\"type\":\"avg\",\"schema\":{\"group\":\"none\",\"name\":\"orderAgg\",\"title\":\"Order Agg\",\"hideCustomLabel\":true,\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket\",\"!min_bucket\",\"!sum_bucket\"],\"min\":0,\"max\":null,\"editor\":false,\"params\":[],\"deprecate\":false},\"params\":{\"field\":\"nginx.access.body_sent.bytes\"}},\"order\":\"desc\",\"orderBy\":\"custom\",\"customLabel\":\"요일\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"range\",\"schema\":\"group\",\"params\":{\"field\":\"nginx.access.body_sent.bytes\",\"ranges\":[{\"from\":0,\"to\":300},{\"from\":300,\"to\":600},{\"from\":600,\"to\":900},{\"from\":900,\"to\":null}],\"customLabel\":\"시간대\"}}]}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 7\":\"rgb(255,255,204)\",\"7 - 14\":\"rgb(255,230,146)\",\"14 - 20\":\"rgb(254,191,90)\",\"20 - 27\":\"rgb(253,141,60)\",\"27 - 34\":\"rgb(244,61,37)\",\"34 - 40\":\"rgb(202,8,35)\"}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
}
}
},
{
"_id": "b23c8a00-6f32-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] Data Table",
"visState": "{\"title\":\"[nginx] Data Table\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"개수\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"bucket\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"d\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"날짜\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"nginx.access.geoip.city_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":2,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"도시\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"nginx.access.body_sent.bytes\",\"customLabel\":\"평균 데이터 크기\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"range\",\"schema\":\"bucket\",\"params\":{\"field\":\"nginx.access.body_sent.bytes\",\"ranges\":[{\"from\":0,\"to\":1000},{\"from\":1000,\"to\":null}],\"customLabel\":\"데이터 크기\"}},{\"id\":\"7\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"nginx.access.user_agent.os\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":2,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"os\"}}]}",
"uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"b8c6bd20-87db-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
}
}
}
]
================================================
FILE: Install/object/shopping-dashboard.json
================================================
[
{
"_id": "AV-a4D_kMbjMXoGxGOm2",
"_type": "dashboard",
"_source": {
"title": "shopping",
"hits": 0,
"description": "",
"panelsJSON": "[{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 7\":\"rgb(255,255,204)\",\"14 - 21\":\"rgb(253,141,60)\",\"21 - 28\":\"rgb(227,27,28)\",\"7 - 14\":\"rgb(254,217,118)\"},\"legendOpen\":false}},\"gridData\":{\"h\":4,\"i\":\"19\",\"w\":6,\"x\":6,\"y\":7},\"id\":\"AWJdhp4tzMQVnr-9MxxP\",\"panelIndex\":\"19\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":4,\"i\":\"20\",\"w\":6,\"x\":0,\"y\":14},\"id\":\"AWJdii5xzMQVnr-9MxxQ\",\"panelIndex\":\"20\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"embeddableConfig\":{\"mapCenter\":[36.54494944148322,128.199462890625],\"mapZoom\":6},\"gridData\":{\"h\":4,\"i\":\"21\",\"w\":6,\"x\":6,\"y\":3},\"id\":\"AWJgEGqCzMQVnr-9MxxW\",\"panelIndex\":\"21\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"22\",\"w\":9,\"x\":0,\"y\":0},\"id\":\"AWJglBU6zMQVnr-9Mxxa\",\"panelIndex\":\"22\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":4,\"i\":\"24\",\"w\":6,\"x\":0,\"y\":3},\"id\":\"AWJgsNh9zMQVnr-9Mxxe\",\"panelIndex\":\"24\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"gridData\":{\"h\":3,\"i\":\"25\",\"w\":3,\"x\":9,\"y\":0},\"id\":\"AWJguWqpzMQVnr-9Mxxg\",\"panelIndex\":\"25\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":4,\"i\":\"26\",\"w\":6,\"x\":0,\"y\":7},\"id\":\"AWJgycpEzMQVnr-9Mxxi\",\"panelIndex\":\"26\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":3,\"i\":\"27\",\"w\":6,\"x\":0,\"y\":11},\"id\":\"AWJg0q4CzMQVnr-9Mxxk\",\"panelIndex\":\"27\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"28\",\"w\":6,\"x\":6,\"y\":11},\"id\":\"AWJg1XpWzMQVnr-9Mxxl\",\"panelIndex\":\"28\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":4,\"i\":\"29\",\"w\":12,\"x\":0,\"y\":18},\"id\":\"AWJg1wbTzMQVnr-9Mxxm\",\"panelIndex\":\"29\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 1\":\"rgb(165,0,38)\",\"1 - 2\":\"rgb(249,142,82)\",\"2 - 3\":\"rgb(255,255,190)\",\"3 - 4\":\"rgb(135,203,103)\",\"4 - 5\":\"rgb(0,104,55)\"}}},\"gridData\":{\"h\":4,\"i\":\"30\",\"w\":6,\"x\":6,\"y\":14},\"id\":\"AWJg3QUCzMQVnr-9Mxxo\",\"panelIndex\":\"30\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"gridData\":{\"h\":3,\"i\":\"31\",\"w\":12,\"x\":0,\"y\":22},\"id\":\"AWGI8fjSPloSIAlpOE6c\",\"panelIndex\":\"31\",\"type\":\"visualization\",\"version\":\"6.2.4\"}]",
"optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}",
"version": 1,
"timeRestore": false,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"match_all\":{}}}}"
}
}
}
]
================================================
FILE: Install/object/shopping-visualizations.json
================================================
[
{
"_id": "AV_Fp61Dju5h0m3erKmP",
"_type": "visualization",
"_source": {
"title": "shopping_timelion_2",
"visState": "{\"title\":\"shopping_timelion_2\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(index=shopping, timefield=주문시간, metric=sum:상품가격).label('올해 매출').range(0, 1), .es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y).label('작년 매출').color(#00b8ff).range(0, 1), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).subtract(.es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y)).if(gte, 50000, .es(index=shopping, timefield=주문시간, metric=sum:상품가격), null).lines(fill=5, width=2).color(#fd8282).label('전년 대비 50,000 이상 상승 구간').yaxis(label=매출).range(0, 1)\",\"interval\":\"1d\",\"type\":\"timelion\"},\"aggs\":[],\"listeners\":{}}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJglBU6zMQVnr-9Mxxa",
"_type": "visualization",
"_source": {
"title": "[shopping] markdown",
"visState": "{\"title\":\"[shopping] markdown\",\"type\":\"markdown\",\"params\":{\"type\":\"markdown\",\"markdown\":\"### Elastic Stack을 활용한 Data Dashboard 만들기 CAMP\\n---\\n* [강의자료](https://github.com/higee/elastic)\\n* [강의질문](https://www.facebook.com/groups/FCElasticStack/)\\n* [Markdown문법](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)\",\"fontSize\":12},\"aggs\":[]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWGI8fjSPloSIAlpOE6c",
"_type": "visualization",
"_source": {
"title": "[shopping] Timelion",
"visState": "{\"title\":\"[shopping] Timelion\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(index=shopping, timefield=주문시간, metric=sum:상품가격).label('올해 매출'), .es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y).label('작년 매출').color(#00b8ff), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).subtract(.es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y)).if(gte, 50000, .es(index=shopping, timefield=주문시간, metric=sum:상품가격), null).lines(fill=5, width=2).color(#fd8282).label('전년 대비 50,000 이상 상승 구간').yaxis(label=매출).legend(position=ne)\",\"interval\":\"1d\",\"type\":\"timelion\"},\"aggs\":[]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJg1wbTzMQVnr-9Mxxm",
"_type": "visualization",
"_source": {
"title": "[shopping] Data Table",
"visState": "{\"title\":\"[shopping] Data Table\",\"type\":\"table\",\"params\":{\"perPage\":30,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"type\":\"table\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"metric\",\"params\":{\"field\":\"상품가격\",\"customLabel\":\"매출\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"bucket\",\"params\":{\"field\":\"주문시간\",\"interval\":\"d\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"날짜\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"구매사이트\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"사이트\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"결제카드\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"카드\"}}]}",
"uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJgsNh9zMQVnr-9Mxxe",
"_type": "visualization",
"_source": {
"title": "[shopping] Tag Cloud",
"visState": "{\"title\":\"[shopping] Tag Cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":72,\"type\":\"tagcloud\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"구매사이트\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJg3QUCzMQVnr-9Mxxo",
"_type": "visualization",
"_source": {
"title": "[shopping] Goal",
"visState": "{\"title\":\"[shopping] Goal\",\"type\":\"goal\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Arc\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"useRanges\":false,\"colorSchema\":\"Yellow to Red\",\"gaugeColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":1},{\"from\":1,\"to\":2},{\"from\":2,\"to\":3},{\"from\":3,\"to\":4},{\"from\":4,\"to\":5}],\"invertColors\":true,\"labels\":{\"show\":true,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"meter\",\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}},\"isDisplayWarning\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"판매자평점\",\"aggregate\":\"average\",\"size\":10,\"sortField\":\"상품가격\",\"sortOrder\":\"desc\",\"customLabel\":\"연령별 VIP 평점\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"연령대\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":3,\"order\":\"asc\",\"orderBy\":\"_term\"}}]}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 1\":\"rgb(128,0,38)\",\"1 - 2\":\"rgb(227,27,28)\",\"2 - 3\":\"rgb(253,141,60)\",\"3 - 4\":\"rgb(254,217,118)\",\"4 - 5\":\"rgb(255,255,204)\"}},\"spy\":{\"mode\":{\"name\":null,\"fill\":false}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJgycpEzMQVnr-9Mxxi",
"_type": "visualization",
"_source": {
"title": "[shopping] Pie Chart",
"visState": "{\"title\":\"[shopping] Pie Chart\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"판매자평점\",\"aggregate\":\"average\",\"size\":5,\"sortField\":\"판매자평점\",\"sortOrder\":\"desc\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"histogram\",\"schema\":\"split\",\"params\":{\"field\":\"배송소요시간\",\"interval\":24,\"extended_bounds\":{},\"row\":false}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"고객주소_시도\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":3,\"orderAgg\":{\"id\":\"2-orderAgg\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"orderAgg\",\"params\":{\"field\":\"배송소요시간\"}},\"order\":\"desc\",\"orderBy\":\"custom\"}}]}",
"uiStateJSON": "{\"vis\":{\"colors\":{\"인천광역시\":\"#962D82\"},\"legendOpen\":false}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJgEGqCzMQVnr-9MxxW",
"_type": "visualization",
"_source": {
"title": "[shopping] Region Map",
"visState": "{\"title\":\"[shopping] Region Map\",\"type\":\"region_map\",\"params\":{\"legendPosition\":\"bottomright\",\"addTooltip\":true,\"colorSchema\":\"Yellow to Red\",\"selectedLayer\":{\"name\":\"Korea City\",\"url\":\"https://s3.ap-northeast-2.amazonaws.com/higee-map/korea.geojson\",\"fields\":[{\"name\":\"name\",\"description\":\"City name\"}],\"format\":{\"type\":\"geojson\"},\"meta\":{\"feature_collection_path\":\"data\"},\"layerId\":\"self_hosted.Korea City\"},\"selectedJoinField\":{\"name\":\"name\",\"description\":\"City name\"},\"type\":\"region_map\",\"isDisplayWarning\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"baseLayersAreLoaded\":{},\"tmsLayers\":[{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}],\"selectedTmsLayer\":{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}},\"mapZoom\":2,\"mapCenter\":[0,0],\"outlineWeight\":1,\"showAllShapes\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"고객주소_시도\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{\"mapZoom\":7,\"mapCenter\":[36.071302299422406,128.21594238281253],\"spy\":null}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJgoeObzMQVnr-9Mxxc",
"_type": "visualization",
"_source": {
"title": "shopping_coordinates",
"visState": "{\"title\":\"shopping_coordinates\",\"type\":\"tile_map\",\"params\":{\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true,\"heatMaxZoom\":0,\"heatMinOpacity\":0.1,\"heatRadius\":25,\"heatBlur\":15,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"options\":{\"version\":\"1.3.0\",\"layers\":\"0\",\"format\":\"image/png\",\"transparent\":true,\"attribution\":\"Maps provided by USGS\",\"styles\":\"\"}},\"type\":\"tile_map\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"물건좌표\",\"autoPrecision\":true,\"useGeocentroid\":true,\"precision\":2}}],\"listeners\":{}}",
"uiStateJSON": "{\"mapZoom\":9,\"mapCenter\":[36.52619126653696,127.91244506835936]}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJguWqpzMQVnr-9Mxxg",
"_type": "visualization",
"_source": {
"title": "[shopping] metrics",
"visState": "{\"title\":\"[shopping] metrics\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"colorSchema\":\"Green to Red\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":true,\"color\":\"black\"},\"style\":{\"fontSize\":60,\"bgColor\":false,\"labelColor\":false,\"subText\":\"\"},\"metricColorMode\":\"None\"}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"전체 데이터\"}}]}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJdii5xzMQVnr-9MxxQ",
"_type": "visualization",
"_source": {
"title": "[shopping] Area Chart",
"visState": "{\"title\":\"[shopping] Area Chart\",\"type\":\"area\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"주문시간\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"주문개수\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"area\",\"mode\":\"stacked\",\"data\":{\"label\":\"주문개수\",\"id\":\"1\"},\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"area\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"metric\",\"params\":{\"field\":\"상품개수\",\"customLabel\":\"주문개수\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"주문시간\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"주문시간\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"고객성별\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJg1XpWzMQVnr-9Mxxl",
"_type": "visualization",
"_source": {
"title": "[shopping] Horizontal Bar",
"visState": "{\"title\":\"[shopping] Horizontal Bar\",\"type\":\"histogram\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{\"text\":\"판매자평점\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"매출\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"매출\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"horizontal_bar\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"metric\",\"params\":{\"field\":\"상품가격\",\"customLabel\":\"매출\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"판매자평점\",\"interval\":1,\"extended_bounds\":{}}}]}",
"uiStateJSON": "{\"vis\":{\"legendOpen\":false}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJdhp4tzMQVnr-9MxxP",
"_type": "visualization",
"_source": {
"title": "[shopping] Heat Map",
"visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"주문요일\",\"field\":\"주문시간_요일\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"asc\",\"orderAgg\":{\"enabled\":true,\"id\":\"2-orderAgg\",\"params\":{\"field\":\"주문시간_요일_sort\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket\",\"!min_bucket\",\"!sum_bucket\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"orderAgg\",\"params\":[],\"title\":\"Order Agg\"},\"type\":\"max\"},\"orderBy\":\"custom\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":7},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"extended_bounds\":{},\"field\":\"주문시간_시간대\",\"interval\":1},\"schema\":\"group\",\"type\":\"histogram\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"colorSchema\":\"Yellow to Red\",\"colorsNumber\":4,\"colorsRange\":[],\"enableHover\":false,\"invertColors\":false,\"legendPosition\":\"right\",\"percentageMode\":false,\"setColorRange\":false,\"times\":[],\"type\":\"heatmap\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"color\":\"#555\",\"rotate\":0,\"show\":false},\"scale\":{\"defaultYExtents\":false,\"type\":\"linear\"},\"show\":false,\"type\":\"value\"}]},\"title\":\"[shopping] Heat Map\",\"type\":\"heatmap\"}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 45\":\"rgb(255,255,204)\",\"45 - 90\":\"rgb(254,217,118)\",\"90 - 135\":\"rgb(253,141,60)\",\"135 - 180\":\"rgb(227,27,28)\"}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJg0q4CzMQVnr-9Mxxk",
"_type": "visualization",
"_source": {
"title": "[shopping] Line Chart",
"visState": "{\"title\":\"[shopping] Line Chart\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"주문시간\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Standard Deviation of 배송소요시간\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Standard Deviation of 배송소요시간\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":true,\"type\":\"line\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"std_dev\",\"schema\":\"metric\",\"params\":{\"field\":\"배송소요시간\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"주문시간\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"주문시간\"}}]}",
"uiStateJSON": "{\"spy\":{\"mode\":{\"name\":null,\"fill\":false}},\"vis\":{\"legendOpen\":false,\"colors\":{\"Lower Standard Deviation of 배송소요시간\":\"#B7DBAB\",\"Upper Standard Deviation of 배송소요시간\":\"#65C5DB\"}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"7435c580-9fb8-11e8-9edd-ff0dadde764f\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
}
]
================================================
FILE: README.md
================================================
### Elastic Stack을 활용한 Dashboard 만들기
---
#### 안내
* 이 repository는 지속적으로 업데이트가 진행된다. (`<>Code`, `Issues`, `Wiki`)
* `branch`는 [Fast Campus](http://www.fastcampus.co.kr/data_camp_dsbd/) 강의 기수에 맞춰져 있다.
* Elastic Stack Version 별로 자료가 필요하면 [Release](https://github.com/higee/elastic/releases)에서 다운 받으면 된다.
* repository 요소별 안내
* `Code` : Elastic Stack 흐름에 관한 전반적인 설명
* `Issues` : 자주 들어온 질문 정리
* `Wiki` : Elastic Stack 사용법에 초점을 맞춘 간단 사용 설명서
#### 설치
* AWS EC2에 접속 하는 경우를 제외하고는 Windows 및 Mac OS 공통
* 아래 내용의 동영상이며 영상 속 코드를 복사할 수도 있다.
[](https://asciinema.org/a/176392)
----
#### 0. AWS EC2 설정
* AMI : `Amazon Linux 2 LTS Candidate 2 AMI (HVM), SSD Volume Type - ami-96b916f8`
* Security Group
| Type | Protocol | Port Range | Source | Description
| :------------- |:-------------:| :-----:| :----: | :---|
| SSH | TCP | 22 | Custom 0.0.0.0/0 | ssh
| Custom TCP | TCP | 9200 | Custom 0.0.0.0/0 | elasticsearch REST
| Custom TCP | TCP | 9300 | Custom 0.0.0.0/0 | elasticsearch node communication
| Custom TCP | TCP | 5601 | Custom 0.0.0.0/0 | kibana
<a name='ec2'></a>
#### 1. AWS EC2 접속
* Mac OS
* elastic_camp.pem를 Home directory에 다운 받고 Home으로 이동
* 예를 들어 ip 주소가 12.345.678.123인 경우
```
$ cd ~
$ chmod 400 elastic_camp.pem
$ ssh -i "elastic_camp.pem" ec2-user@12.345.678.123
```
* Windows : [클릭](https://github.com/higee/elastic/wiki/AWS-EC2-Instance-%EC%83%9D%EC%84%B1-%EB%B0%8F-%EC%A0%91%EC%86%8D#connect-windows)
#### 2. virtual memory areas 늘리기
* 설명
* Elasticsearch는 mmapfs 디렉토리에 index를 저장한다 (default 설정)
* mmap counts에 대한 운영체제의 limit이 default로는 낮게 되어 있어서 높혀주지 않으면 out of memory 발생
* 방법
* `$ sudo vim /etc/sysctl.conf`
* 가장 아래 라인으로 이동 : `shift + g` 입력
* 새로운 라인으로 편집 모드 : `o` 입력
* 다음과 같이 입력 `vm.max_map_count=262144`
* 저장 : `ESC` 누르고 `:wq` 입력 후 `Enter`
* 재시작 : `$ sudo reboot`
#### 3. docker 설치
* 약 1분 후에 [AWS EC2 접속](#ec2)와 같은 방법으로 재접속한다
* docker 설치 및 현재 유저로도 실행할 수 있도록 설정
```
$ sudo yum install docker -y
$ sudo usermod -aG docker $USER
$ exit
```
* [AWS EC2 접속](#ec2)와 같은 방법으로 재접속
* docker 구동
```$ sudo service docker start```
#### 4. docker-compse 설치 및 실행 가능하게 설정
```
$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
```
<a name='git'></a>
#### 5. git 설치 및 repo clone
* git을 설치하고 본 repository를 clone 받는다
* elastic stack 설치에 필요한 스크립트 및 자료를 미리 올려두었다
```
$ sudo yum install git -y
$ git clone -b class5 https://github.com/higee/elastic.git
$ cd /home/ec2-user/elastic/Install/config
```
#### 6. 파일 소유권 변환
```
$ sudo chown -R 1000:1000 /home/ec2-user/elastic/
```
#### 7. elastic stack 실행
* 다운 받은 docker-compose.yml에 설치 및 실행에 필요한 모든 정보가 들어있다.
* 수업 후에 환경에 맞게 customize하고 우선은 default 상태로 실행하자
* foreground에서 실행하고 log를 확인하자
```
$ docker-compose up
```
* log를 확인했으면 `ctrl+c`로 중단하고 detached mode로 실행하자
```
$ docker-compose up -d
```
#### 8. logstash 실행
* logstash container 실행 : `$ docker exec -it logstash bash`
* permission error 생길 경우 root로 실행 : `$ docker exec -u 0 -it logstash bash`
* logstash 실행
* 편의상 configuraiton 파일도 모두 volume 형태로 mount 해두었다
* 실행하고 싶은 scenario를 [여기](https://github.com/higee/elastic/blob/class5/Week5_Logstash/code/logstash.md)에서 찾아서 실행하자
* 예를 들어 아래와 같이 하면 파일 데이터를 수집하는 logstash를 실행한다
```
$ bin/logstash -f code/input/file/file-sincedb-path.conf
```
#### 9. Kibana 접속
* 예를 들어 ip 주소가 12.345.678.123인 경우 : `http://12.345.678.123:5601`
* docker-compose에서 port를 변경해주면 `80번` 혹은 `443번` 포트 등을 사용할 수 있다
---
#### 기타
* 내용에 대한 피드백(틀린 내용, 설명의 애매함, version upgrade 등)은 언제든지 편하게 알려주세요.
* 데이터는 랜덤으로 생성했으니 참고 바랍니다.
================================================
FILE: Week1_Kibana/code/es_conf.py
================================================
properties = {
"properties": {
"접수번호" : {"type": "integer"},
"주문시간" : {"type" : "date"},
"수령시간" : {"type" : "date"},
"예약여부" : {"type" : "keyword"},
"배송메모" : {"type" : "text"},
"고객ip" : {"type" : "ip"},
"고객성별" : {"type" : "keyword"},
"고객나이" : {"type" : "integer"},
"물건좌표" : {"type" : "geo_point"},
"고객주소_시도" : {"type" : "keyword"},
"구매사이트" : {"type" : "keyword"},
"판매자평점" : {"type" : "integer"},
"상품분류" : {"type" : "keyword"},
"상품가격" : {"type" : "integer"},
"상품개수" : {"type" : "integer"},
"결제카드" : {"type" : "keyword"}
}
}
================================================
FILE: Week1_Kibana/code/fake.py
================================================
import datetime
import socket
import random
import struct
from elasticsearch import Elasticsearch
def fake_data(es, name, n):
x = ['예약', '일반']
y = [1, 2, 3, 4, 5]
prob = [0.1, 0.9]
probs_sex = [0.45, 0.55]
probs = [0.3, 0.1, 0.3, 0.2, 0.1]
probs_memo = [0.3, 0.1, 0.3, 0.12, 0.1, 0.05, 0.03]
probs_month = [0.2, 0.1, 0.05, 0.05, 0.07, 0.03, 0.02, 0.02, 0.16, 0.05, 0.1, 0.15]
probs_city = [0.3, 0.08, 0.03, 0.06, 0.07, 0.08, 0.03, 0.09, 0.063, 0.0205, 0.0305, 0.03, 0.05, 0.03, 0.001, 0.03, 0.005]
for i in range(1, n+1):
doc = dict()
# 접수번호
order = i
# 접수시간
year = random.choice(range(2017, 2019))
month = random.choices(range(1, 13), weights=probs_month, k=1)[0]
if month in [1, 3, 5, 7, 8, 10, 12]:
day = random.choice(range(1, 32))
elif month in [4, 6, 9, 11]:
day = random.choice(range(1, 31))
elif month == 2:
day = random.choice(range(1, 29))
hour = random.choice(range(0, 24))
minute = random.choice(range(0, 60))
second = random.choice(range(0, 60))
try:
date = datetime.datetime(year, month, day, hour, minute, second)
except ValueError as e:
print(month, day, e)
delta_days = random.choices(range(0, 5), weights=probs, k=1)[0]
delta_hours = random.choice(range(0, 23))
delta_minutes = random.choice(range(0, 59))
delivery_date = date + datetime.timedelta(days=delta_days, hours=delta_hours, minutes=delta_minutes)
# 예약여부
reserve = random.choices(x, weights=prob, k=1)[0]
# 배송메모
memos = ['부재중', '관리실에 맡김', '상품 이상', '주소 오류', '환불 요청', '무인택배함에 보관', '시간 내에 배송 못함']
memo = random.choices(memos, weights=probs_memo, k=1)[0]
# 고객ip
ip = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff)))
# 고객 성별
sex = random.choices(['남성','여성'], weights=probs_sex, k=1)[0]
# 고객 나이
age = random.choice(range(17, 65))
# 물건 좌표
x_ = random.choice(range(35, 37)) + random.random()
y_ = random.choice(range(126, 129)) + random.random()
loc = "{}, {}".format(x_, y_)
cities = ["서울특별시", "경상남도", "경상북도", "전라남도", "전라북도", "충청남도", "충청북도", "세종특별자치시", "강원도", "경기도", "울산광역시", "대전광역시", "광주광역시", "인천광역시", "대구광역시", "부산광역시", "제주특별자치도"]
city = random.choices(cities, weights=probs_city, k=1)[0]
# 구매 사이트
site = random.choices(['11번가', '옥션', 'g마켓', '쿠팡', '위메프', '티몬', 'GS샵'], weights=probs_memo, k=1)[0]
# 판매자 평점
rate = random.choices(y, weights=probs, k=1)[0]
# 상품 분류
if sex == '남성':
item = random.choice(['청바지','점퍼','자켓','베스트','팬츠','셔츠', '수트','코트','남방','스웨터','티셔츠','가디건','니트'])
elif sex == '여성':
item = random.choice(['청바지', '자켓','팬츠','셔츠','원피스','스커트','코트','스웨터','티셔츠','가디건','니트','블라우스'])
# 상품 가격
price = random.choice(range(5000, 30000, 1000))
# 상품 개수
quantity = random.choice([1, 7])
# 결제 카드
card = random.choices(['우리', '신한', '국민', '하나', '롯데', '시티', '삼성'], weights=probs_memo, k=1)[0]
doc['접수번호'] = i
doc['주문시간'] = date
doc['수령시간'] = delivery_date
doc['예약여부'] = reserve
doc['배송메모'] = memo
doc['고객ip'] = ip
doc['고객성별'] = sex
doc['고객나이'] = age
doc['물건좌표'] = loc
doc['고객주소_시도'] = city
doc['구매사이트'] = site
doc['판매자평점'] = rate
doc['상품분류'] = item
doc['상품가격'] = price
doc['상품개수'] = quantity
doc['결제카드'] = card
es.index(index=name, doc_type=name, body=doc)
================================================
FILE: Week1_Kibana/code/insert.py
================================================
import os
import sys
import socket
import struct
import random
import datetime
from elasticsearch import Elasticsearch
from fake import fake_data
from es_conf import properties
def main():
'''
sys.argv[1] : 데이터 개수
sys.argv[2] : index postfix
'''
# 1. es driver/client 연결
host = os.environ['fastcampus']
es = Elasticsearch(host)
# 2. 수강생 데이터 읽어서 이름 생성
with open('./email.txt', 'r') as f:
mails = [s.strip() for s in f.readlines()]
try:
postfix = sys.argv[2]
mail_list = [x.split('@')[0] + '_{}'.format(postfix) for x in mails]
except IndexError:
mail_list = [x.split('@')[0] for x in mails]
for idx, name in enumerate(mail_list):
# 3. mapping 생성
if not es.indices.exists(name):
es.indices.create(name)
mapping = {name : properties}
es.indices.put_mapping(
index=name,
doc_type=name,
body=mapping
)
# 4. 데이터 삽입
n = int(sys.argv[1])
fake_data(es, name, n)
print('수강생 {}님의 데이터 {}개가 인덱스 {}에 정상적으로 입력되었습니다.'.format(
mails[idx].split('@')[0],
n,
mail_list[idx]
)
)
print('-'*70)
print('총 {} 명의 데이터가 입력되었습니다.'.format(len(mail_list)))
print('-'*70)
if __name__ == "__main__":
main()
================================================
FILE: Week2_Kibana/code/timelion/all
================================================
# index
.es(index=nginx-*)
# timefield
.es(index=nginx-*, timefield=@timestamp)
# metric
.es(index=nginx-*, timefield=@timestamp, metric=sum:nginx.access.body_sent.bytes)
# query
.es(index=nginx-*, timefield=@timestamp, metric=count, q=nginx.access.response_code:200)
# multi
.es(index=nginx-*, timefield=@timestamp, metric=avg:nginx.access.body_sent.bytes).color(#00b8ff), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).color(#fd8282)
# label
.es(index=nginx-*, timefield=@timestamp, metric=avg:nginx.access.body_sent.bytes).color(#00b8ff).label(nginx), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).color(#fd8282).label(shopping)
# divide
.es(index=nginx-*, timefield=@timestamp, q=-nginx.access.response_code:200).divide(.es(index=nginx-*, timefield=@timestamp, metric=count)).label(에러비율)
# offset
.es(index=nginx-*, timefield=@timestamp, metric=count).label(현재).color(#00b8ff), .es(index=nginx-*, timefield=@timestamp, metric=count, offset=-1w).label(1주전).color(#fd8282)
# range
.es(index=nginx-*, timefield=@timestamp, metric=count, q=nginx.access.response_code:200).label(에러).range(0, 1)
# scale interval
.es(index=nginx-*, timefield=@timestamp, metric=count).scale_interval(1m)
# if
.es(index=nginx-*, timefield=@timestamp, metric=count).if(gte, 50, .es(index=nginx-*, timefield=@timestamp, metric=count), null)
================================================
FILE: Week2_Kibana/code/timelion/exercise
================================================
# readable code
.es(
index=nginx-*,
timefield=@timestamp,
metric=count
).label(50이하),
.es(
index=nginx-*,
timefield=@timestamp,
metric=count
).if(
gte,
50,
.es(
index=nginx-*,
timefield=@timestamp,
metric=count),
null
).label(50이상)
# timelion code
.es(index=nginx-*, timefield=@timestamp, metric=count).label(50이하), .es(index=nginx-*, timefield=@timestamp, metric=count).if(gte, 50, .es(index=nginx-*, timefield=@timestamp, metric=count), null).label(50이상)
================================================
FILE: Week2_Kibana/code/timelion/tl10_scale_interval
================================================
# redable code
.es(
index=nginx-*,
timefield=@timestamp,
metric=count
).scale_interval(1m)
# timelion code
.es(index=nginx-*, timefield=@timestamp, metric=count).scale_interval(1m)
================================================
FILE: Week2_Kibana/code/timelion/tl11_if
================================================
# readable code
.es(
index=nginx-*,
timefield=@timestamp,
metric=count
).if(
gte,
50,
.es(
index=nginx-*,
timefield=@timestamp,
metric=count),
null
)
# timelion code
.es(index=nginx-*, timefield=@timestamp, metric=count).if(gte, 50, .es(index=nginx-*, timefield=@timestamp, metric=count), null)
================================================
FILE: Week2_Kibana/code/timelion/tl1_index
================================================
# timelion code
.es(index=nginx-*)
================================================
FILE: Week2_Kibana/code/timelion/tl2_timefield
================================================
# readable code
.es(
index=nginx-*,
timefield=@timestamp
)
# timelion code
.es(index=nginx-*, timefield=@timestamp)
================================================
FILE: Week2_Kibana/code/timelion/tl3_query
================================================
# readable code
.es(
index=nginx-*,
timefield=@timestamp,
metric=count,
q=nginx.access.response_code:200
)
# timelion code
.es(index=nginx-*, timefield=@timestamp, metric=count, q=nginx.access.response_code:200)
================================================
FILE: Week2_Kibana/code/timelion/tl4_metric
================================================
# readable code
.es(
index=nginx-*,
timefield=@timestamp,
metric=sum:nginx.access.body_sent.bytes
)
# timelion code
.es(index=nginx-*, timefield=@timestamp, metric=sum:nginx.access.body_sent.bytes)
================================================
FILE: Week2_Kibana/code/timelion/tl5_indices
================================================
# readable code
.es(
index=nginx-*,
timefield=@timestamp,
metric=avg:nginx.access.body_sent.bytes
).color(#00b8ff),
.es(
index=shopping,
timefield=주문시간,
metric=sum:상품가격
).color(#fd8282)
# timelion code
.es(index=nginx-*, timefield=@timestamp, metric=avg:nginx.access.body_sent.bytes).color(#00b8ff), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).color(#fd8282)
================================================
FILE: Week2_Kibana/code/timelion/tl6_label
================================================
# readable code
.es(
index=nginx-*,
timefield=@timestamp,
metric=avg:nginx.access.body_sent.bytes
).color(#00b8ff).label(nginx),
.es(
index=shopping,
timefield=주문시간,
metric=sum:상품가격
).color(#fd8282).label(shopping)
# timelion code
.es(index=nginx-*, timefield=@timestamp, metric=avg:nginx.access.body_sent.bytes).color(#00b8ff).label(nginx), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).color(#fd8282).label(shopping)
================================================
FILE: Week2_Kibana/code/timelion/tl7_divide
================================================
# readable code
.es(
index=nginx-*,
timefield=@timestamp,
q=-nginx.access.response_code:200
).divide(
.es(
index=nginx-*,
timefield=@timestamp,
metric=count
)
).label(성비)
# timelion code
.es(index=nginx-*, timefield=@timestamp, q=-nginx.access.response_code:200).divide(.es(index=nginx-*, timefield=@timestamp, metric=count)).label(에러비율)
================================================
FILE: Week2_Kibana/code/timelion/tl8_offset
================================================
# readable code
.es(
index=nginx-*,
timefield=@timestamp,
metric=count
).label(현재).color(#00b8ff),
.es(
index=nginx-*,
timefield=@timestamp,
metric=count,
offset=-1w
).label(1주전).color(#fd8282)
# timelion code
.es(index=nginx-*, timefield=@timestamp, metric=count).label(현재).color(#00b8ff), .es(index=nginx-*, timefield=@timestamp, metric=count, offset=-1w).label(1주전).color(#fd8282)
================================================
FILE: Week2_Kibana/code/timelion/tl9_range
================================================
# redable code
.es(
index=nginx-*,
timefield=@timestamp,
metric=count,
q=nginx.access.response_code:200
).label(에러).range(0, 1)
# timelion code
.es(index=nginx-*, timefield=@timestamp, metric=count, q=nginx.access.response_code:200).label(에러).range(0, 1)
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/all
================================================
# keyword
우리
# Field Match
결제카드:우리
# Exact Field Match
배송메모:"상품 이상"
# Term
상품분류: ("니트" "코트")
# Fuzzy
고객주소_시도:전라도~1
# Proximity
배송메모: "내에 시간 배송 못함"~2
# Numeric
상품가격:>5000
# Range
고객나이: [10 TO 30}
# Wildcard (?)
고객주소_시도:전라?도
# Wildcard (*)
상품\*:셔츠
# OR
고객성별:여성 OR 상품분류:셔츠
# AND
고객성별:여성 AND 상품분류:셔츠
# NOT
NOT 구매사이트:옥션
# +
+예약여부:예약
# -
-구매사이트:11번가
# +/-
여성 셔츠 +예약 -11번가
# exercise
+_exists_: nginx.access.geoip.region_name +nginx.access.geoip.city_name: Se* -nginx.access.response_code: ("200", "405") nginx.access.method: POST
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/and
================================================
고객성별:여성 AND 상품분류:셔츠
고객성별:여성 && 상품분류:셔츠
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/compound
================================================
여성 셔츠 +예약 -11번가
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/exact_field_match
================================================
배송메모:"상품 이상"
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/exercise
================================================
+_exists_: nginx.access.geoip.region_name +nginx.access.geoip.city_name: Se* -nginx.access.response_code: ("200", "405") nginx.access.method: POST
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/field_match
================================================
결제카드:우리
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/fuzzy
================================================
고객주소_시도:전라도~1
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/keyword
================================================
우리
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/negative
================================================
-구매사이트:11번가
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/not
================================================
NOT 구매사이트:옥션
!구매사이트:옥션
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/numeric
================================================
상품가격:>5000
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/or
================================================
고객성별:여성 OR 상품분류:셔츠
고객성별:여성 || 상품분류:셔츠
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/positive
================================================
+예약여부:예약
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/proximity
================================================
배송메모: "내에 시간 배송 못함"~2
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/range
================================================
고객나이: [10 TO 30}
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/term
================================================
상품분류: ("니트" "코트")
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/wildcard_1
================================================
고객주소_시도:전라?도
================================================
FILE: Week3_Kibana/code/lucene_query_syntax/wildcard_2
================================================
상품\*:셔츠
================================================
FILE: Week3_Kibana/code/scripted_field/arithmetic_operation_1
================================================
(doc['수령시간'].value.getMillis()-doc['주문시간'].value.getMillis())/1000/60/60
================================================
FILE: Week3_Kibana/code/scripted_field/arithmetic_operation_2
================================================
doc['상품가격'].value * doc['상품개수'].value
================================================
FILE: Week3_Kibana/code/scripted_field/concat_1
================================================
doc['고객성별'].value + '-' + doc['결제카드'].value
================================================
FILE: Week3_Kibana/code/scripted_field/date_1
================================================
doc['주문시간'].date.hourOfDay
================================================
FILE: Week3_Kibana/code/scripted_field/date_2
================================================
doc['주문시간'].date.dayOfWeek
================================================
FILE: Week3_Kibana/code/scripted_field/date_3
================================================
# option 1
LocalDateTime.ofInstant(Instant.ofEpochMilli(doc['주문시간'].value.millis), ZoneId.of('Asia/Seoul')).getHour()
# option 2
ZonedDateTime.ofInstant(Instant.ofEpochMilli(doc['주문시간'].value.millis), ZoneId.of('Asia/Seoul')).getHour()
# option 3
Instant.ofEpochMilli(doc['주문시간'].date.millis).atZone(ZoneId.of("Asia/Seoul")).hour
================================================
FILE: Week3_Kibana/code/scripted_field/date_4
================================================
# option 1
LocalDateTime.ofInstant(Instant.ofEpochMilli(doc['주문시간'].value.millis), ZoneId.of('Asia/Seoul')).getDayOfWeek()
# option 2
ZonedDateTime.ofInstant(Instant.ofEpochMilli(doc['주문시간'].value.millis), ZoneId.of('Asia/Seoul')).getDayOfWeek()
# option 3
Instant.ofEpochMilli(doc['주문시간'].date.millis).atZone(ZoneId.of("Asia/Seoul")).dayOfWeek
================================================
FILE: Week3_Kibana/code/scripted_field/date_5
================================================
Instant.ofEpochMilli(doc['주문시간'].date.millis).atZone(ZoneId.of("Asia/Seoul")).dayOfWeek.getValue()
================================================
FILE: Week3_Kibana/code/scripted_field/if_1
================================================
if (doc['고객나이'].value < 20) {
return "10대"
}
else if (doc['고객나이'].value < 40) {
return "20~30대"
}
else {
return "40대 이상"
}
================================================
FILE: Week3_Kibana/code/scripted_field/if_2
================================================
if (doc['상품개수'].value < 3) {
return "저소비"
}
else if (doc['고객나이'].value < 6) {
return "평균"
}
else {
return "과소비"
}
================================================
FILE: Week4_Elasticsearch/code/data-type/complex/array/indexing
================================================
POST array/array
{
"결제카드" : ["씨티", "국민"],
"고객성별" : "여성",
"상품" : [
{
"구매사이트" : "쿠팡",
"분류" : "셔츠"
},
{
"구매사이트" : "11번가",
"분류" : "팬츠"
}
]
}
================================================
FILE: Week4_Elasticsearch/code/data-type/complex/array/mapping
================================================
PUT array
{
"mappings": {
"array": {
"properties": {
"결제카드": {
"type": "keyword"
},
"고객성별": {
"type": "keyword"
},
"상품": {
"properties": {
"구매사이트": { "type": "keyword" },
"분류": { "type": "keyword" }
}
}
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/data-type/complex/array/search
================================================
GET /array/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"상품.구매사이트": "11번가"
}
},
{
"match": {
"상품.분류": "셔츠"
}
}
]
}
}
}
================================================
FILE: Week4_Elasticsearch/code/data-type/complex/nested/indexing
================================================
POST nested/nested
{
"결제카드" : ["씨티", "국민"],
"고객성별" : "여성",
"상품" : [
{
"구매사이트" : "쿠팡",
"분류" : "셔츠"
},
{
"구매사이트" : "11번가",
"분류" : "팬츠"
}
]
}
================================================
FILE: Week4_Elasticsearch/code/data-type/complex/nested/mapping
================================================
PUT nested
{
"mappings": {
"nested": {
"properties": {
"결제카드": {
"type": "keyword"
},
"고객성별": {
"type": "keyword"
},
"상품": {
"type": "nested",
"properties": {
"구매사이트": { "type": "keyword" },
"분류": { "type": "keyword" }
}
}
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/data-type/complex/nested/search_1
================================================
GET /nested/_search
{
"query": {
"nested": {
"path": "상품",
"query": {
"bool": {
"must": [
{
"match" : {
"상품.구매사이트" : "11번가"
}
},
{
"match" : {
"상품.분류" : "셔츠"
}
}
]
}
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/data-type/complex/nested/search_2
================================================
GET /nested/_search
{
"query": {
"nested": {
"path": "상품",
"query": {
"bool": {
"must": [
{
"match" : {
"상품.구매사이트" : "11번가"
}
},
{
"match" : {
"상품.분류" : "팬츠"
}
}
]
}
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/data-type/complex/object/indexing
================================================
POST shopping/shopping
{
"고객주소_시도": "서울특별시",
"상품": {
"가격": 27000,
"분류": "팬츠",
"개수": 7
}
}
================================================
FILE: Week4_Elasticsearch/code/data-type/complex/object/mapping
================================================
PUT object
{
"mappings": {
"object": {
"properties": {
"고객주소_시도": {
"type": "keyword"
},
"상품": {
"properties": {
"가격": { "type": "integer" },
"분류": { "type": "keyword" },
"개수": { "type": "integer" },
}
}
}
}
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/data-type/core/float
================================================
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"test-double": {
"type": "double"
},
"test-half-float": {
"type": "half_float"
}
}
}
}
}
POST my_index/my_type
{
"test-double" : 3.1,
"test-half-float" : 3.1
}
POST my_index/my_type
{
"test-double" : 3.111111,
"test-half-float" : 3.111111
}
POST my_index/my_type
{
"test-double" : 3.11111122222,
"test-half-float" : 3.11111122222
}
GET /my_index/_search
{
"query" : {
"range": {
"test-double": {
"gte": 3.111111,
"lte" : 3.1111112
}
}
}
}
GET /my_index/_search
{
"query" : {
"range": {
"test-half-float": {
"gte": 3.111111,
"lte" : 3.1111112
}
}
}
}
GET /my_index/_search
{
"query": {
"match_all": {}
}
}
GET /my_index/_search
{
"query": {
"match_all": {}
},
"docvalue_fields": [
"test-double", "test-half-float"
]
}
================================================
FILE: Week4_Elasticsearch/code/data-type/core/numeric
================================================
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"test": {
"type": "byte"
}
}
}
}
}
POST my_index/my_type
{
"test" : 129
}
================================================
FILE: Week4_Elasticsearch/code/data-type/core/string
================================================
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"test-keyword": {
"type": "keyword"
},
"test-text": {
"type": "text"
}
}
}
}
}
POST my_index/my_type
{
"test-keyword" : "패스트캠퍼스 엘라스틱서치",
"test-text" : "패스트캠퍼스 엘라스틱서치"
}
GET /my_index/_search
{
"query": {
"term": {
"test-keyword": "패스트캠퍼스"
}
}
}
GET /my_index/_search
{
"query": {
"term": {
"test-text": "패스트캠퍼스"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/add-document-post
================================================
POST week4_higee/week4_higee
{
"price" : 5000,
"age" : 19
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/add-document-put
================================================
PUT week4_higee/week4_higee/1
{
"price" : 10000,
"age" : 17
}
PUT week4_higee/week4_higee/2
{
"price" : 2000,
"age" : 20
}
PUT week4_higee/week4_higee/3
{
"price" : 1000,
"age" : 25
}
PUT week4_higee/week4_higee/4
{
"price" : 7000,
"age" : 33
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/check-document-id
================================================
GET /week4_higee/week4_higee/1
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/delete-document-id
================================================
DELETE week4_higee/week4_higee/1
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/delete-document-query
================================================
POST week4_higee/_delet_by_query
{
"query" : {
"match" : {
"age" : 20
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/exercise
================================================
# exercise2-without-mapping index 생성
PUT exercise2-without-mapping
# 다음과 같은 Document 생성 (type 이름 : exercise2)
POST exercise2-without-mapping/exercise2
{
"name" : "elastic stack",
"major_version" : 6,
"version" : "6.2.4"
}
# exercise2-without-mapping index의 mapping 확인
GET exercise2-without-mapping/_mapping
# index 이름이 exercise2-with-mapping, type 이름이 exercise2인 index를 만들면서 아래와 같은 mapping 생성
PUT exercise2-with-mapping
{
"mappings": {
"exercise2": {
"properties": {
"name": {
"type": "keyword"
},
"major_version": {
"type": "byte"
},
"version": {
"type": "keyword"
}
}
}
}
}
# exercise2-without-mapping (source)를 exercise2-with-mapping (destination)로 재색인
POST _reindex
{
"source": {
"index": "exercise2-without-mapping"
},
"dest": {
"index": "exercise2-with-mapping"
}
}
# exercise2-with-mapping의 mapping 확인
GET exercise2-with-mapping
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/reindex-all-documents
================================================
POST _reindex
{
"source": {
"index": "week4_higee"
},
"dest": {
"index": "week4_higee_reindex"
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/reindex-some-documents
================================================
POST _reindex
{
"source": {
"index": "week4_higee",
"type" : "week4_higee",
"query": {
"term": {
"age": 19
}
}
},
"dest": {
"index": "week4_higee_reindex2"
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/update-document-id-all-fields
================================================
PUT week4_higee/week4_higee/3
{
"warning" : "해당 Document 전체 변경"
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/update-document-id-some-fields
================================================
POST week4_higee/week4_higee/3/_update
{
"doc": {
"age" : 50
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/update-document-query
================================================
POST week4_higee/week4_higee/_update_by_query
{
"script": {
"source": "ctx._source['age'] = 50"
},
"query": {
"term": {
"age": 33
}
}
}
POST week4_higee/week4_higee/_update_by_query
{
"script": {
"source": "ctx._source.age = 70"
},
"query": {
"term": {
"age": 50
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/document/upsert-document
================================================
POST week4_higee/week4_higee/4/_update
{
"doc" : {
"price" : 50000
},
"doc_as_upsert" : true
}
POST week4_higee/week4_higee/777/_update
{
"doc" : {
"price" : 50000
},
"doc_as_upsert" : true
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/indices/add-mapping
================================================
PUT week4_higee
PUT week4_higee/_mapping/week4_higee
{
"properties": {
"age" : {
"type" : "integer"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/indices/check-mapping
================================================
GET week4_higee/_mapping
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/indices/check-mapping-template
================================================
PUT higee-log-2018.01.01
GET higee-log-2018.01.01/_mapping
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/indices/create-index
================================================
PUT week4_higee
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/indices/create-mapping-template
================================================
PUT _template/template_higee
{
"template" : "higee-log-*",
"mappings" : {
"my_type" : {
"properties" : {
"price" : {
"type" : "integer"
},
"time" : {
"type" : "date"
}
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/indices/create-mapping-with-index
================================================
PUT week4_higee
PUT week4_higee/_mapping/week4_higee
{
"properties" : {
"price" : {
"type" : "integer"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/indices/create-mapping-without-index
================================================
DELETE week4_higee
PUT week4_higee_mapping
{
"mappings" : {
"week4_higee_mapping" : {
"properties" : {
"price" : {
"type" : "integer"
},
"time" : {
"type" : "date"
}
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/indices/delete-index
================================================
DELETE week4_higee
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/indices/exercise
================================================
# shopping index mapping 확인
GET shopping/_mapping
# shopping index와 동일한 index 생성
PUT shopping
{
"mappings": {
"shopping": {
"properties": {
"접수번호": {
"type": "integer"
},
"주문시간": {
"type": "date"
},
"수령시간": {
"type": "date"
},
"예약여부": {
"type": "keyword"
},
"배송메모": {
"type": "text"
},
"고객ip": {
"type": "ip"
},
"고객성별": {
"type": "keyword"
},
"고객나이": {
"type": "integer"
},
"물건좌표": {
"type": "geo_point"
},
"고객주소_시도": {
"type": "keyword"
},
"구매사이트": {
"type": "keyword"
},
"판매자평점": {
"type": "integer"
},
"상품분류": {
"type": "keyword"
},
"상품가격": {
"type": "integer"
},
"상품개수": {
"type": "integer"
},
"결제카드": {
"type": "keyword"
}
}
}
}
}
# 환불여부 Field 추가 (Keyword)
PUT shopping/_mapping/shopping
{
"properties": {
"환불여부" : {
"type" : "keyword"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/from-size
================================================
GET /shopping/_search
{
"from" : 0,
"size" : 1,
"query" : {
"match_all" : {}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-b
================================================
GET /shopping/_search
{
"query": {
"bool": {
"must": [
{ "term": { "고객주소_시도": "서울특별시"}},
{ "prefix": { "구매사이트" : "11"}}
]
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-b-or-c
================================================
GET /shopping/_search
{
"query": {
"bool": {
"must": [
{ "term": { "고객주소_시도": "서울특별시"}}
],
"should": [
{ "prefix": { "구매사이트" : "11"}},
{ "range": { "고객나이": { "lt": 30}}}
],
"minimum_should_match": 1
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-b-or-c-or-d
================================================
GET /shopping/_search
{
"query": {
"bool": {
"must": [
{ "term": { "고객주소_시도": "서울특별시" }}
],
"should": [
{ "prefix": { "구매사이트" : "11"}},
{ "range": { "고객나이": { "lt": 30}}},
{ "script": { "script" : { "source" : "Instant.ofEpochMilli(doc['주문시간'].value.millis).atZone(ZoneId.of('Asia/Seoul')).hour > 15"}}}
],
"minimum_should_match": 2
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-not-b
================================================
GET /shopping/_search
{
"query": {
"bool": {
"must": [
{ "term": { "고객주소_시도": "서울특별시" }}
],
"must_not": [
{ "prefix": { "구매사이트" : "11"}}
]
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-or-b
================================================
GET /shopping/_search
{
"query": {
"bool": {
"should": [
{ "term": { "고객주소_시도": "서울특별시"}},
{ "prefix": { "구매사이트" : "11"}}
],
"minimum_should_match": 1
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-example
================================================
GET /shopping/_search
{
"query": {
"bool": {
"must": [
{
"term" : {
"고객주소_시도" : "서울특별시"
}
}
],
“must_not”: [
{
"term" : {
“상품분류" : "셔츠"
}
}
],
"should": [
{
"term": {
"결제카드": "시티"
}
}
],
"minimum_should_match": 1
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Full-text-queries/match
================================================
GET /shopping/_search
{
"query": {
"match": {
"배송메모": "배송 못함"
}
}
}
GET /shopping/_search
{
"query": {
"match": {
"배송메모": "시간 못함"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Full-text-queries/query-string
================================================
GET /shopping/_search
{
"query" : {
"query_string" : {
"query": "고객나이 : [10 TO 25]"
}
}
}
GET /shopping/_search
{
"query": {
"query_string": {
"query": "고객나이 : [10 TO 25] AND 쿠팡",
}
}
}
GET /shopping/_search
{
"query": {
"query_string": {
"query": "+고객나이 : [10 TO 25] +구매사이트: 쿠팡"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Specialized-queries/script-query
================================================
GET /shopping/_search
{
"query" : {
"script" : {
"script" : {
"source" :
"""Instant.ofEpochMilli(doc['주문시간'].value.millis)
.atZone(ZoneId.of('Asia/Seoul')).hour > 10""",
"lang" : "painless"
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/indexing
================================================
POST ml/doc
{
"keyword" : "Machine Learning",
"text" : "Machine Learning"
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/keyword-match-search
================================================
GET ml/_search
{
"query": {
"match": {
"keyword": "machine"
}
}
}
GET ml/_search
{
"query": {
"match": {
"keyword": "Machine"
}
}
}
GET ml/_search
{
"query": {
"match": {
"keyword": "machine learning"
}
}
}
GET ml/_search
{
"query": {
"match": {
"keyword": "Machine Learning"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/keyword-term-search
================================================
GET ml/_search
{
"query": {
"term": {
"keyword": "machine"
}
}
}
GET ml/_search
{
"query": {
"term": {
"keyword": "Machine"
}
}
}
GET ml/_search
{
"query": {
"term": {
"keyword": "machine learning"
}
}
}
GET ml/_search
{
"query": {
"term": {
"keyword": "Machine Learning"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/mapping
================================================
PUT ml
{
"mappings": {
"doc": {
"properties": {
"keyword" : {
"type": "keyword"
},
"text" : {
"type": "text"
}
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/text-match-search
================================================
GET ml/_search
{
"query": {
"match": {
"text": "machine"
}
}
}
GET ml/_search
{
"query": {
"match": {
"text": "Machine"
}
}
}
GET ml/_search
{
"query": {
"match": {
"text": "machine learning"
}
}
}
GET ml/_search
{
"query": {
"match": {
"text": "Machine Learning"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/text-term-search
================================================
GET ml/_search
{
"query": {
"term": {
"text": "machine"
}
}
}
GET ml/_search
{
"query": {
"term": {
"text": "Machine"
}
}
}
GET ml/_search
{
"query": {
"term": {
"text": "machine learning"
}
}
}
GET ml/_search
{
"query": {
"term": {
"text": "Machine Learning"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/exists
================================================
GET /shopping/_search
{
"query": {
"exists" : {
"field" : "상품분류"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/fuzzy
================================================
GET /shopping/_search
{
"query": {
"fuzzy" : {
"고객주소_시도" : "경상북남"
}
}
}
# parameters
GET /shopping/_search
{
"query": {
"fuzzy" : {
"고객주소_시도" : {
"value" : "경상북남",
"fuzziness": 2
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/prefix
================================================
GET /shopping/_search
{
"query": {
"prefix" : {
"고객주소_시도" : "경상"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/range
================================================
GET /shopping/_search
{
"query": {
"range": {
"주문시간": {
"gte": "2017-02-15"
}
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/term
================================================
GET /shopping/_search
{
"query" : {
"term" : {
"상품분류" : "셔츠"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/terms
================================================
GET /shopping/_search
{
"query" : {
"terms" : {
"상품분류" : ["셔츠", "스웨터"]
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/wildcard
================================================
# wildcard : *
GET /shopping/_search
{
"query": {
"wildcard" : {
"고객주소_시도" : "경*도"
}
}
}
# wildcard : ?
GET shopping/_search
{
"query": {
"wildcard" : {
"고객주소_시도" : "경?도"
}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/match_all
================================================
# type 명시
GET /shopping/shopping/_search
{
"query" : {
"match_all" : {}
}
}
# type 생략
GET /shopping/_search
{
"query" : {
"match_all" : {}
}
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/sort
================================================
GET /shopping/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"판매자평점": {
"order": "desc"
}
}
]
}
================================================
FILE: Week4_Elasticsearch/code/elasticsearch_API/search/source
================================================
GET /shopping/_search
{
"_source": "구매사이트",
"query" : {
"match_all" : {}
}
}
GET /shopping/_search
{
"_source": {
"includes" : ["고객*", "구매사이트"],
"excludes" : "상품*"
},
"query" : {
"match_all" : {}
}
}
================================================
FILE: Week4_Elasticsearch/object/dashboard/nginx-dashboard.json
================================================
[
{
"_id": "bd2418e0-6f26-11e8-a0fb-51f0eb991705",
"_type": "dashboard",
"_source": {
"title": "nginx",
"hits": 0,
"description": "",
"panelsJSON": "[{\"panelIndex\":\"1\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":3,\"i\":\"1\"},\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 350\":\"rgb(247,252,245)\",\"1,050 - 1,400\":\"rgb(35,139,69)\",\"350 - 700\":\"rgb(199,233,192)\",\"700 - 1,050\":\"rgb(116,196,118)\"},\"legendOpen\":false}},\"id\":\"fe7b9a30-6f20-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"2\",\"gridData\":{\"x\":6,\"y\":3,\"w\":4,\"h\":3,\"i\":\"2\"},\"id\":\"25a7f140-6f20-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"3\",\"gridData\":{\"x\":10,\"y\":3,\"w\":2,\"h\":3,\"i\":\"3\"},\"id\":\"cfbbc570-6f26-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"4\",\"gridData\":{\"x\":0,\"y\":13,\"w\":12,\"h\":4,\"i\":\"4\"},\"embeddableConfig\":{\"mapCenter\":[15.284185114076445,12.128906250000002],\"mapZoom\":2},\"id\":\"7a9123a0-6f27-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"5\",\"gridData\":{\"x\":0,\"y\":9,\"w\":12,\"h\":4,\"i\":\"5\"},\"id\":\"08e28cc0-6f28-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"6\",\"gridData\":{\"x\":0,\"y\":0,\"w\":12,\"h\":3,\"i\":\"6\"},\"id\":\"57d11570-6f2a-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"7\",\"gridData\":{\"x\":0,\"y\":17,\"w\":6,\"h\":3,\"i\":\"7\"},\"id\":\"98a8d0b0-6f2a-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"8\",\"gridData\":{\"x\":6,\"y\":17,\"w\":6,\"h\":3,\"i\":\"8\"},\"id\":\"4b2430e0-6f2b-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"9\",\"gridData\":{\"x\":0,\"y\":20,\"w\":12,\"h\":3,\"i\":\"9\"},\"embeddableConfig\":{\"vis\":{\"colors\":{\"200\":\"#6ED0E0\",\"NOT 200\":\"#F29191\",\"nginx.access.response_code:200\":\"#F29191\"},\"legendOpen\":true}},\"id\":\"c1d84360-6f2c-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"10\",\"gridData\":{\"x\":0,\"y\":23,\"w\":12,\"h\":3,\"i\":\"10\"},\"id\":\"7b3cdde0-6f30-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"12\",\"gridData\":{\"x\":0,\"y\":6,\"w\":12,\"h\":3,\"i\":\"12\"},\"id\":\"de77bd70-6f31-11e8-a0fb-51f0eb991705\",\"sort\":[\"nginx.access.body_sent.bytes\",\"desc\"],\"type\":\"search\",\"version\":\"6.2.4\"},{\"panelIndex\":\"13\",\"gridData\":{\"x\":0,\"y\":26,\"w\":12,\"h\":3,\"i\":\"13\"},\"id\":\"b23c8a00-6f32-11e8-a0fb-51f0eb991705\",\"type\":\"visualization\",\"version\":\"6.2.4\"}]",
"optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}",
"version": 1,
"timeRestore": false,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
}
}
}
]
================================================
FILE: Week4_Elasticsearch/object/dashboard/shopping-dashboard.json
================================================
[
{
"_id": "71dedc90-82c1-11e8-8161-3b4280559eb3",
"_type": "dashboard",
"_source": {
"title": "shopping",
"hits": 0,
"description": "",
"panelsJSON": "[{\"panelIndex\":\"20\",\"gridData\":{\"x\":0,\"y\":14,\"w\":6,\"h\":4,\"i\":\"20\"},\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"id\":\"AWJdii5xzMQVnr-9MxxQ\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"21\",\"gridData\":{\"x\":6,\"y\":3,\"w\":6,\"h\":4,\"i\":\"21\"},\"embeddableConfig\":{\"mapCenter\":[36.54494944148322,128.199462890625],\"mapZoom\":6},\"id\":\"AWJgEGqCzMQVnr-9MxxW\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"22\",\"gridData\":{\"x\":0,\"y\":0,\"w\":9,\"h\":3,\"i\":\"22\"},\"id\":\"AWJglBU6zMQVnr-9Mxxa\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"24\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":4,\"i\":\"24\"},\"id\":\"AWJgsNh9zMQVnr-9Mxxe\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"25\",\"gridData\":{\"x\":9,\"y\":0,\"w\":3,\"h\":3,\"i\":\"25\"},\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"id\":\"AWJguWqpzMQVnr-9Mxxg\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"26\",\"gridData\":{\"x\":0,\"y\":7,\"w\":6,\"h\":4,\"i\":\"26\"},\"id\":\"AWJgycpEzMQVnr-9Mxxi\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"27\",\"gridData\":{\"x\":0,\"y\":11,\"w\":6,\"h\":3,\"i\":\"27\"},\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"id\":\"AWJg0q4CzMQVnr-9Mxxk\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"28\",\"gridData\":{\"x\":6,\"y\":11,\"w\":6,\"h\":3,\"i\":\"28\"},\"id\":\"AWJg1XpWzMQVnr-9Mxxl\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"29\",\"gridData\":{\"x\":0,\"y\":18,\"w\":12,\"h\":4,\"i\":\"29\"},\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"id\":\"AWJg1wbTzMQVnr-9Mxxm\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"30\",\"gridData\":{\"x\":6,\"y\":14,\"w\":6,\"h\":4,\"i\":\"30\"},\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 1\":\"rgb(165,0,38)\",\"1 - 2\":\"rgb(249,142,82)\",\"2 - 3\":\"rgb(255,255,190)\",\"3 - 4\":\"rgb(135,203,103)\",\"4 - 5\":\"rgb(0,104,55)\"}}},\"id\":\"AWJg3QUCzMQVnr-9Mxxo\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"31\",\"gridData\":{\"x\":0,\"y\":22,\"w\":12,\"h\":3,\"i\":\"31\"},\"id\":\"AWGI8fjSPloSIAlpOE6c\",\"type\":\"visualization\",\"version\":\"6.2.4\"},{\"panelIndex\":\"32\",\"gridData\":{\"x\":6,\"y\":7,\"w\":6,\"h\":4,\"i\":\"32\"},\"version\":\"6.2.4\",\"type\":\"visualization\",\"id\":\"147d34a0-82c8-11e8-8161-3b4280559eb3\",\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 55\":\"rgb(255,255,204)\",\"55 - 110\":\"rgb(254,217,118)\",\"110 - 165\":\"rgb(253,141,60)\",\"165 - 220\":\"rgb(227,27,28)\"},\"legendOpen\":false}}}]",
"optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}",
"version": 1,
"timeRestore": false,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"match_all\":{}}}}"
}
}
}
]
================================================
FILE: Week4_Elasticsearch/object/search/nginx-search.json
================================================
[
{
"_id": "de77bd70-6f31-11e8-a0fb-51f0eb991705",
"_type": "search",
"_source": {
"title": "[nginx] search",
"description": "",
"hits": 0,
"columns": [
"nginx.access.url",
"nginx.access.response_code",
"nginx.access.body_sent.bytes"
],
"sort": [
"@timestamp",
"desc"
],
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
}
}
}
]
================================================
FILE: Week4_Elasticsearch/object/visualization/nginx-visualization.json
================================================
[
{
"_id": "57d11570-6f2a-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] markdown",
"visState": "{\"title\":\"[nginx] markdown\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"### Nginx Access.Log Dashboard\\n---\\n```\\n66.249.82.131 - - [13/Jun/2018:17:01:02 +0000] \\\"GET /ui/favicons/favicon-16x16.png HTTP/1.1\\\" 304 0 \\\"http://kibana.higee.co/app/kibana\\\" \\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\" \\\"118.221.38.242\\\"\\n118.221.38.242 - - [13/Jun/2018:17:01:14 +0000] \\\"POST /api/console/proxy?path=_aliases&method=GET HTTP/1.1\\\" 200 107 \\\"http://kibana.higee.co/app/kibana\\\" \\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\" \\\"-\\\"\\n118.221.38.242 - - [13/Jun/2018:17:01:14 +0000] \\\"POST /api/console/proxy?path=_mapping&method=GET HTTP/1.1\\\" 200 974 \\\"http://kibana.higee.co/app/kibana\\\" \\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\" \\\"-\\\"\\n66.249.82.131 - - [13/Jun/2018:17:01:16 +0000] \\\"GET /ui/favicons/favicon-32x32.png HTTP/1.1\\\" 304 0 \\\"http://kibana.higee.co/app/kibana\\\" \\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\" \\\"118.221.38.242\\\"\\n66.249.82.129 - - [13/Jun/2018:17:01:17 +0000] \\\"GET /ui/favicons/favicon-16x16.png HTTP/1.1\\\" 304 0 \\\"http://kibana.higee.co/app/kibana\\\" \\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\" \\\"118.221.38.242\\\"\\n```\"},\"aggs\":[]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{}"
}
}
},
{
"_id": "7a9123a0-6f27-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] coordinate maps",
"visState": "{\"title\":\"[nginx] coordinate maps\",\"type\":\"tile_map\",\"params\":{\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true,\"heatClusterSize\":1,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"baseLayersAreLoaded\":{},\"tmsLayers\":[{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}],\"selectedTmsLayer\":{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.geoip.location\",\"autoPrecision\":true,\"isFilteredByCollar\":true,\"useGeocentroid\":true,\"precision\":2}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "7b3cdde0-6f30-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] Timelion",
"visState": "{\"title\":\"[nginx] Timelion\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(index=nginx*, timefield=@timestamp, metric=count).label(전체).lines(), .es(index=nginx*, timefield=@timestamp, q= -nginx.access.response_code:200, metric=count).divide(.es(index=nginx*, timefield=@timestamp, metric=count)).if(gte, 0.5, .es(index=nginx*, timefield=@timestamp, metric=count, q=-nginx.access.response_code:200), null).points().color(#fd8282).label('에러 50% 이상').legend(position=ne)\",\"interval\":\"auto\"},\"aggs\":[]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{}"
}
}
},
{
"_id": "08e28cc0-6f28-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] region maps",
"visState": "{\"title\":\"[nginx] region maps\",\"type\":\"region_map\",\"params\":{\"legendPosition\":\"bottomright\",\"addTooltip\":true,\"colorSchema\":\"Yellow to Red\",\"selectedLayer\":{\"attribution\":\"<p><a href=\\\"http://www.naturalearthdata.com/about/terms-of-use\\\">Made with NaturalEarth</a> | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"name\":\"World Countries\",\"weight\":1,\"format\":{\"type\":\"geojson\"},\"url\":\"https://vector.maps.elastic.co/blob/5659313586569216?elastic_tile_service_tos=agree&my_app_version=6.2.4\",\"fields\":[{\"name\":\"iso2\",\"description\":\"Two letter abbreviation\"},{\"name\":\"name\",\"description\":\"Country name\"},{\"name\":\"iso3\",\"description\":\"Three letter abbreviation\"}],\"created_at\":\"2017-04-26T17:12:15.978370\",\"tags\":[],\"id\":5659313586569216,\"layerId\":\"elastic_maps_service.World Countries\"},\"selectedJoinField\":{\"name\":\"iso2\",\"description\":\"Two letter abbreviation\"},\"isDisplayWarning\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"baseLayersAreLoaded\":{},\"tmsLayers\":[{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}],\"selectedTmsLayer\":{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}},\"mapZoom\":2,\"mapCenter\":[0,0],\"outlineWeight\":2,\"showAllShapes\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.geoip.country_code2\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{\"mapZoom\":2,\"mapCenter\":[11.695272733029402,24.433593750000004]}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "cfbbc570-6f26-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] metric",
"visState": "{\"title\":\"[nginx] metric\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":31}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"req\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "25a7f140-6f20-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] tag-cloud",
"visState": "{\"title\":\"[nginx] tag-cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":72},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.user_agent.os_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "c1d84360-6f2c-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] area chart",
"visState": "{\"title\":\"[nginx] area chart\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"req 개수\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"area\",\"mode\":\"stacked\",\"data\":{\"label\":\"req 개수\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"req 개수\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"h\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"날짜\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"filters\",\"schema\":\"group\",\"params\":{\"filters\":[{\"input\":{\"query\":\"nginx.access.response_code:200\"},\"label\":\"200\"},{\"input\":{\"query\":\"NOT nginx.access.response_code:200\"},\"label\":\"NOT 200\"}]}}]}",
"uiStateJSON": "{\"vis\":{\"colors\":{\"200\":\"#6ED0E0\",\"nginx.access.response_code:200\":\"#F29191\"},\"legendOpen\":false}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "1fe62120-6f37-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] Goal",
"visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customBucket\":{\"enabled\":true,\"id\":\"1-bucket\",\"params\":{\"customInterval\":\"2h\",\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"d\",\"min_doc_count\":1},\"schema\":{\"aggFilter\":[],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"max\":null,\"min\":0,\"name\":\"bucketAgg\",\"params\":[],\"title\":\"Bucket Agg\"},\"type\":\"date_histogram\"},\"customMetric\":{\"enabled\":true,\"id\":\"1-metric\",\"params\":{},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!percentile_ranks\",\"!median\",\"!std_dev\",\"!sum_bucket\",\"!avg_bucket\",\"!min_bucket\",\"!max_bucket\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"max\":null,\"min\":0,\"name\":\"metricAgg\",\"params\":[],\"title\":\"Metric Agg\"},\"type\":\"count\"}},\"schema\":\"metric\",\"type\":\"max_bucket\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"filters\":[{\"input\":{\"query\":\"nginx.access.geoip.country_name: \\\"United States\\\"\"},\"label\":\"\"}]},\"schema\":\"group\",\"type\":\"filters\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"gauge\":{\"autoExtend\":false,\"backStyle\":\"Full\",\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":200}],\"extendRange\":true,\"gaugeColorMode\":\"None\",\"gaugeStyle\":\"Full\",\"gaugeType\":\"Arc\",\"invertColors\":false,\"labels\":{\"color\":\"black\",\"show\":true},\"orientation\":\"vertical\",\"percentageMode\":true,\"scale\":{\"color\":\"#333\",\"labels\":false,\"show\":false,\"width\":2},\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":60,\"labelColor\":false,\"subText\":\"\"},\"type\":\"meter\",\"useRanges\":false,\"verticalSplit\":false},\"isDisplayWarning\":false,\"type\":\"gauge\"},\"title\":\"[nginx] Goal\",\"type\":\"goal\"}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "98a8d0b0-6f2a-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] pie chart",
"visState": "{\"title\":\"[nginx] pie chart\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.method\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "fe7b9a30-6f20-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] heat map",
"visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"요일\",\"field\":\"요일_한글\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"asc\",\"orderAgg\":{\"enabled\":true,\"id\":\"2-orderAgg\",\"params\":{\"field\":\"요일_숫자\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket\",\"!min_bucket\",\"!sum_bucket\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"orderAgg\",\"params\":[],\"title\":\"Order Agg\"},\"type\":\"avg\"},\"orderBy\":\"custom\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":7},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"시간대\",\"field\":\"시간대\",\"ranges\":[{\"from\":18,\"to\":23},{\"from\":14,\"to\":18},{\"from\":10,\"to\":14},{\"from\":5,\"to\":10},{\"from\":0,\"to\":5}]},\"schema\":\"group\",\"type\":\"range\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"colorSchema\":\"Yellow to Red\",\"colorsNumber\":6,\"colorsRange\":[],\"enableHover\":false,\"invertColors\":false,\"legendPosition\":\"right\",\"percentageMode\":false,\"setColorRange\":false,\"times\":[],\"type\":\"heatmap\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"color\":\"#555\",\"rotate\":0,\"show\":false},\"scale\":{\"defaultYExtents\":false,\"type\":\"linear\"},\"show\":false,\"type\":\"value\"}]},\"title\":\"[nginx] heat map\",\"type\":\"heatmap\"}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 584\":\"rgb(255,255,204)\",\"584 - 1,167\":\"rgb(255,230,146)\",\"1,167 - 1,750\":\"rgb(254,191,90)\",\"1,750 - 2,334\":\"rgb(253,141,60)\",\"2,334 - 2,917\":\"rgb(244,61,37)\",\"2,917 - 3,500\":\"rgb(202,8,35)\"}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "4b2430e0-6f2b-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] horizontal bar",
"visState": "{\"title\":\"[nginx] horizontal bar\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"평균 전송량 (byte)\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"평균 전송량 (byte)\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"nginx.access.body_sent.bytes\",\"customLabel\":\"평균 전송량 (byte)\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"nginx.access.user_agent.name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"agent\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
}
},
{
"_id": "b23c8a00-6f32-11e8-a0fb-51f0eb991705",
"_type": "visualization",
"_source": {
"title": "[nginx] Data Table",
"visState": "{\"title\":\"[nginx] Data Table\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"req 개수\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"bucket\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"d\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"날짜\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"nginx.access.geoip.city_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"도시\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"nginx.access.body_sent.bytes\",\"customLabel\":\"평균 body_sent (bytes)\"}}]}",
"uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
}
}
}
]
================================================
FILE: Week4_Elasticsearch/object/visualization/shopping-visualization.json
================================================
[
{
"_id": "AWJgoeObzMQVnr-9Mxxc",
"_type": "visualization",
"_source": {
"title": "shopping_coordinates",
"visState": "{\"title\":\"shopping_coordinates\",\"type\":\"tile_map\",\"params\":{\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true,\"heatMaxZoom\":0,\"heatMinOpacity\":0.1,\"heatRadius\":25,\"heatBlur\":15,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"options\":{\"version\":\"1.3.0\",\"layers\":\"0\",\"format\":\"image/png\",\"transparent\":true,\"attribution\":\"Maps provided by USGS\",\"styles\":\"\"}},\"type\":\"tile_map\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"물건좌표\",\"autoPrecision\":true,\"useGeocentroid\":true,\"precision\":2}}],\"listeners\":{}}",
"uiStateJSON": "{\"mapZoom\":9,\"mapCenter\":[36.52619126653696,127.91244506835936]}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJguWqpzMQVnr-9Mxxg",
"_type": "visualization",
"_source": {
"title": "[shopping] metrics",
"visState": "{\"title\":\"[shopping] metrics\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"colorSchema\":\"Green to Red\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":true,\"color\":\"black\"},\"style\":{\"fontSize\":60,\"bgColor\":false,\"labelColor\":false,\"subText\":\"\"},\"metricColorMode\":\"None\"}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"전체 데이터\"}}]}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJdii5xzMQVnr-9MxxQ",
"_type": "visualization",
"_source": {
"title": "[shopping] Area Chart",
"visState": "{\"title\":\"[shopping] Area Chart\",\"type\":\"area\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"주문시간\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"주문개수\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"area\",\"mode\":\"stacked\",\"data\":{\"label\":\"주문개수\",\"id\":\"1\"},\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"area\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"metric\",\"params\":{\"field\":\"상품개수\",\"customLabel\":\"주문개수\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"주문시간\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"주문시간\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"고객성별\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJg0q4CzMQVnr-9Mxxk",
"_type": "visualization",
"_source": {
"title": "[shopping] Line Chart",
"visState": "{\"title\":\"[shopping] Line Chart\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"주문시간\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"배송소요시간\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"배송소요시간\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"line\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"percentiles\",\"schema\":\"metric\",\"params\":{\"field\":\"배송소요시간\",\"percents\":[1,50,99],\"customLabel\":\"배송소요시간\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"주문시간\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"주문시간\"}}]}",
"uiStateJSON": "{\"spy\":{\"mode\":{\"name\":null,\"fill\":false}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJg1XpWzMQVnr-9Mxxl",
"_type": "visualization",
"_source": {
"title": "[shopping] Horizontal Bar",
"visState": "{\"title\":\"[shopping] Horizontal Bar\",\"type\":\"histogram\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{\"text\":\"판매자평점\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"매출\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"매출\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"horizontal_bar\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"metric\",\"params\":{\"field\":\"상품가격\",\"customLabel\":\"매출\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"판매자평점\",\"interval\":1,\"extended_bounds\":{}}}]}",
"uiStateJSON": "{\"vis\":{\"legendOpen\":false}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJg1wbTzMQVnr-9Mxxm",
"_type": "visualization",
"_source": {
"title": "[shopping] Data Table",
"visState": "{\"title\":\"[shopping] Data Table\",\"type\":\"table\",\"params\":{\"perPage\":30,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"type\":\"table\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"metric\",\"params\":{\"field\":\"상품가격\",\"customLabel\":\"매출\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"bucket\",\"params\":{\"field\":\"주문시간\",\"interval\":\"d\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"날짜\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"구매사이트\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"사이트\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"결제카드\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"카드\"}}]}",
"uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJgycpEzMQVnr-9Mxxi",
"_type": "visualization",
"_source": {
"title": "[shopping] Pie Chart",
"visState": "{\"title\":\"[shopping] Pie Chart\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"판매자평점\",\"aggregate\":\"average\",\"size\":5,\"sortField\":\"판매자평점\",\"sortOrder\":\"desc\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"histogram\",\"schema\":\"split\",\"params\":{\"field\":\"배송소요시간\",\"interval\":24,\"extended_bounds\":{},\"row\":false}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"고객주소_시도\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":3,\"orderAgg\":{\"id\":\"2-orderAgg\",\"enabled\":true,\"type\":\"avg\",\"schema\":\"orderAgg\",\"params\":{\"field\":\"배송소요시간\"}},\"order\":\"desc\",\"orderBy\":\"custom\"}}]}",
"uiStateJSON": "{\"vis\":{\"colors\":{\"인천광역시\":\"#962D82\"},\"legendOpen\":false}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AV_Fp61Dju5h0m3erKmP",
"_type": "visualization",
"_source": {
"title": "shopping_timelion_2",
"visState": "{\"title\":\"shopping_timelion_2\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(index=shopping, timefield=주문시간, metric=sum:상품가격).label('올해 매출').range(0, 1), .es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y).label('작년 매출').color(#00b8ff).range(0, 1), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).subtract(.es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y)).if(gte, 50000, .es(index=shopping, timefield=주문시간, metric=sum:상품가격), null).lines(fill=5, width=2).color(#fd8282).label('전년 대비 50,000 이상 상승 구간').yaxis(label=매출).range(0, 1)\",\"interval\":\"1d\",\"type\":\"timelion\"},\"aggs\":[],\"listeners\":{}}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJgEGqCzMQVnr-9MxxW",
"_type": "visualization",
"_source": {
"title": "[shopping] Region Map",
"visState": "{\"title\":\"[shopping] Region Map\",\"type\":\"region_map\",\"params\":{\"legendPosition\":\"bottomright\",\"addTooltip\":true,\"colorSchema\":\"Yellow to Red\",\"selectedLayer\":{\"name\":\"Korea City\",\"url\":\"https://s3.ap-northeast-2.amazonaws.com/higee-map/korea.geojson\",\"fields\":[{\"name\":\"name\",\"description\":\"City name\"}],\"format\":{\"type\":\"geojson\"},\"meta\":{\"feature_collection_path\":\"data\"},\"layerId\":\"self_hosted.Korea City\"},\"selectedJoinField\":{\"name\":\"name\",\"description\":\"City name\"},\"type\":\"region_map\",\"isDisplayWarning\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"baseLayersAreLoaded\":{},\"tmsLayers\":[{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}],\"selectedTmsLayer\":{\"id\":\"road_map\",\"url\":\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"<p>© <a href=\\\"http://www.openstreetmap.org/copyright\\\">OpenStreetMap</a> contributors | <a href=\\\"https://www.elastic.co/elastic-maps-service\\\">Elastic Maps Service</a></p> \",\"subdomains\":[]}},\"mapZoom\":2,\"mapCenter\":[0,0],\"outlineWeight\":1,\"showAllShapes\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"고객주소_시도\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{\"mapZoom\":7,\"mapCenter\":[36.071302299422406,128.21594238281253],\"spy\":null}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJg3QUCzMQVnr-9Mxxo",
"_type": "visualization",
"_source": {
"title": "[shopping] Goal",
"visState": "{\"title\":\"[shopping] Goal\",\"type\":\"goal\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Arc\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"useRanges\":false,\"colorSchema\":\"Yellow to Red\",\"gaugeColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":1},{\"from\":1,\"to\":2},{\"from\":2,\"to\":3},{\"from\":3,\"to\":4},{\"from\":4,\"to\":5}],\"invertColors\":true,\"labels\":{\"show\":true,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"meter\",\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}},\"isDisplayWarning\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"top_hits\",\"schema\":\"metric\",\"params\":{\"field\":\"판매자평점\",\"aggregate\":\"average\",\"size\":10,\"sortField\":\"상품가격\",\"sortOrder\":\"desc\",\"customLabel\":\"연령별 VIP 평점\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"연령대\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":3,\"order\":\"asc\",\"orderBy\":\"_term\"}}]}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 1\":\"rgb(128,0,38)\",\"1 - 2\":\"rgb(227,27,28)\",\"2 - 3\":\"rgb(253,141,60)\",\"3 - 4\":\"rgb(254,217,118)\",\"4 - 5\":\"rgb(255,255,204)\"}},\"spy\":{\"mode\":{\"name\":null,\"fill\":false}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJgsNh9zMQVnr-9Mxxe",
"_type": "visualization",
"_source": {
"title": "[shopping] Tag Cloud",
"visState": "{\"title\":\"[shopping] Tag Cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":72,\"type\":\"tagcloud\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"구매사이트\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWGI8fjSPloSIAlpOE6c",
"_type": "visualization",
"_source": {
"title": "[shopping] Timelion",
"visState": "{\"title\":\"[shopping] Timelion\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(index=shopping, timefield=주문시간, metric=sum:상품가격).label('올해 매출'), .es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y).label('작년 매출').color(#00b8ff), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).subtract(.es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y)).if(gte, 50000, .es(index=shopping, timefield=주문시간, metric=sum:상품가격), null).lines(fill=5, width=2).color(#fd8282).label('전년 대비 50,000 이상 상승 구간').yaxis(label=매출).legend(position=ne)\",\"interval\":\"1d\",\"type\":\"timelion\"},\"aggs\":[]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "AWJglBU6zMQVnr-9Mxxa",
"_type": "visualization",
"_source": {
"title": "[shopping] markdown",
"visState": "{\"title\":\"[shopping] markdown\",\"type\":\"markdown\",\"params\":{\"type\":\"markdown\",\"markdown\":\"### Elastic Stack을 활용한 Data Dashboard 만들기 CAMP\\n---\\n* [강의자료](https://github.com/higee/elastic)\\n* [강의질문](https://www.facebook.com/groups/FCElasticStack/)\\n* [Markdown문법](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)\",\"fontSize\":12},\"aggs\":[]}",
"uiStateJSON": "{}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"
}
}
},
{
"_id": "147d34a0-82c8-11e8-8161-3b4280559eb3",
"_type": "visualization",
"_source": {
"title": "[shopping] Heat Map",
"visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"요일\",\"field\":\"주문시간_요일\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":7},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"시간\",\"field\":\"주문시간_시간대\",\"ranges\":[{\"from\":0,\"to\":7},{\"from\":7,\"to\":11},{\"from\":11,\"to\":15},{\"from\":15,\"to\":19},{\"from\":19,\"to\":23}]},\"schema\":\"group\",\"type\":\"range\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"colorSchema\":\"Yellow to Red\",\"colorsNumber\":4,\"colorsRange\":[],\"enableHover\":false,\"invertColors\":false,\"legendPosition\":\"right\",\"percentageMode\":false,\"setColorRange\":false,\"times\":[],\"type\":\"heatmap\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"color\":\"#555\",\"rotate\":0,\"show\":false},\"scale\":{\"defaultYExtents\":false,\"type\":\"linear\"},\"show\":false,\"type\":\"value\"}]},\"title\":\"[shopping] Heat Map\",\"type\":\"heatmap\"}",
"uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 55\":\"rgb(255,255,204)\",\"55 - 110\":\"rgb(254,217,118)\",\"110 - 165\":\"rgb(253,141,60)\",\"165 - 220\":\"rgb(227,27,28)\"}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
}
}
}
]
================================================
FILE: Week5_Logstash/code/filter/csv/autodetect-column-names.conf
================================================
input {
file {
path => "/usr/share/logstash/data/titanic-header.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
autodetect_column_names => true
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/csv/convert.conf
================================================
input {
file {
path => "/usr/share/logstash/data/titanic-header.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
autodetect_column_names => true
convert => {
"Pclass" => "integer"
"Index" => "integer"
"Survival" => "integer"
"Fare" => "float"
"@timestamp" => "date"
}
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/csv/separator.conf
================================================
input {
file {
path => "/usr/share/logstash/data/titanic-header.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/date/date.conf
================================================
input {
file {
path => "/usr/share/logstash/data/date.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => {"message" => '%{TIMESTAMP_ISO8601:time} %{WORD:name}'}
remove_field => ["path", "@timestamp", "@version", "host", "message"]
}
date {
match => ["time", "YYYY-MM-dd'T'HH:mm:ss"]
timezone => "Asia/Seoul"
target => "time"
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "exercise5"
document_type => "exercise5"
}
}
================================================
FILE: Week5_Logstash/code/filter/date/default.conf
================================================
input {
file {
path => "/usr/share/logstash/data/date.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => { "message" => '%{TIMESTAMP_ISO8601:time} %{WORD:name}'}
remove_field => ["path", "@timestamp", "@version", "host", "message"]
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "exercise4"
document_type => "exercise4"
}
}
================================================
FILE: Week5_Logstash/code/filter/drop/drop1.conf
================================================
input {
stdin {}
}
filter {
if [message] == "hello" {
drop {}
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/drop/drop2.conf
================================================
input {
file {
path => "/usr/share/logstash/data/access.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => {
"message" =>
'%{TIMESTAMP_ISO8601:time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'
}
}
if [status_code] == "200" {
drop {}
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/elasticsearch/example1.conf
================================================
input {
file {
path => "/usr/share/logstash/data/access2.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => {
"message" =>
'%{TIMESTAMP_ISO8601:current_time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'
}
}
elasticsearch {
hosts => ["elasticsearch.higee.co"]
index => "nginx-*"
query => "nginx.access.geoip.ip:%{[clientip]}"
sort => "@timestamp:desc"
fields => {"@timestamp" => "previous_time"}
remove_field => ["status_code", "path", "@timestamp", "req", "res_time", "@version", "host"]
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/elasticsearch/example1_.conf
================================================
input {
file {
path => "/usr/share/logstash/data/access2.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => {
"message" =>
'%{TIMESTAMP_ISO8601:time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'
}
}
elasticsearch {
hosts => ["elasticsearch.higee.co"]
index => "nginx-*"
query => "nginx.access.geoip.ip:%{[clientip]}"
sort => "@timestamp:desc"
fields => {"nginx" => "nginx_"}
}
mutate {
add_field => { "byte" => "%{[nginx_][access][body_sent][bytes]}"}
remove_field => ["[nginx_]"]
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/elasticsearch/example2.conf
================================================
input {
file {
path => "/usr/share/logstash/data/access2.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => {
"message" =>
'%{TIMESTAMP_ISO8601:current_time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'
}
}
elasticsearch {
hosts => ["elasticsearch.higee.co"]
index => "nginx-*"
query => "nginx.access.geoip.ip:%{[clientip]}"
sort => "@timestamp:desc"
fields => {"@timestamp" => "previous_time"}
}
if [previous_time] {
date {
match => ["current_time", "YYYY-MM-dd'T'HH:mm:ss.SSSZ"]
target => "current_time"
}
date {
match => ["previous_time", "YYYY-MM-dd'T'HH:mm:ss.SSSZ"]
target => "previous_time"
}
ruby {
code => "event.set('access_interval', ((event.get('current_time') - event.get('previous_time'))/3600).round(2))"
}
}
mutate {
remove_field => ["status_code", "path", "@timestamp", "req", "res_time", "@version", "host"]
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/elasticsearch/example3.conf
================================================
input {
file {
path => "/usr/share/logstash/data/access2.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => {
"message" =>
'%{TIMESTAMP_ISO8601:current_time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'
}
}
elasticsearch {
hosts => ["elasticsearch.higee.co"]
index => "nginx-*"
query_template => "/usr/share/logstash/code/filter/elasticsearch/example3.json"
fields => {"@timestamp" => "previous_time"}
remove_field => ["status_code", "path", "@timestamp", "req", "res_time", "@version", "host"]
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/elasticsearch/example3.json
================================================
{
"size": 1,
"sort" : [ { "@timestamp" : "desc" } ],
"_source" : ["@timestamp"],
"query": {
"term": {
"nginx.access.geoip.ip" : "%{[clientip]}"
}
}
}
================================================
FILE: Week5_Logstash/code/filter/elasticsearch/example4.conf
================================================
input {
file {
path => "/usr/share/logstash/data/access2.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => {
"message" =>
'%{TIMESTAMP_ISO8601:current_time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'
}
}
elasticsearch {
hosts => ["elasticsearch.higee.co"]
index => "nginx-*"
query_template => "/usr/share/logstash/code/filter/elasticsearch/example4.json"
fields => {"@timestamp" => "previous_time"}
remove_field => ["status_code", "path", "@timestamp", "req", "res_time", "@version", "host", "current_time"]
aggregation_fields => {
"this_is_avg" => "elasticsearch_aggregation"
}
}
if ![elasticsearch_aggregation][value] {
mutate {
remove_field => ["elasticsearch_aggregation"]
}
}
else {
ruby {
code => "event.set('average_byte', event.get('[elasticsearch_aggregation][value]').round(0))"
remove_field => ["elasticsearch_aggregation"]
}
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/elasticsearch/example4.json
================================================
{
"size": 0,
"sort" : [ { "@timestamp" : "desc" } ],
"query": {
"term": {
"nginx.access.geoip.ip" : "%{[clientip]}"
}
},
"aggs": {
"this_is_avg": {
"avg": {
"field": "nginx.access.body_sent.bytes"
}
}
}
}
================================================
FILE: Week5_Logstash/code/filter/grok/access.conf
================================================
input {
file {
path => "/usr/share/logstash/data/access.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => {
"message" =>
'%{TIMESTAMP_ISO8601:time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'
}
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/grok/apache.conf
================================================
input {
file {
path => "/usr/share/logstash/data/apache.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/mutate/add_field.conf
================================================
input {
file {
path => "/usr/share/logstash/data/ip-address.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
mutate {
split => {
"message" => ":"
}
add_field => {
"ip" => "%{message[0]}"
"port" => "%{message[1]}"
}
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/mutate/remove_field.conf
================================================
input {
file {
path => "/usr/share/logstash/data/ip-address.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
mutate {
split => {
"message" => ":"
}
add_field => {
"ip" => "%{message[0]}"
"port" => "%{message[1]}"
}
remove_field => ["path", "@timestamp", "@version", "host", "message"]
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/mutate/split.conf
================================================
input {
file {
path => "/usr/share/logstash/data/ip-address.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
mutate {
split => {
"message" => ":"
}
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/filter/ruby/example1.conf
================================================
input {
file {
path => "/usr/share/logstash/data/date.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => {"message" => '%{TIMESTAMP_ISO8601:time} %{WORD:name}'}
remove_field => ["path", "@timestamp", "@version", "host", "message"]
}
date {
match => ["time", "YYYY-MM-dd'T'HH:mm:ss"]
timezone => "Asia/Seoul"
target => "time2"
remove_field => ["time"]
}
ruby {
code =>
"event.set('_time2', event.get('time2').time.localtime('+09:00').strftime('%Y-%m-%dT%H:%M:%S'))"
}
}
output {
stdout {}
}
================================================
FILE: Week5_Logstash/code/filter/ruby/example2.conf
================================================
input {
file {
path => "/usr/share/logstash/data/access.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
ruby {
code => "event.set('status code', (event.get('message').split(' ')[3]).to_i)"
remove_field => ["path", "@version", "host", "@timestamp"]
}
}
output {
stdout {}
}
================================================
FILE: Week5_Logstash/code/input/elasticsearch/elasticsearch.conf
================================================
input {
elasticsearch {
hosts => ["52.78.134.20:9200"]
index => "exercise1"
query => '{
"query" : {
"match_all" : {}
}
}'
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/input/file/file-sincedb-path.conf
================================================
input {
file {
path => "/usr/share/logstash/data/titanic.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
output {
stdout {
codec => rubydebug
}
}
================================================
FILE: Week5_Logstash/code/input/file/file-start-position.conf
================================================
input {
file {
path => "/usr/share/logstash/data/titanic2.csv"
start_position => "beginning"
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/input/file/file.conf
================================================
input {
file {
path => "/usr/share/logstash/data/titanic.csv"
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/input/file/nginx.conf
================================================
input {
file {
path => "/usr/share/logstash/data2/access.log"
start_position => "beginning"
sincedb_path => "/dev/null"
type => "access"
}
}
filter {
if [type] == "access" {
grok {
match => { "message" => ["%{IPORHOST:[nginx][access][remote_ip]} - %{DATA:[nginx][access][user_name]} \[%{HTTPDATE:[nginx][access][time]}\] \"%{WORD:[nginx][access][method]} %{DATA:[nginx][access][url]} HTTP/%{NUMBER:[nginx][access][http_version]}\" %{NUMBER:[nginx][access][response_code]} %{NUMBER:[nginx][access][body_sent][bytes]} \"%{DATA:[nginx][access][referrer]}\" \"%{DATA:[nginx][access][agent]}\""] }
remove_field => "message"
}
date {
match => [ "[nginx][access][time]", "dd/MMM/YYYY:H:m:s Z" ]
remove_field => "[nginx][access][time]"
}
useragent {
source => "[nginx][access][agent]"
target => "[nginx][access][user_agent]"
remove_field => "[nginx][access][agent]"
}
geoip {
source => "[nginx][access][remote_ip]"
target => "[nginx][access][geoip]"
}
mutate {
remove_field => ["@version", "path", "host", "[nginx][access][geoip][latitude]", "[nginx][access][geoip][longitude]"]
convert => {"[nginx][access][body_sent][bytes]" => "integer" }
}
}
}
output {
elasticsearch {
hosts => "elasticsearch:9200"
index => "nginx-%{+YYYY.MM.dd}"
}
}
================================================
FILE: Week5_Logstash/code/input/jdbc/jdbc-schedule.conf
================================================
input {
jdbc {
jdbc_validate_connection => true
jdbc_connection_string => "jdbc:mysql://52.78.134.20:3306/fc"
jdbc_user => "fc"
jdbc_password => "fc"
jdbc_driver_library => "/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
statement => "SELECT * FROM fc"
schedule => "0 6 * * *"
}
}
output {
stdout {
}
}
================================================
FILE: Week5_Logstash/code/input/jdbc/jdbc-sql-last-value-1.conf
================================================
input {
jdbc {
jdbc_validate_connection => true
jdbc_connection_string => "jdbc:mysql://52.78.134.20:3306/fc"
jdbc_user => "fc"
jdbc_password => "fc"
jdbc_driver_library => "/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar"
jdbc_driver_class => "
gitextract__q_184o4/
├── Install/
│ ├── config/
│ │ ├── docker-compose-higee.yml
│ │ ├── docker-compose.yml
│ │ └── kibana.yml
│ ├── data/
│ │ ├── access.log
│ │ ├── access2.log
│ │ ├── apache.log
│ │ ├── date.log
│ │ ├── ip-address.log
│ │ ├── test.csv
│ │ ├── titanic-header.csv
│ │ ├── titanic.csv
│ │ └── titanic2.csv
│ ├── driver/
│ │ └── mysql-connector-java-5.1.36-bin.jar
│ └── object/
│ ├── nginx-dashboard.json
│ ├── nginx-visualizations.json
│ ├── shopping-dashboard.json
│ └── shopping-visualizations.json
├── README.md
├── Week1_Kibana/
│ └── code/
│ ├── es_conf.py
│ ├── fake.py
│ └── insert.py
├── Week2_Kibana/
│ └── code/
│ └── timelion/
│ ├── all
│ ├── exercise
│ ├── tl10_scale_interval
│ ├── tl11_if
│ ├── tl1_index
│ ├── tl2_timefield
│ ├── tl3_query
│ ├── tl4_metric
│ ├── tl5_indices
│ ├── tl6_label
│ ├── tl7_divide
│ ├── tl8_offset
│ └── tl9_range
├── Week3_Kibana/
│ └── code/
│ ├── lucene_query_syntax/
│ │ ├── all
│ │ ├── and
│ │ ├── compound
│ │ ├── exact_field_match
│ │ ├── exercise
│ │ ├── field_match
│ │ ├── fuzzy
│ │ ├── keyword
│ │ ├── negative
│ │ ├── not
│ │ ├── numeric
│ │ ├── or
│ │ ├── positive
│ │ ├── proximity
│ │ ├── range
│ │ ├── term
│ │ ├── wildcard_1
│ │ └── wildcard_2
│ └── scripted_field/
│ ├── arithmetic_operation_1
│ ├── arithmetic_operation_2
│ ├── concat_1
│ ├── date_1
│ ├── date_2
│ ├── date_3
│ ├── date_4
│ ├── date_5
│ ├── if_1
│ └── if_2
├── Week4_Elasticsearch/
│ ├── code/
│ │ ├── data-type/
│ │ │ ├── complex/
│ │ │ │ ├── array/
│ │ │ │ │ ├── indexing
│ │ │ │ │ ├── mapping
│ │ │ │ │ └── search
│ │ │ │ ├── nested/
│ │ │ │ │ ├── indexing
│ │ │ │ │ ├── mapping
│ │ │ │ │ ├── search_1
│ │ │ │ │ └── search_2
│ │ │ │ └── object/
│ │ │ │ ├── indexing
│ │ │ │ └── mapping
│ │ │ └── core/
│ │ │ ├── float
│ │ │ ├── numeric
│ │ │ └── string
│ │ └── elasticsearch_API/
│ │ ├── document/
│ │ │ ├── add-document-post
│ │ │ ├── add-document-put
│ │ │ ├── check-document-id
│ │ │ ├── delete-document-id
│ │ │ ├── delete-document-query
│ │ │ ├── exercise
│ │ │ ├── reindex-all-documents
│ │ │ ├── reindex-some-documents
│ │ │ ├── update-document-id-all-fields
│ │ │ ├── update-document-id-some-fields
│ │ │ ├── update-document-query
│ │ │ └── upsert-document
│ │ ├── indices/
│ │ │ ├── add-mapping
│ │ │ ├── check-mapping
│ │ │ ├── check-mapping-template
│ │ │ ├── create-index
│ │ │ ├── create-mapping-template
│ │ │ ├── create-mapping-with-index
│ │ │ ├── create-mapping-without-index
│ │ │ ├── delete-index
│ │ │ └── exercise
│ │ └── search/
│ │ ├── from-size
│ │ ├── query_dsl/
│ │ │ ├── Compound-queries/
│ │ │ │ ├── bool-a-and-b
│ │ │ │ ├── bool-a-and-b-or-c
│ │ │ │ ├── bool-a-and-b-or-c-or-d
│ │ │ │ ├── bool-a-and-not-b
│ │ │ │ ├── bool-a-or-b
│ │ │ │ └── bool-example
│ │ │ ├── Full-text-queries/
│ │ │ │ ├── match
│ │ │ │ └── query-string
│ │ │ ├── Specialized-queries/
│ │ │ │ └── script-query
│ │ │ ├── TERM-VS-MATCH/
│ │ │ │ ├── indexing
│ │ │ │ ├── keyword-match-search
│ │ │ │ ├── keyword-term-search
│ │ │ │ ├── mapping
│ │ │ │ ├── text-match-search
│ │ │ │ └── text-term-search
│ │ │ ├── Term-level-queries/
│ │ │ │ ├── exists
│ │ │ │ ├── fuzzy
│ │ │ │ ├── prefix
│ │ │ │ ├── range
│ │ │ │ ├── term
│ │ │ │ ├── terms
│ │ │ │ └── wildcard
│ │ │ └── match_all
│ │ ├── sort
│ │ └── source
│ └── object/
│ ├── dashboard/
│ │ ├── nginx-dashboard.json
│ │ └── shopping-dashboard.json
│ ├── search/
│ │ └── nginx-search.json
│ └── visualization/
│ ├── nginx-visualization.json
│ └── shopping-visualization.json
├── Week5_Logstash/
│ └── code/
│ ├── filter/
│ │ ├── csv/
│ │ │ ├── autodetect-column-names.conf
│ │ │ ├── convert.conf
│ │ │ └── separator.conf
│ │ ├── date/
│ │ │ ├── date.conf
│ │ │ └── default.conf
│ │ ├── drop/
│ │ │ ├── drop1.conf
│ │ │ └── drop2.conf
│ │ ├── elasticsearch/
│ │ │ ├── example1.conf
│ │ │ ├── example1_.conf
│ │ │ ├── example2.conf
│ │ │ ├── example3.conf
│ │ │ ├── example3.json
│ │ │ ├── example4.conf
│ │ │ └── example4.json
│ │ ├── grok/
│ │ │ ├── access.conf
│ │ │ └── apache.conf
│ │ ├── mutate/
│ │ │ ├── add_field.conf
│ │ │ ├── remove_field.conf
│ │ │ └── split.conf
│ │ └── ruby/
│ │ ├── example1.conf
│ │ └── example2.conf
│ ├── input/
│ │ ├── elasticsearch/
│ │ │ └── elasticsearch.conf
│ │ ├── file/
│ │ │ ├── file-sincedb-path.conf
│ │ │ ├── file-start-position.conf
│ │ │ ├── file.conf
│ │ │ └── nginx.conf
│ │ ├── jdbc/
│ │ │ ├── jdbc-schedule.conf
│ │ │ ├── jdbc-sql-last-value-1.conf
│ │ │ ├── jdbc-sql-last-value-2.conf
│ │ │ └── jdbc.conf
│ │ └── stdin/
│ │ └── stdin.conf
│ ├── logstash.md
│ └── output/
│ ├── conditional.conf
│ ├── csv/
│ │ └── csv.conf
│ ├── elasticsearch/
│ │ ├── elasticsearch-dynamic-field-name-1.conf
│ │ ├── elasticsearch-dynamic-field-name-2.conf
│ │ ├── elasticsearch-stdout.conf
│ │ └── elasticsearch.conf
│ └── stdout/
│ └── stdout.conf
└── Week6_Review/
└── solution/
├── p44_template
├── p46_logstash
├── p53-heatmap.json
├── p54-coordinate-map.json
├── p55-coordinate-map.json
├── p58-timelion.json
├── p60-pie-chart.json
├── p62-data-table.json
├── p64-markdown.json
├── p65-dashboard.json
├── p66_query_dsl
├── p67_logstash
├── p71_backup_logstash
└── p73_backup_reindex
SYMBOL INDEX (2 symbols across 2 files) FILE: Week1_Kibana/code/fake.py function fake_data (line 8) | def fake_data(es, name, n): FILE: Week1_Kibana/code/insert.py function main (line 13) | def main():
Condensed preview — 179 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (264K chars).
[
{
"path": "Install/config/docker-compose-higee.yml",
"chars": 1535,
"preview": "version: '3'\n\nservices:\n\n elasticsearch:\n image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4\n contain"
},
{
"path": "Install/config/docker-compose.yml",
"chars": 1501,
"preview": "version: '3'\n\nservices:\n\n elasticsearch:\n image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4\n contain"
},
{
"path": "Install/config/kibana.yml",
"chars": 4834,
"preview": "#Kibana is served by a back end server. This setting specifies the port to use.\n#server.port: 5601\n\n# Specifies the addr"
},
{
"path": "Install/data/access.log",
"chars": 391,
"preview": "2018-02-05T05:49:53.859060Z 172.30.39.133 0.079 200 \"GET https://helloworld.com/users/1 HTTP/1.1\"\n2018-02-05T06:49:53.85"
},
{
"path": "Install/data/access2.log",
"chars": 471,
"preview": "2018-09-10T05:49:22.859Z 178.73.215.171 0.079 200 \"GET https://helloworld.com/users/1 HTTP/1.1\"\n2018-09-10T16:51:42.119Z"
},
{
"path": "Install/data/apache.log",
"chars": 1071,
"preview": "127.0.0.1 - - [13/Dec/2015:03:02:45 -0800] \"GET /xampp/status.php HTTP/1.1\" 200 891 \"http://cadenza/xampp/navi.php\" \"Moz"
},
{
"path": "Install/data/date.log",
"chars": 73,
"preview": "2018-02-12T16:03:38 Ben\n2018-02-13T03:25:31 John\n2018-02-14T13:31:11 Leo\n"
},
{
"path": "Install/data/ip-address.log",
"chars": 79,
"preview": "13.124.230.195:5601\n13.124.230.195:3306\n13.124.230.195:9200\n13.124.230.195:9300"
},
{
"path": "Install/data/test.csv",
"chars": 1289,
"preview": "customer_card,seller_site,seller_rating,customer_sex,product_price,product_quantity,customer_age,customer_location,date_"
},
{
"path": "Install/data/titanic-header.csv",
"chars": 212,
"preview": "Index,Name,Survival,Pclass,Sex,Age,SibSp,Parch,Ticket,Fare,Embarked\n1,Braund,0,3,male,22,1,0,A/5 21171,7.25,S\n2,Cumings,"
},
{
"path": "Install/data/titanic.csv",
"chars": 2310,
"preview": "1,Braund,0,3,male,22,1,0,A/5 21171,7.25,S\n2,Cumings,1,1,female,38,1,0,PC 17599,71.2833,C\n3,Heikkinen,1,3,female,26,0,0,S"
},
{
"path": "Install/data/titanic2.csv",
"chars": 2232,
"preview": "51,Panula,0,3,male,7,4,1,3101295,39.6875,S\n52,Nosworthy,0,3,male,21,0,0,A/4. 39886,7.8,S\n53,Harper,1,1,female,49,1,0,PC "
},
{
"path": "Install/object/nginx-dashboard.json",
"chars": 3198,
"preview": "[\n {\n \"_id\": \"bd2418e0-6f26-11e8-a0fb-51f0eb991705\",\n \"_type\": \"dashboard\",\n \"_source\": {\n \"title\": \"ngin"
},
{
"path": "Install/object/nginx-visualizations.json",
"chars": 24144,
"preview": "[\n {\n \"_id\": \"7a9123a0-6f27-11e8-a0fb-51f0eb991705\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \""
},
{
"path": "Install/object/shopping-dashboard.json",
"chars": 3260,
"preview": "[\n {\n \"_id\": \"AV-a4D_kMbjMXoGxGOm2\",\n \"_type\": \"dashboard\",\n \"_source\": {\n \"title\": \"shopping\",\n \"hi"
},
{
"path": "Install/object/shopping-visualizations.json",
"chars": 21941,
"preview": "[\n {\n \"_id\": \"AV_Fp61Dju5h0m3erKmP\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \"shopping_timelio"
},
{
"path": "README.md",
"chars": 3814,
"preview": "### Elastic Stack을 활용한 Dashboard 만들기\n---\n\n#### 안내\n\n* 이 repository는 지속적으로 업데이트가 진행된다. (`<>Code`, `Issues`, `Wiki`)\n* `bra"
},
{
"path": "Week1_Kibana/code/es_conf.py",
"chars": 591,
"preview": "properties = {\n \"properties\": {\n \"접수번호\" : {\"type\": \"integer\"},\n \"주문시간\" : {\"type\" : \"date\"},\n \"수령시간\" : {\"type\""
},
{
"path": "Week1_Kibana/code/fake.py",
"chars": 3713,
"preview": "import datetime\nimport socket\nimport random\nimport struct\n\nfrom elasticsearch import Elasticsearch\n\ndef fake_data(es, na"
},
{
"path": "Week1_Kibana/code/insert.py",
"chars": 1378,
"preview": "import os\nimport sys\nimport socket\nimport struct\nimport random\nimport datetime\n\nfrom elasticsearch import Elasticsearch\n"
},
{
"path": "Week2_Kibana/code/timelion/all",
"chars": 1346,
"preview": "# index\n.es(index=nginx-*)\n\n# timefield\n.es(index=nginx-*, timefield=@timestamp)\n\n# metric\n.es(index=nginx-*, timefield="
},
{
"path": "Week2_Kibana/code/timelion/exercise",
"chars": 519,
"preview": "# readable code\n.es(\n index=nginx-*, \n timefield=@timestamp, \n metric=count\n).label(50이하), \n \n.es(\n index=nginx-*"
},
{
"path": "Week2_Kibana/code/timelion/tl10_scale_interval",
"chars": 190,
"preview": "# redable code\n.es(\n index=nginx-*, \n timefield=@timestamp, \n metric=count\n).scale_interval(1m)\n\n# timelion code\n.es("
},
{
"path": "Week2_Kibana/code/timelion/tl11_if",
"chars": 346,
"preview": "# readable code\n.es(\n index=nginx-*, \n timefield=@timestamp, \n metric=count\n).if(\n gte, \n 50, \n .es(\n i"
},
{
"path": "Week2_Kibana/code/timelion/tl1_index",
"chars": 35,
"preview": "# timelion code\n.es(index=nginx-*)\n"
},
{
"path": "Week2_Kibana/code/timelion/tl2_timefield",
"chars": 122,
"preview": "# readable code\n.es(\n index=nginx-*, \n timefield=@timestamp\n)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp"
},
{
"path": "Week2_Kibana/code/timelion/tl3_query",
"chars": 223,
"preview": "# readable code\n.es(\n index=nginx-*, \n timefield=@timestamp, \n metric=count,\n q=nginx.access.response_code:200\n)\n\n# "
},
{
"path": "Week2_Kibana/code/timelion/tl4_metric",
"chars": 207,
"preview": "# readable code\n.es(\n index=nginx-*, \n timefield=@timestamp, \n metric=sum:nginx.access.body_sent.bytes\n)\n\n# timelion "
},
{
"path": "Week2_Kibana/code/timelion/tl5_indices",
"chars": 385,
"preview": "# readable code\n.es(\n index=nginx-*, \n timefield=@timestamp,\n metric=avg:nginx.access.body_sent.bytes\n).color(#00b8ff"
},
{
"path": "Week2_Kibana/code/timelion/tl6_label",
"chars": 443,
"preview": "# readable code\n.es(\n index=nginx-*, \n timefield=@timestamp,\n metric=avg:nginx.access.body_sent.bytes\n).color(#00b8ff"
},
{
"path": "Week2_Kibana/code/timelion/tl7_divide",
"chars": 362,
"preview": "# readable code\n.es(\n index=nginx-*, \n timefield=@timestamp,\n q=-nginx.access.response_code:200\n).divide(\n .es(\n "
},
{
"path": "Week2_Kibana/code/timelion/tl8_offset",
"chars": 406,
"preview": "# readable code\n.es(\n index=nginx-*, \n timefield=@timestamp, \n metric=count\n).label(현재).color(#00b8ff), \n\n.es(\n inde"
},
{
"path": "Week2_Kibana/code/timelion/tl9_range",
"chars": 264,
"preview": "# redable code\n.es(\n index=nginx-*,\n timefield=@timestamp,\n metric=count,\n q=nginx.access.response_code:200\n).label("
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/all",
"chars": 540,
"preview": "# keyword\n우리\n\n# Field Match\n결제카드:우리\n\n# Exact Field Match\n배송메모:\"상품 이상\"\n\n# Term\n상품분류: (\"니트\" \"코트\")\n\n# Fuzzy\n고객주소_시도:전라도~1\n\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/and",
"chars": 40,
"preview": "고객성별:여성 AND 상품분류:셔츠\n\n고객성별:여성 && 상품분류:셔츠\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/compound",
"chars": 16,
"preview": "여성 셔츠 +예약 -11번가\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/exact_field_match",
"chars": 13,
"preview": "배송메모:\"상품 이상\"\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/exercise",
"chars": 147,
"preview": "+_exists_: nginx.access.geoip.region_name +nginx.access.geoip.city_name: Se* -nginx.access.response_code: (\"200\", \"405\")"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/field_match",
"chars": 8,
"preview": "결제카드:우리\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/fuzzy",
"chars": 14,
"preview": "고객주소_시도:전라도~1\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/keyword",
"chars": 3,
"preview": "우리\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/negative",
"chars": 12,
"preview": "-구매사이트:11번가\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/not",
"chars": 24,
"preview": "NOT 구매사이트:옥션\n\n!구매사이트:옥션\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/numeric",
"chars": 11,
"preview": "상품가격:>5000\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/or",
"chars": 39,
"preview": "고객성별:여성 OR 상품분류:셔츠\n\n고객성별:여성 || 상품분류:셔츠\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/positive",
"chars": 9,
"preview": "+예약여부:예약\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/proximity",
"chars": 22,
"preview": "배송메모: \"내에 시간 배송 못함\"~2\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/range",
"chars": 17,
"preview": "고객나이: [10 TO 30}\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/term",
"chars": 18,
"preview": "상품분류: (\"니트\" \"코트\")\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/wildcard_1",
"chars": 13,
"preview": "고객주소_시도:전라?도\n"
},
{
"path": "Week3_Kibana/code/lucene_query_syntax/wildcard_2",
"chars": 8,
"preview": "상품\\*:셔츠\n"
},
{
"path": "Week3_Kibana/code/scripted_field/arithmetic_operation_1",
"chars": 74,
"preview": "(doc['수령시간'].value.getMillis()-doc['주문시간'].value.getMillis())/1000/60/60\t\n"
},
{
"path": "Week3_Kibana/code/scripted_field/arithmetic_operation_2",
"chars": 38,
"preview": "doc['상품가격'].value * doc['상품개수'].value\n"
},
{
"path": "Week3_Kibana/code/scripted_field/concat_1",
"chars": 44,
"preview": "doc['고객성별'].value + '-' + doc['결제카드'].value\n"
},
{
"path": "Week3_Kibana/code/scripted_field/date_1",
"chars": 27,
"preview": "doc['주문시간'].date.hourOfDay\n"
},
{
"path": "Week3_Kibana/code/scripted_field/date_2",
"chars": 27,
"preview": "doc['주문시간'].date.dayOfWeek\n"
},
{
"path": "Week3_Kibana/code/scripted_field/date_3",
"chars": 334,
"preview": "# option 1\nLocalDateTime.ofInstant(Instant.ofEpochMilli(doc['주문시간'].value.millis), ZoneId.of('Asia/Seoul')).getHour()\t\n\n"
},
{
"path": "Week3_Kibana/code/scripted_field/date_4",
"chars": 347,
"preview": "# option 1\nLocalDateTime.ofInstant(Instant.ofEpochMilli(doc['주문시간'].value.millis), ZoneId.of('Asia/Seoul')).getDayOfWeek"
},
{
"path": "Week3_Kibana/code/scripted_field/date_5",
"chars": 99,
"preview": "Instant.ofEpochMilli(doc['주문시간'].date.millis).atZone(ZoneId.of(\"Asia/Seoul\")).dayOfWeek.getValue()\n"
},
{
"path": "Week3_Kibana/code/scripted_field/if_1",
"chars": 143,
"preview": "if (doc['고객나이'].value < 20) { \n return \"10대\" \n} \nelse if (doc['고객나이'].value < 40) { \n return \"20~30대\" \n} \nelse { \n"
},
{
"path": "Week3_Kibana/code/scripted_field/if_2",
"chars": 126,
"preview": "if (doc['상품개수'].value < 3) { \n return \"저소비\" \n} \nelse if (doc['고객나이'].value < 6) { \n return \"평균\" \n} \nelse {\n return \"과"
},
{
"path": "Week4_Elasticsearch/code/data-type/complex/array/indexing",
"chars": 189,
"preview": "POST array/array\n{ \n \"결제카드\" : [\"씨티\", \"국민\"],\n \"고객성별\" : \"여성\", \n \"상품\" : [\n {\n \"구매사이트\" : \"쿠팡\",\n \"분류\" : \"셔츠"
},
{
"path": "Week4_Elasticsearch/code/data-type/complex/array/mapping",
"chars": 351,
"preview": "PUT array\n{\n \"mappings\": {\n \"array\": { \n \"properties\": {\n \"결제카드\": {\n \"type\": \"keyword\"\n "
},
{
"path": "Week4_Elasticsearch/code/data-type/complex/array/search",
"chars": 254,
"preview": "GET /array/_search\n{\n \"query\": {\n \"bool\": {\n \"must\": [\n { \n \"match\": { \n \"상품.구매사이트\":"
},
{
"path": "Week4_Elasticsearch/code/data-type/complex/nested/indexing",
"chars": 191,
"preview": "POST nested/nested\n{ \n \"결제카드\" : [\"씨티\", \"국민\"],\n \"고객성별\" : \"여성\", \n \"상품\" : [\n {\n \"구매사이트\" : \"쿠팡\",\n \"분류\" : \""
},
{
"path": "Week4_Elasticsearch/code/data-type/complex/nested/mapping",
"chars": 381,
"preview": "PUT nested\n{\n \"mappings\": {\n \"nested\": { \n \"properties\": {\n \"결제카드\": {\n \"type\": \"keyword\"\n "
},
{
"path": "Week4_Elasticsearch/code/data-type/complex/nested/search_1",
"chars": 379,
"preview": "GET /nested/_search\n{\n \"query\": {\n \"nested\": {\n \"path\": \"상품\",\n \"query\": {\n \"bool\": {\n \"mus"
},
{
"path": "Week4_Elasticsearch/code/data-type/complex/nested/search_2",
"chars": 379,
"preview": "GET /nested/_search\n{\n \"query\": {\n \"nested\": {\n \"path\": \"상품\",\n \"query\": {\n \"bool\": {\n \"mus"
},
{
"path": "Week4_Elasticsearch/code/data-type/complex/object/indexing",
"chars": 111,
"preview": "POST shopping/shopping\n{ \n \"고객주소_시도\": \"서울특별시\",\n \"상품\": { \n \"가격\": 27000,\n \"분류\": \"팬츠\", \n \"개수\": 7\n }\n}\n"
},
{
"path": "Week4_Elasticsearch/code/data-type/complex/object/mapping",
"chars": 368,
"preview": "PUT object\n{\n \"mappings\": {\n \"object\": { \n \"properties\": {\n \"고객주소_시도\": {\n \"type\": \"keyword\"\n "
},
{
"path": "Week4_Elasticsearch/code/data-type/core/float",
"chars": 977,
"preview": "PUT my_index\n{\n \"mappings\": {\n \"my_type\": {\n \"properties\": {\n \"test-double\": {\n \"type\": \"double"
},
{
"path": "Week4_Elasticsearch/code/data-type/core/numeric",
"chars": 185,
"preview": "PUT my_index\n{\n \"mappings\": {\n \"my_type\": {\n \"properties\": {\n \"test\": {\n \"type\": \"byte\"\n "
},
{
"path": "Week4_Elasticsearch/code/data-type/core/string",
"chars": 495,
"preview": "PUT my_index\n{\n \"mappings\": {\n \"my_type\": {\n \"properties\": {\n \"test-keyword\": {\n \"type\": \"keywo"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/add-document-post",
"chars": 64,
"preview": "POST week4_higee/week4_higee\n{\n \"price\" : 5000,\n \"age\" : 19\n}\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/add-document-put",
"chars": 264,
"preview": "PUT week4_higee/week4_higee/1\n{\n \"price\" : 10000,\n \"age\" : 17\n}\n\nPUT week4_higee/week4_higee/2\n{\n \"price\" : 2000,\n \""
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/check-document-id",
"chars": 31,
"preview": "GET /week4_higee/week4_higee/1\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/delete-document-id",
"chars": 33,
"preview": "DELETE week4_higee/week4_higee/1\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/delete-document-query",
"chars": 94,
"preview": "POST week4_higee/_delet_by_query\n{\n \"query\" : {\n \"match\" : {\n \"age\" : 20\n }\n }\n}\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/exercise",
"chars": 965,
"preview": "# exercise2-without-mapping index 생성\nPUT exercise2-without-mapping\n\n# 다음과 같은 Document 생성 (type 이름 : exercise2)\nPOST exer"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/reindex-all-documents",
"chars": 116,
"preview": "POST _reindex\n{\n \"source\": {\n \"index\": \"week4_higee\"\n },\n \"dest\": {\n \"index\": \"week4_higee_reindex\"\n }\n}\n\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/reindex-some-documents",
"chars": 209,
"preview": "POST _reindex\n{\n \"source\": {\n \"index\": \"week4_higee\",\n \"type\" : \"week4_higee\",\n \"query\": {\n \"term\": {\n "
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/update-document-id-all-fields",
"chars": 68,
"preview": "PUT week4_higee/week4_higee/3\n{\n \"warning\" : \"해당 Document 전체 변경\"\n}\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/update-document-id-some-fields",
"chars": 75,
"preview": "POST week4_higee/week4_higee/3/_update\n{\n \"doc\": {\n \"age\" : 50\n } \n}\n\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/update-document-query",
"chars": 322,
"preview": "POST week4_higee/week4_higee/_update_by_query\n{\n \"script\": {\n \"source\": \"ctx._source['age'] = 50\"\n },\n \"query\": {\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/document/upsert-document",
"chars": 214,
"preview": "POST week4_higee/week4_higee/4/_update\n{\n \"doc\" : {\n \"price\" : 50000\n },\n \"doc_as_upsert\" : true\n}\n\nPOST week4_hig"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/indices/add-mapping",
"chars": 125,
"preview": "PUT week4_higee\n\nPUT week4_higee/_mapping/week4_higee\n{\n \"properties\": {\n \"age\" : {\n \"type\" : \"integer\"\n }\n "
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/indices/check-mapping",
"chars": 26,
"preview": "GET week4_higee/_mapping \n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/indices/check-mapping-template",
"chars": 60,
"preview": "PUT higee-log-2018.01.01\n\nGET higee-log-2018.01.01/_mapping\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/indices/create-index",
"chars": 16,
"preview": "PUT week4_higee\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/indices/create-mapping-template",
"chars": 254,
"preview": "PUT _template/template_higee\n{\n \"template\" : \"higee-log-*\",\n \"mappings\" : {\n \"my_type\" : {\n \"properties\" : {\n "
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/indices/create-mapping-with-index",
"chars": 129,
"preview": "PUT week4_higee\n\nPUT week4_higee/_mapping/week4_higee\n{\n \"properties\" : {\n \"price\" : {\n \"type\" : \"integer\"\n "
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/indices/create-mapping-without-index",
"chars": 258,
"preview": "DELETE week4_higee\n\nPUT week4_higee_mapping\n{\n \"mappings\" : {\n \"week4_higee_mapping\" : {\n \"properties\" : {\n "
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/indices/delete-index",
"chars": 19,
"preview": "DELETE week4_higee\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/indices/exercise",
"chars": 1350,
"preview": "# shopping index mapping 확인\nGET shopping/_mapping\n\n# shopping index와 동일한 index 생성\nPUT shopping \n{\n \"mappings\": {\n \"s"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/from-size",
"chars": 95,
"preview": "GET /shopping/_search\n{\n \"from\" : 0, \n \"size\" : 1,\n \"query\" : {\n \"match_all\" : {}\n }\n}\n\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-b",
"chars": 168,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"bool\": {\n \"must\": [\n { \"term\": { \"고객주소_시도\": \"서울특별시\"}},\n { \""
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-b-or-c",
"chars": 272,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"bool\": {\n \"must\": [\n { \"term\": { \"고객주소_시도\": \"서울특별시\"}}\n ], \n "
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-b-or-c-or-d",
"chars": 414,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"bool\": {\n \"must\": [\n { \"term\": { \"고객주소_시도\": \"서울특별시\" }}\n ], \n "
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-not-b",
"chars": 197,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"bool\": {\n \"must\": [\n { \"term\": { \"고객주소_시도\": \"서울특별시\" }}\n ],\n "
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-or-b",
"chars": 203,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"bool\": {\n \"should\": [\n { \"term\": { \"고객주소_시도\": \"서울특별시\"}},\n {"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-example",
"chars": 419,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"bool\": {\n \"must\": [\n {\n \"term\" : {\n \"고객주소_시도\" "
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Full-text-queries/match",
"chars": 173,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"match\": {\n \"배송메모\": \"배송 못함\"\n }\n }\n}\n\nGET /shopping/_search\n{\n \"query\""
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Full-text-queries/query-string",
"chars": 342,
"preview": "GET /shopping/_search\n{\n \"query\" : {\n \"query_string\" : {\n \"query\": \"고객나이 : [10 TO 25]\"\n }\n }\n}\n\nGET /shoppi"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Specialized-queries/script-query",
"chars": 258,
"preview": "GET /shopping/_search\n{\n \"query\" : {\n \"script\" : {\n \"script\" : {\n \"source\" :\n \"\"\"Instant.ofEpoc"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/indexing",
"chars": 80,
"preview": "POST ml/doc\n{\n \"keyword\" : \"Machine Learning\",\n \"text\" : \"Machine Learning\"\n}\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/keyword-match-search",
"chars": 357,
"preview": "GET ml/_search\n{\n \"query\": {\n \"match\": {\n \"keyword\": \"machine\"\n }\n }\n}\n\nGET ml/_search\n{\n \"query\": {\n \""
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/keyword-term-search",
"chars": 353,
"preview": "GET ml/_search\n{\n \"query\": {\n \"term\": {\n \"keyword\": \"machine\"\n }\n }\n}\n\nGET ml/_search\n{\n \"query\": {\n \"t"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/mapping",
"chars": 195,
"preview": "PUT ml\n{\n \"mappings\": {\n \"doc\": {\n \"properties\": {\n \"keyword\" : {\n \"type\": \"keyword\"\n },"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/text-match-search",
"chars": 345,
"preview": "GET ml/_search\n{\n \"query\": {\n \"match\": {\n \"text\": \"machine\"\n }\n }\n}\n\nGET ml/_search\n{\n \"query\": {\n \"mat"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/text-term-search",
"chars": 341,
"preview": "GET ml/_search\n{\n \"query\": {\n \"term\": {\n \"text\": \"machine\"\n }\n }\n}\n\nGET ml/_search\n{\n \"query\": {\n \"term"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/exists",
"chars": 91,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"exists\" : { \n \"field\" : \"상품분류\" \n }\n }\n}\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/fuzzy",
"chars": 247,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"fuzzy\" : {\n \"고객주소_시도\" : \"경상북남\"\n }\n }\n}\n\n# parameters \nGET /shopping/_"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/prefix",
"chars": 92,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"prefix\" : { \n \"고객주소_시도\" : \"경상\" \n }\n }\n}\n\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/range",
"chars": 116,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"range\": {\n \"주문시간\": {\n \"gte\": \"2017-02-15\"\n }\n }\n }\n}\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/term",
"chars": 86,
"preview": "GET /shopping/_search\n{\n \"query\" : {\n \"term\" : {\n \"상품분류\" : \"셔츠\"\n }\n }\n}\n\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/terms",
"chars": 96,
"preview": "GET /shopping/_search\n{\n \"query\" : {\n \"terms\" : {\n \"상품분류\" : [\"셔츠\", \"스웨터\"]\n }\n }\n}\n\n"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/wildcard",
"chars": 216,
"preview": "# wildcard : *\nGET /shopping/_search\n{\n \"query\": {\n \"wildcard\" : { \n \"고객주소_시도\" : \"경*도\" \n }\n }\n}\n\n# wildcard"
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/match_all",
"chars": 160,
"preview": "# type 명시\nGET /shopping/shopping/_search\n{\n \"query\" : {\n \"match_all\" : {}\n }\n}\n\n# type 생략\nGET /shopping/_search\n{\n "
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/sort",
"chars": 142,
"preview": "GET /shopping/_search\n{\n \"query\": {\n \"match_all\": {}\n },\n \"sort\": [\n {\n \"판매자평점\": {\n \"order\": \"desc\""
},
{
"path": "Week4_Elasticsearch/code/elasticsearch_API/search/source",
"chars": 231,
"preview": "GET /shopping/_search\n{\n \"_source\": \"구매사이트\",\n \"query\" : {\n \"match_all\" : {}\n }\n}\n\nGET /shopping/_search\n{\n \"_sour"
},
{
"path": "Week4_Elasticsearch/object/dashboard/nginx-dashboard.json",
"chars": 3197,
"preview": "[\n {\n \"_id\": \"bd2418e0-6f26-11e8-a0fb-51f0eb991705\",\n \"_type\": \"dashboard\",\n \"_source\": {\n \"title\": \"ngin"
},
{
"path": "Week4_Elasticsearch/object/dashboard/shopping-dashboard.json",
"chars": 3299,
"preview": "[\n {\n \"_id\": \"71dedc90-82c1-11e8-8161-3b4280559eb3\",\n \"_type\": \"dashboard\",\n \"_source\": {\n \"title\": \"shop"
},
{
"path": "Week4_Elasticsearch/object/search/nginx-search.json",
"chars": 626,
"preview": "[\n {\n \"_id\": \"de77bd70-6f31-11e8-a0fb-51f0eb991705\",\n \"_type\": \"search\",\n \"_source\": {\n \"title\": \"[nginx]"
},
{
"path": "Week4_Elasticsearch/object/visualization/nginx-visualization.json",
"chars": 21215,
"preview": "[\n {\n \"_id\": \"57d11570-6f2a-11e8-a0fb-51f0eb991705\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \""
},
{
"path": "Week4_Elasticsearch/object/visualization/shopping-visualization.json",
"chars": 21422,
"preview": "[\n {\n \"_id\": \"AWJgoeObzMQVnr-9Mxxc\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \"shopping_coordin"
},
{
"path": "Week5_Logstash/code/filter/csv/autodetect-column-names.conf",
"chars": 1313,
"preview": "input { \n file { "
},
{
"path": "Week5_Logstash/code/filter/csv/convert.conf",
"chars": 1976,
"preview": "input { \n file { "
},
{
"path": "Week5_Logstash/code/filter/csv/separator.conf",
"chars": 1274,
"preview": "input { \n file { "
},
{
"path": "Week5_Logstash/code/filter/date/date.conf",
"chars": 543,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/date.log\"\n start_position => \"beginning\"\n sincedb_path => \""
},
{
"path": "Week5_Logstash/code/filter/date/default.conf",
"chars": 434,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/date.log\"\n start_position => \"beginning\"\n sincedb_path => \""
},
{
"path": "Week5_Logstash/code/filter/drop/drop1.conf",
"chars": 814,
"preview": "input { \n stdin {} "
},
{
"path": "Week5_Logstash/code/filter/drop/drop2.conf",
"chars": 2409,
"preview": "input { \n file { "
},
{
"path": "Week5_Logstash/code/filter/elasticsearch/example1.conf",
"chars": 658,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/access2.log\"\n start_position => \"beginning\"\n sincedb_path ="
},
{
"path": "Week5_Logstash/code/filter/elasticsearch/example1_.conf",
"chars": 658,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/access2.log\"\n start_position => \"beginning\"\n sincedb_path ="
},
{
"path": "Week5_Logstash/code/filter/elasticsearch/example2.conf",
"chars": 1059,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/access2.log\"\n start_position => \"beginning\"\n sincedb_path ="
},
{
"path": "Week5_Logstash/code/filter/elasticsearch/example3.conf",
"chars": 661,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/access2.log\"\n start_position => \"beginning\"\n sincedb_path ="
},
{
"path": "Week5_Logstash/code/filter/elasticsearch/example3.json",
"chars": 174,
"preview": "{\n \"size\": 1,\n \"sort\" : [ { \"@timestamp\" : \"desc\" } ],\n \"_source\" : [\"@timestamp\"],\n \"query\": {\n \"term\": {\n "
},
{
"path": "Week5_Logstash/code/filter/elasticsearch/example4.conf",
"chars": 1062,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/access2.log\"\n start_position => \"beginning\"\n sincedb_path ="
},
{
"path": "Week5_Logstash/code/filter/elasticsearch/example4.json",
"chars": 259,
"preview": "{\n \"size\": 0,\n \"sort\" : [ { \"@timestamp\" : \"desc\" } ],\n \"query\": {\n \"term\": {\n \"nginx.access.geoip.ip\" : \"%{["
},
{
"path": "Week5_Logstash/code/filter/grok/access.conf",
"chars": 338,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/access.log\"\n start_position => \"beginning\"\n sincedb_path =>"
},
{
"path": "Week5_Logstash/code/filter/grok/apache.conf",
"chars": 244,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/apache.log\"\n start_position => \"beginning\"\n sincedb_path =>"
},
{
"path": "Week5_Logstash/code/filter/mutate/add_field.conf",
"chars": 1854,
"preview": "input { \n file { "
},
{
"path": "Week5_Logstash/code/filter/mutate/remove_field.conf",
"chars": 1937,
"preview": "input { \n file { "
},
{
"path": "Week5_Logstash/code/filter/mutate/split.conf",
"chars": 1537,
"preview": "input { \n file { "
},
{
"path": "Week5_Logstash/code/filter/ruby/example1.conf",
"chars": 597,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/date.log\"\n start_position => \"beginning\"\n sincedb_path => \""
},
{
"path": "Week5_Logstash/code/filter/ruby/example2.conf",
"chars": 333,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/access.log\"\n start_position => \"beginning\"\n sincedb_path =>"
},
{
"path": "Week5_Logstash/code/input/elasticsearch/elasticsearch.conf",
"chars": 998,
"preview": "input { \n elasticsearch { "
},
{
"path": "Week5_Logstash/code/input/file/file-sincedb-path.conf",
"chars": 614,
"preview": "input { \n file { \n path => \"/usr/"
},
{
"path": "Week5_Logstash/code/input/file/file-start-position.conf",
"chars": 522,
"preview": "input { \n file { \n path => \"/us"
},
{
"path": "Week5_Logstash/code/input/file/file.conf",
"chars": 101,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data/titanic.csv\"\n }\n}\n\noutput {\n stdout {\n }\n}\n"
},
{
"path": "Week5_Logstash/code/input/file/nginx.conf",
"chars": 1378,
"preview": "input {\n file {\n path => \"/usr/share/logstash/data2/access.log\"\n start_position => \"beginning\"\n sincedb_path ="
},
{
"path": "Week5_Logstash/code/input/jdbc/jdbc-schedule.conf",
"chars": 1474,
"preview": "input { \n jdbc { "
},
{
"path": "Week5_Logstash/code/input/jdbc/jdbc-sql-last-value-1.conf",
"chars": 2074,
"preview": "input { \n jdbc { "
},
{
"path": "Week5_Logstash/code/input/jdbc/jdbc-sql-last-value-2.conf",
"chars": 2074,
"preview": "input { \n jdbc { "
},
{
"path": "Week5_Logstash/code/input/jdbc/jdbc.conf",
"chars": 1423,
"preview": "input { \n jdbc { "
},
{
"path": "Week5_Logstash/code/input/stdin/stdin.conf",
"chars": 45,
"preview": "input {\n stdin {}\n}\n\noutput {\n stdout {}\n}\n"
},
{
"path": "Week5_Logstash/code/logstash.md",
"chars": 2496,
"preview": "### week5.pdf 실행 스크립트\n\n---\n#### input\n\n* stdin\n * p 17 : `$ bin/logstash -f code/input/stdin/stdin.conf`\n\n* file\n "
},
{
"path": "Week5_Logstash/code/output/conditional.conf",
"chars": 1230,
"preview": "input { \n stdin {} "
},
{
"path": "Week5_Logstash/code/output/csv/csv.conf",
"chars": 1194,
"preview": "input { \n elasticsearch { "
},
{
"path": "Week5_Logstash/code/output/elasticsearch/elasticsearch-dynamic-field-name-1.conf",
"chars": 1640,
"preview": "input { \n jdbc { "
},
{
"path": "Week5_Logstash/code/output/elasticsearch/elasticsearch-dynamic-field-name-2.conf",
"chars": 1782,
"preview": "input { \n jdbc { "
},
{
"path": "Week5_Logstash/code/output/elasticsearch/elasticsearch-stdout.conf",
"chars": 1449,
"preview": "input { \n jdbc {\n jdbc_validate_c"
},
{
"path": "Week5_Logstash/code/output/elasticsearch/elasticsearch.conf",
"chars": 1262,
"preview": "input { \n jdbc { "
},
{
"path": "Week5_Logstash/code/output/stdout/stdout.conf",
"chars": 71,
"preview": "input {\n stdin {}\n}\n\noutput {\n stdout {\n codec => rubydebug\n }\n}\n"
},
{
"path": "Week6_Review/solution/p44_template",
"chars": 1566,
"preview": "PUT _template/chicago-bike\n{\n \"index_patterns\": \"chicago-bike*\",\n \"mappings\": {\n \"chicago-bike\": {\n \"propertie"
},
{
"path": "Week6_Review/solution/p46_logstash",
"chars": 1565,
"preview": "input {\n jdbc {\n jdbc_validate_connection => true\n jdbc_connection_string => \"jdbc:mysql://52.78.134.20:3306/fc\"\n"
},
{
"path": "Week6_Review/solution/p53-heatmap.json",
"chars": 2274,
"preview": "[\n {\n \"_id\": \"cd2bbaa0-8eb5-11e8-bf09-e9fa0893099a\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \""
},
{
"path": "Week6_Review/solution/p54-coordinate-map.json",
"chars": 2064,
"preview": "[\n {\n \"_id\": \"cdfa11b0-8eb6-11e8-bf09-e9fa0893099a\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \""
},
{
"path": "Week6_Review/solution/p55-coordinate-map.json",
"chars": 2062,
"preview": "[\n {\n \"_id\": \"db4c4180-8eb6-11e8-bf09-e9fa0893099a\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \""
},
{
"path": "Week6_Review/solution/p58-timelion.json",
"chars": 624,
"preview": "[\n {\n \"_id\": \"741ee020-8eb7-11e8-bf09-e9fa0893099a\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \""
},
{
"path": "Week6_Review/solution/p60-pie-chart.json",
"chars": 1227,
"preview": "[\n {\n \"_id\": \"c5a13310-8eb9-11e8-bf09-e9fa0893099a\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \""
},
{
"path": "Week6_Review/solution/p62-data-table.json",
"chars": 1632,
"preview": "[\n {\n \"_id\": \"5943d8c0-8eba-11e8-bf09-e9fa0893099a\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \""
},
{
"path": "Week6_Review/solution/p64-markdown.json",
"chars": 482,
"preview": "[\n {\n \"_id\": \"ce7e6010-8eba-11e8-bf09-e9fa0893099a\",\n \"_type\": \"visualization\",\n \"_source\": {\n \"title\": \""
},
{
"path": "Week6_Review/solution/p65-dashboard.json",
"chars": 2068,
"preview": "[\n {\n \"_id\": \"ed5fa2e0-8eb6-11e8-bf09-e9fa0893099a\",\n \"_type\": \"dashboard\",\n \"_source\": {\n \"title\": \"week"
},
{
"path": "Week6_Review/solution/p66_query_dsl",
"chars": 703,
"preview": "GET chicago*/_search\n{\n \"query\": {\n \"bool\": {\n \"must\": [\n {\n \"prefix\": {\n \"to_statio"
},
{
"path": "Week6_Review/solution/p67_logstash",
"chars": 1212,
"preview": "input {\n elasticsearch {\n hosts => [\"elasticsearch:9200\"]\n index => \"chicago-bike-*\"\n query => '{\n \"query"
},
{
"path": "Week6_Review/solution/p71_backup_logstash",
"chars": 186,
"preview": "input {\n elasticsearch {\n hosts => [\"elasticsearch.higee.co\"]\n index => \"shopping\"\n }\n}\n\noutput {\n elasticsearc"
},
{
"path": "Week6_Review/solution/p73_backup_reindex",
"chars": 232,
"preview": "POST _reindex\n{\n \"source\": {\n \"remote\": {\n \"host\": \"http://elasticsearch.higee.co:80\"\n },\n \"index\": \""
}
]
// ... and 1 more files (download for full content)
About this extraction
This page contains the full source code of the higee/elastic GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 179 files (204.4 KB), approximately 65.6k tokens, and a symbol index with 2 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.