# elk总结
#获取现有es索引格式,通过settings和mapping返回结果组装
#查看settings
http://172.17.110.248:9200/goods_search/_settings
GET /goods_search/_settings
#查看mapping
http://172.17.110.248:9200/goods_search/_mapping
GET /goods_search/_mapping
#查询索引
GET /_cat/indices?v
# elk安装(单节点)
#路径
/usr/local/docker/elk
#创建logstash配置
logstash/
├── config/
│ └── logstash.yml
└── pipeline/
└── logstash.conf
mkdir config
vim config/logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch:9200" ]
mkdir pipeline
vim pipeline/logstash.conf
input {
beats {
port => 5000
}
}
filter {
grok {
match => { "message" => "%{COMMONAPACHELOG}" }
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
#创建
vim docker-compose.yml
version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1
container_name: elasticsearch
environment:
- "cluster.name=elasticsearch"
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- /usr/local/docker/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
- /usr/local/docker/elk/elasticsearch/config:/usr/share/elasticsearch/config
# - /usr/local/docker/elk/elasticsearch/data:/usr/share/elasticsearch/data
- ./elasticsearch/data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
networks:
- elk
kibana:
image: docker.elastic.co/kibana/kibana:7.15.1
container_name: kibana
# volumes:
# - /usr/local/docker/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
depends_on:
- elasticsearch
ports:
- 5601:5601
networks:
- elk
logstash:
image: docker.elastic.co/logstash/logstash:7.15.1
container_name: logstash
volumes:
# - /usr/local/docker/elk/logstash:/usr/share/logstash
# - ./logstash/logstash.yml:/usr/share/logstash/config/logstash.yml:ro
- /usr/local/docker/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml:ro
depends_on:
- elasticsearch
ports:
- 4560:4560
- 5044:5044
networks:
- elk
networks:
elk:
driver: bridge
#启动
docker-compose up -d
#无法启动时拷贝容器内目录
docker cp elasticsearch:/usr/share/elasticsearch/config .
#elasticsearch访问
http://172.17.110.248:9200/
#kibana访问
http://172.17.110.248:5601/
#logstash访问
http://172.17.110.248:9600/
# elk安装(集群)
#路径
/usr/local/docker/elk-cluster
#创建logstash配置
├── docker-compose.yml
├── logstash/
│ ├── config/
│ │ └── logstash.yml
│ └── pipeline/
│ └── logstash.conf
mkdir logstash
mkdir config
vim config/logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch1:9200" ]
mkdir pipeline
vim pipeline/logstash.conf
input {
beats {
port => 5000
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch1:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
#创建
vim docker-compose.yml
version: '3.7'
services:
elasticsearch1:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.9
container_name: elasticsearch1
environment:
- node.name=elasticsearch1
- cluster.name=es-docker-cluster
- discovery.seed_hosts=elasticsearch2,elasticsearch3
- cluster.initial_master_nodes=elasticsearch1,elasticsearch2,elasticsearch3
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200 # 端口映射
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.9
container_name: elasticsearch2
environment:
- node.name=elasticsearch2
- cluster.name=es-docker-cluster
- discovery.seed_hosts=elasticsearch1,elasticsearch3
- cluster.initial_master_nodes=elasticsearch1,elasticsearch2,elasticsearch3
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata2:/usr/share/elasticsearch/data
ports:
- 9201:9200 # 端口映射
networks:
- esnet
elasticsearch3:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.9
container_name: elasticsearch3
environment:
- node.name=elasticsearch3
- cluster.name=es-docker-cluster
- discovery.seed_hosts=elasticsearch1,elasticsearch2
- cluster.initial_master_nodes=elasticsearch1,elasticsearch2,elasticsearch3
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata3:/usr/share/elasticsearch/data
ports:
- 9202:9200 # 端口映射
networks:
- esnet
kibana:
image: docker.elastic.co/kibana/kibana:7.17.9
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch1:9200
ports:
- 5601:5601
networks:
- esnet
logstash:
image: docker.elastic.co/logstash/logstash:7.17.9
container_name: logstash
ports:
- "5000:5000"
- "9600:9600"
volumes:
- ./logstash/pipeline:/usr/share/logstash/pipeline
- ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
networks:
- esnet
volumes:
esdata1:
driver: local
esdata2:
driver: local
esdata3:
driver: local
networks:
esnet:
driver: bridge
#启动
docker-compose up -d
#elasticsearch访问
http://172.17.110.248:9200/
#kibana访问
http://172.17.110.248:5601/
#logstash访问
http://172.17.110.248:9600/
#错误提示:max virtual memory areas vm.max_map_count
#查看当前设置
sysctl vm.max_map_count
#临时设置
sudo sysctl -w vm.max_map_count=262144
#永久设置 /etc/sysctl.conf或/etc/sysctl.d/
vm.max_map_count=262144
# 微服务集成elasticsearch
#pom
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.3</version>
</dependency>
#resources
logback-spring.xml
#yml
#es配置
elasticsearch:
client:
ipAddrs: 172.17.110.248:9200,172.17.110.248:9201,172.17.110.248:9202
connectTimeOut: 5000
socketTimeOut: 6000
connectionRequestTime: 5000
maxConnectNum: 60
maxConnectPerRoute: 30
# username: es
# password: es@123
# 商品搜索索引
goodsSearchIndex: product_descx
userSearchIndex: user_search
# logback日志配置
log:
level: DEBUG
path: /opt/logs/lx-consumer-feign
name: lx-consumer-feign
package: com.meteorplan
recently:
maxSize: 2 mb
days: 1
capacity: 1 gb
#创建索引(Kibana控制台 Management -> Dev Tools )
PUT /goods_search
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "text"
},
"price": {
"type": "text"
},
"url": {
"type": "keyword"
},
"type": {
"type": "integer"
},
"createDate": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}
#查询索引
GET /_cat/indices?v
#删除索引
DELETE /goods_search
#添加数据
POST /goods_search/_doc
{
"id": 1,
"name": "商品名称",
"price": "99.99",
"url": "http://example.com/product1",
"type": 1,
"createDate": "2024-07-02 16:26:33"
}
#查询数据
GET /goods_search/_search
{
"query": {
"match_all": {}
}
}
# 添加自定义词库
#关闭索引
POST /goods_search/_close
#添加词库Synonym.txt
PUT /goods_search/_settings
{
"index": {
"analysis": {
"filter": {
"my_synonym_filter": {
"type": "synonym",
"synonyms_path": "config/Synonym.txt"
}
}
}
}
}
#开启索引
POST /goods_search/_open
#查看是否生效
GET /goods_search/_settings
# GET /cs_product_descx/_settings
{
"cs_product_descx" : {
"settings" : {
"index" : {
"number_of_shards" : "1",
"provided_name" : "cs_product_descx",
"similarity" : {
"my_bm25" : {
"type" : "BM25",
"b" : "0",
"k1" : "0"
}
},
"creation_date" : "1678095211349",
"analysis" : {
"filter" : {
"my_synonym_filter" : {
"type" : "synonym",
"synonyms_path" : "Synonym.txt"
}
},
"analyzer" : {
"my_hanlp_index" : {
"filter" : [
"lowercase",
"my_synonym_filter"
],
"char_filter" : [
"html_strip"
],
"type" : "custom",
"tokenizer" : "hanlp_index"
},
"my_hanlp" : {
"filter" : [
"lowercase",
"my_synonym_filter"
],
"char_filter" : [
"html_strip"
],
"type" : "custom",
"tokenizer" : "my_hanlp"
}
},
"tokenizer" : {
"my_hanlp" : {
"type" : "hanlp"
}
}
},
"number_of_replicas" : "1",
"uuid" : "DbpfQkpYTjmZl61fTLAfig",
"version" : {
"created" : "7080199"
}
}
}
}
}
# GET /cs_product_descx/_mapping
{
"cs_product_descx" : {
"mappings" : {
"properties" : {
"activityId" : {
"type" : "keyword"
},
"createdTime" : {
"type" : "long"
},
"deleteStatus" : {
"type" : "keyword"
},
"depositAmount" : {
"type" : "float"
},
"description" : {
"type" : "text",
"analyzer" : "ik_max_word"
},
"exclusiveGroup" : {
"type" : "keyword"
},
"exclusiveType" : {
"type" : "integer"
},
"faceValue" : {
"type" : "float"
},
"giftMsg" : {
"type" : "text",
"analyzer" : "my_hanlp"
},
"giftStock" : {
"type" : "keyword"
},
"goodsBrandId" : {
"type" : "long"
},
"goodsType" : {
"type" : "keyword"
},
"id" : {
"type" : "keyword"
},
"incomeRate" : {
"type" : "keyword"
},
"keywords" : {
"type" : "text",
"analyzer" : "ik_max_word"
},
"merchantSort" : {
"type" : "integer"
},
"merchantUuid" : {
"type" : "keyword"
},
"name" : {
"type" : "text",
"analyzer" : "ik_max_word"
},
"newStatus" : {
"type" : "keyword"
},
"newUserPrice" : {
"type" : "float"
},
"originalPrice" : {
"type" : "float"
},
"pcsId" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"pic" : {
"type" : "keyword"
},
"prefectureType" : {
"type" : "integer"
},
"price" : {
"type" : "float"
},
"productCategoryId" : {
"type" : "keyword"
},
"productCategoryName" : {
"type" : "keyword"
},
"productCategorySort" : {
"type" : "integer"
},
"productMerchantCategorySort" : {
"type" : "integer"
},
"productType" : {
"type" : "integer"
},
"promotionPrice" : {
"type" : "float"
},
"recommandStatus" : {
"type" : "keyword"
},
"rewardsMsg" : {
"type" : "text",
"analyzer" : "my_hanlp"
},
"sale" : {
"type" : "integer"
},
"showOriginal" : {
"type" : "integer"
},
"showRegionId" : {
"type" : "keyword"
},
"sort" : {
"type" : "integer"
},
"updatedTime" : {
"type" : "long"
}
}
}
}
}
# kibana
PUT /logstash-2024.07.03
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
}
}


源数据 _index
倒排索引 基于搜索内容排列出对应id
← Spring Cloud git →