ElasticSearch簡介
#簡介
Elasticsearch是一個分布式、RESTful風格的搜索和數(shù)據(jù)分析引擎,可以實現(xiàn)單機和集群部署,輕松縮放規(guī)模。
ELK:Elasticsearch + Kibana + Logstash
#官方地址
https://www.elastic.co/cn/
https://www.elastic.co/guide/en/elastic-stack/7.6/overview.html
https://hub.docker.com/_/elasticsearch
#應用場景
日志分析:對IT設備進行運維分析與故障定位、對業(yè)務指標分析運營效果。
站內(nèi)搜索:對網(wǎng)站內(nèi)容進行關鍵字檢索、對電商網(wǎng)站商品進行檢索與推薦。
向量檢索:對圖像、視頻、語料等非結構化數(shù)據(jù)提取的特征向量數(shù)據(jù)進行最近鄰或近似近鄰檢索。
本次實驗目標
目標1:Docker部署Elasticsearch + Kibana
目標2:安裝中文分詞器插件,配置認證
目標3:基本操作演示
目標4:在華為云CCE中部署
目標5:使用Logstash進行數(shù)據(jù)遷移
目標6:使用華為云CSS服務
視頻教程地址:https://www.bilibili.com/video/BV1MP4y1e7u8/?vd_source=8e4a436fd4e37be82e3fee379554aa59
實驗環(huán)境
#實驗云資源
ECS:通用計算增強型 | c7.xlarge.2 | 4vCPUs | 8GiB
SFS、CCE
#前期環(huán)境條件
1)準備好對應的云資源
2)已安裝好Docker,配置加速鏡像
#本次實驗資源由「淘客科技@華為云」 提供
Docker部署Elasticsearch + Kibana
#準備
$ mkdir -p /cxy/es76/data
$ chmod 777 /cxy/es76/data #如果不授權,容器里的用戶權限不足操作外層目錄,啟動會失敗
#部署ElasticSearch
$ docker run -d --name es7.6 -p 9201:9200 -p 9301:9300 -v "/cxy/es76/data":/usr/share/elasticsearch/data -e "discovery.type=single-node" elasticsearch:7.6.0
#查看日志
$ docker logs es7.6 --since 30m
#訪問驗證
http://ip:9201
#部署Kibana
$ docker run --name kibana7.6 -p 5602:5601 -d --link es7.6:elasticsearch kibana:7.6.0
$ docker logs -f kibana7.6
#修改配置文件
$ docker exec -it kibana7.6 bash
$ cd config
$ vi kibana.yml
1)如果地址不對,改一下地址
2)添加:i18n.locale: "zh-CN"
#改配后重啟
$ docker restart kibana7.6
#驗證
http://ip:5602
安裝中文分詞器插件,配置認證
#安裝中文分詞器(版本務必對應)
#下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases?page=8
$ docker cp elasticsearch-analysis-ik-7.6.0.zip es7.6:/usr/share/elasticsearch/plugins/
$ docker exec -it es7.6 bash
#安裝插件
$ cd plugins/
$ mkdir analysis-ik
$ mv elasticsearch-analysis-ik-7.6.0.zip analysis-ik/
$ cd analysis-ik
$ unzip elasticsearch-analysis-ik-7.6.0.zip
$ rm -rf elasticsearch-analysis-ik-7.6.0.zip
#重啟服務
$ docker restart es7.6
#驗證
POST _analyze
{
"analyzer": "ik_max_word",
"text": "2017春裝新款休閑褲女裝"
}
#安全設置,認證配置
$ docker exec -it es7.6 bash
$ vi /usr/share/elasticsearch/config/elasticsearch.yml
#開啟自帶的xpack的驗證功能
xpack.security.enabled: true
#重啟服務
$ docker restart es7.6
#設置密碼
$ docker exec -it es7.6 bash
$ cd /usr/share/elasticsearch/bin
$ ./elasticsearch-setup-passwords interactive
#給每個賬號設置密碼(toc@Hwy)
#改變kibana
$ docker exec -it kibana7.6 bash
$ vi config/kibana.yml
elasticsearch.username: "kibana"
elasticsearch.password: "123456"
#重啟服務
$ docker restart kibana7.6
#驗證
登錄kibana時需要用 elastic 作為用戶名。
基本操作
#創(chuàng)建索引映射(類似于關系型數(shù)據(jù)庫中的表結構)
PUT /my_store
{
"mappings" : {
"properties" : {
"price" : {
"type" : "float"
},
"productName" : {
"type" : "text",
"analyzer" : "ik_smart",
"search_analyzer" : "ik_max_word"
},
"size" : {
"type" : "text"
},
"tag" : {
"type" : "keyword"
}
}
}
}
#直接新增customer
PUT /customer/_doc/1
{
"name": "cxy@toc"
}
#查看所有索引
GET _cat/indices
#單條新增,指定id (會刪除沒有的字段,無變化重復執(zhí)行:版本會遞增)
PUT /my_store/_doc/1
{
"productName":"李寧休閑褲",
"size":"L",
"price":100.5
}
#修改(不會修改沒有的字段,無變化重復執(zhí)行:版本號不變)
POST /my_store/_update/1
{
"doc":{
"productName":"李寧休閑褲G",
"size":"L",
"price":100.5
}
}
#查看這條數(shù)據(jù) (注意兩種方式_version區(qū)別)
GET /my_store/_doc/1
#批量插入
POST /my_store/_doc/_bulk
{"index":{}}
{"productName":"2017秋裝新款文藝襯衫女裝","size":"L","price":100.5}
{"index":{}}
{"productName":"2017秋裝新款文藝襯衫女裝","size":"M","price":110.5}
{"index":{}}
{"productName":"2017秋裝新款文藝襯衫女裝","size":"S","price":120.5}
{"index":{}}
{"productName":"2018春裝新款牛仔褲女裝","size":"M","price":130.5}
{"index":{}}
{"productName":"2018春裝新款牛仔褲女裝","size":"S","price":140.5}
{"index":{}}
{"productName":"2017春裝新款休閑褲女裝","size":"L","price":150.5}
{"index":{}}
{"productName":"2017春裝新款休閑褲女裝","size":"S","price":160.5}
POST /my_store/_doc/_bulk
{"index":{}}
{"productName":"2017春裝女褲","size":"L","price":100.5}
{"index":{}}
{"productName":"2017夏裝女褲","size":"M","price":110.5}
{"index":{}}
{"productName":"2018秋裝女鞋","size":"S","price":120.5}
{"index":{}}
{"productName":"2018冬裝女鞋裝","size":"M","price":130.5}
{"index":{}}
{"productName":"2019春裝男褲","size":"S","price":140.5}
{"index":{}}
{"productName":"2019夏裝男褲","size":"L","price":150.5}
{"index":{}}
{"productName":"2019秋裝男鞋","size":"S","price":160.5}
{"index":{}}
{"productName":"2019冬裝男鞋","size":"S","price":160.5}
#獲得總記錄數(shù)
GET /my_store/_count
#查看索引所有數(shù)據(jù)
GET /my_store/_search
#查看索引所有數(shù)據(jù),排序,分頁
GET /my_store/_search
{
"query": { "match_all": {} },
"sort": [
{ "price": "asc" }
],
"from": 0,
"size": 5
}
#條件檢索
GET /my_store/_search
{
"query": { "match": { "size": "S" } }
}
#聚合
GET /my_store/_search
{
"query": {
"match": {
"productName": "春裝"
}
},
"size": 0,
"aggs": {
"sizes": {
"terms": {
"field": "price"
}
}
}
}
#刪除所有
POST /my_store/_delete_by_query
{
"query": {
"match_all": {
}
}
}
在華為云CCE中部署
# elasticsearch
鏡像:elasticsearch:7.6.0
生命周期 -- 啟動后:
/bin/bash
-c
sleep 1s;sed -i '$axpack.security.enabled: true' /usr/share/elasticsearch/config/elasticsearch.yml
環(huán)境變量:
discovery.type single-node
數(shù)據(jù)存儲:
sfs
/usr/share/elasticsearch/data es/data
/usr/share/elasticsearch/plugins es/plugins
#注意:這里必須是SFS,不能是OBS(OBS非常的慢,經(jīng)常會超時)
訪問方式:
服務名稱:elasticsearch:9200 (一定要是這個名稱,因為kibana的kibana.yml里默認配置的是elasticsearch:9200)
#如果這里不是上面配置方式,還要做kibana.yml配置文件的修改
# kibana
鏡像:kibana:7.6.0
生命周期 -- 啟動后:
/bin/bash
-c
sleep 1s;sed -i '$ai18n.locale: "zh-CN"\nelasticsearch.username: "kibana"\nelasticsearch.password: "123456"' /usr/share/kibana/config/kibana.yml
使用Logstash進行數(shù)據(jù)遷移
#參考
https://support.huaweicloud.com/bestpractice-css/css_07_0009.html
https://help.aliyun.com/document_detail/418418.html#section-wpf-9cg-1m1
#購買一臺新的遷移ECS
$ yum install java
$ yum install python
#下載logstash-oss
$ wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-7.6.0-x86_64.rpm
$ yum install logstash-oss-7.6.0-x86_64.rpm
$ vim /etc/logstash/jvm.options
-Xms4g
-Xmx4g
$ cd /etc/logstash/conf.d/
$ vim logstash-es-es-all.conf
$ /usr/share/logstash/bin/logstash --path.settings /etc/logstash
#日志位置:/var/log/logstash/
文章來源地址http://www.zghlxwxcb.cn/news/detail-803379.html
文章來源:http://www.zghlxwxcb.cn/news/detail-803379.html
到了這里,關于容器化(Docker、K8S)部署Elasticsearch + Kibana的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!