無法連接到集群如何處理?
遇到該(gai)問(wen)題,請(qing)按(an)照如下操作步(bu)驟排查(cha)解(jie)決。
1.先(xian)確認ECS實例和集群是否在同一個VPC。
- 如果在,執行步驟2。
- 如果不在,需要重新創建ECS實例,使之和集群在同一個VPC下。
2.查看集群的安全(quan)組的出方向和(he)入方向是否(fou)已(yi)允許9200端口(kou)(TCP協議(yi)),或(huo)者允許的端口(kou)范圍已(yi)包含9200端口(kou)(TCP協議(yi))。
- 如果是,執行步驟3。
- 如果不是,請前往VPC頁面,設置“安全組”的出方向和入方向已允許9200端口或允許的端口范圍已包含9200端口。
3.查看ECS實例(li)是否添(tian)加安全組。
- 如果有,檢查安全組的配置規則是否滿足要求,請參見“集群管理”中集群信息表格中“安全組”的描述,然后執行步驟4。
- 如果沒有,從ECS的實例詳情頁面,進入VPC頁面,選擇“安全組”,添加安全組。
4.在ECS實例上,測試(shi)是否(fou)可以正常連接到(dao)集群。
ssh <節點的內網訪問地址和端口號>
說明當集群包含多個節點時,需要逐個節點測試是否可以正常連接到該集群中的每個節點。
如果可以通信,說明網絡是正常的。
如(ru)果端口不通,請聯系技術支持協助(zhu)排查。
為什么集群創建失敗?
集群創建失敗原因有(you)如下3種:
- 資源配額不足,無法創建集群。建議申請足夠的資源配額。
- 如果集群配置信息中,“安全組”的“端口范圍/ICMP類型”不包含“9200”端口,導致集群創建失敗。請修改安全組信息或選擇其他可用安全組。
- 7.6.2以及7.6.2之后的版本,集群內通信端口9300默認開放在用戶VPC的子網上面。創建集群時需要確認所選安全組是否放通子網內的9300通信端口,如果未放通,請修改安全組信息或選擇其他可用安全組。
無法備份索引?
索引(yin)的備份是通過(guo)創建集群快照(zhao)實現的。
遇到無(wu)法備份索引問題,請按照如下操作步(bu)驟排查解(jie)決。
排查集群的創建時間
1.登錄云搜(sou)索服務管理(li)控制臺。
2.在左側(ce)導航(hang)欄,單擊“集群(qun)管理”。
3.在(zai)“集(ji)群(qun)管理(li)”頁面上集(ji)群(qun)列表中的“創建(jian)時(shi)間”列,查看待(dai)備份索引的集(ji)群(qun)的創建(jian)時(shi)間。
- 如果創建時間早于2018年3月10日,則創建該集群時備份與恢復索引功能尚未上線,當前無法為該集群備份索引。
- 如果創建時間晚于2018年3月10日,則需要排查當前登錄所用的賬號或IAM用戶是否具有備份索引的權限,具體操作請參見下方 排查是否有權限。
排查是否有權限
1.登(deng)錄統一身(shen)份認證服務管理控制臺。
2.查(cha)看當前登(deng)錄所用的賬號(hao)或IAM用戶所屬(shu)的用戶組。
具體操作請參見統一身份認證用戶指南中有關查看和編輯用戶信(xin)息的相關章節(jie)。
3.查看用戶(hu)組的(de)權限中是否包含:“全局服務”中“對(dui)象存(cun)儲服務”項目的(de)“OBS Administrator”權限、當前所(suo)屬區域的(de)“Elasticsearch Administrator”權限。
具體操作請參見統一身份認證用戶指(zhi)南中有關查(cha)看(kan)或修改用戶組的相(xiang)關章(zhang)節。
- 如果用戶組的權限中不包含以上兩個權限,請執行步驟4。
- 如果用戶組的權限中包含以上兩個權限,請聯系技術支持協助解決。
4.為用戶(hu)組添加:“全局(ju)服(fu)務”中“對(dui)象(xiang)存儲服(fu)務”項目(mu)的“OBS Administrator”權限(xian)、當前(qian)所屬區域的“Elasticsearch Administrator”權限(xian)。
具體操作請參見統一身份認證用戶指南中有關(guan)(guan)查看或修改(gai)用戶組的相關(guan)(guan)章節。
云搜索服務支持哪些訪問方式?
云搜索(suo)服務支(zhi)持以下(xia)訪問方式(shi):
- Restful API
- Transport Client
- Rest Client
使用Transport Client訪問(wen)云服務時,需要確(que)保客戶端(duan)與服務端(duan)的版(ban)本一致,否則可(ke)能(neng)出現無(wu)法(fa)訪問(wen)的情況。
Transport Client不推薦使(shi)用,建議使(shi)用High Level Rest Client。
云搜索服務中是否支持開源Elasticsearch的API或功能?
兼(jian)容開(kai)源(yuan) Elasticsearch 和(he) OpenSearch 軟件原生(sheng)(sheng)接口,并支持 Logstash、Beats、 Kibana 等周邊生(sheng)(sheng)態(tai)。
云搜索服務是否支持Logstash對接?
支持(chi)Logstash對(dui)接,用戶需要申(shen)請一臺ECS來安裝Logstash并進(jin)行(xing)配置。
云搜索服務支持哪些搜索功能?
云搜(sou)(sou)索(suo)(suo)服務支(zhi)持(chi)的搜(sou)(sou)索(suo)(suo)功能包括強大(da)的全文檢索(suo)(suo),高亮顯(xian)示,切(qie)面搜(sou)(sou)索(suo)(suo),近實(shi)時索(suo)(suo)引(yin),動態聚類,豐(feng)富的文檔(dang)(如Word、PDF等(deng)格式)處理和地理信息搜(sou)(sou)索(suo)(suo)等(deng)。
為什么集群創建失敗?
集群創建失敗原因有如下(xia)3種:
- 資源配額不足,無法創建集群。建議申請足夠的資源配額。
- 如果集群配置信息中,“安全組”的“端口范圍/ICMP類型”不包含“9200”端口,導致集群創建失敗。請修改安全組信息或選擇其他可用安全組。
- 7.6.2以及7.6.2之后的版本,集群內通信端口9300默認開放在用戶VPC的子網上面。創建集群時需要確認所選安全組是否放通子網內的9300通信端口,如果未放通,請修改安全組信息或選擇其他可用安全組。
無法備份索引?
索(suo)引(yin)的備份是通過創建集群快照實現的。遇到無法備份索(suo)引(yin)問題,請(qing)按照如下操作(zuo)步驟(zou)排查解(jie)決。
排查集群的創建時間
1.登(deng)錄云搜(sou)索服務(wu)管理控制臺。
2.在左(zuo)側導航(hang)欄,單擊“集群管(guan)理”。
3.在“集(ji)群管理”頁面上集(ji)群列表(biao)中的“創建時(shi)間”列,查看(kan)待備份索引的集(ji)群的創建時(shi)間。
?如果創建時間早于2018年3月10日,則創建該集群(qun)時備(bei)份與恢復索引功能尚未(wei)上線,當前無法(fa)為該集群(qun)備(bei)份索引。
?如果創建時間晚(wan)于2018年3月10日,則需要排查當(dang)前登錄所(suo)用的(de)賬號或IAM用戶是(shi)否(fou)具有備份索引的(de)權(quan)限,具體操作請參見下(xia)方“排查是(shi)否(fou)有權(quan)限”。
排查是否有權限
1.登錄統一身份(fen)認(ren)證服務管(guan)理控(kong)制臺(tai)。
2.查看(kan)當前登錄所用(yong)的賬號(hao)或IAM用(yong)戶(hu)(hu)所屬的用(yong)戶(hu)(hu)組。
具體操作請參見統一身份認證用戶(hu)指南中(zhong)有關查看或編(bian)輯(ji)用戶(hu)信息(xi)的相關章(zhang)節。
3.查看用戶組的(de)權限(xian)(xian)中是否包含(han):“全局服務(wu)”中“對象存儲(chu)服務(wu)”項目(mu)的(de)“OBS Administrator”權限(xian)(xian)、當前所屬區域的(de)“Elasticsearch Administrator”權限(xian)(xian)。
具體操作請參見統一身份認證用(yong)戶指(zhi)南(nan)中有關查看或修改用(yong)戶信(xin)息(xi)的相關章節(jie)。
?如(ru)果用戶組的權(quan)限中(zhong)不包含以上兩個權(quan)限,請執(zhi)行步驟(zou)4。
?如果用戶組的權限中包含以上(shang)兩個(ge)權限,請聯系(xi)技術(shu)支(zhi)持(chi)協助解決(jue)。
4.為用戶組(zu)添加(jia):“全局服(fu)務(wu)(wu)”中(zhong)“對象存儲服(fu)務(wu)(wu)”項目(mu)的(de)(de)“OBS Administrator”權(quan)限(xian)、當前(qian)所屬區域的(de)(de)“Elasticsearch Administrator”權(quan)限(xian)。
具體操作請參見統一身份認證用(yong)戶(hu)指南中有關(guan)查看或修改用(yong)戶(hu)信息的(de)相(xiang)關(guan)章節。
如何使用Elasticsearch自定義評分查詢
通過Elasticsearch可以對匹(pi)配(pei)的文檔進行(xing)評分。本節介紹(shao)如何(he)使用Elasticsearch自定義評分查詢(xun)。
操作步驟
1.登錄云(yun)搜索服務(wu)管(guan)理控制(zhi)臺。
2.在左側導航欄中(zhong),選(xuan)擇“集(ji)群管(guan)理(li)”,進入集(ji)群列表頁面(mian)。
3.在(zai)集群(qun)列(lie)表頁面(mian)中,單擊(ji)集群(qun)“操作”列(lie)的“Kibana”。
4.在Kibana的(de)左(zuo)側導(dao)航(hang)中選擇(ze)“Dev Tools”,單(dan)擊“Get to work”,進入Kibana的(de)Console界面。
- 在Kibana的Console界面中,執行命令創建索引,并指定自定義映射來定義數據類型。
例如(ru):現在有“tv.json”數(shu)據(ju)文件,數(shu)據(ju)如(ru)下所示。
{
"tv":[
{ "name": "tv1", "description": "USB, DisplayPort", "vote": 0.98 }
{ "name": "tv2", "description": "USB, HDMI", "vote": 0.99 }
{ "name": "tv3", "description": "USB", "vote": 0.5 }
{ "name": "tv4", "description": "USB, HDMI, DisplayPort", "vote": 0.7 }
]
}
可以(yi)執行(xing)如(ru)下(xia)命令(ling),創建索引“mall”,并指定自定義映射(she)來定義數(shu)據(ju)類(lei)型。
PUT /mall?pretty
{
"mappings": {
"tv": {
"properties": {
"description": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"vote": {
"type": "float"
}
}
}
}
}
6.執(zhi)行如下(xia)命令,將(jiang)“tv.json”文件中的數據導入(ru)到“mall”索(suo)引中。
POST /mall/tv/_bulk?pretty
{ "index": {"_id": "1"}}
{ "name": "tv1", "description": "USB, DisplayPort", "vote": 0.98 }
{ "index": {"_id": "2"}}
{ "name": "tv2", "description": "USB, HDMI", "vote": 0.99 }
{ "index": {"_id": "3"}}
{ "name": "tv3", "description": "USB", "vote": 0.5 }
{ "index": {"_id": "4"}}
{ "name": "tv4", "description": "USB, HDMI, DisplayPort", "vote": 0.7 }
7.自(zi)定(ding)義評分查詢數據。
?用絕對好評率(lv)計算總(zong)分,按照總(zong)分由高到低的順序排(pai)列搜索結果。
假設(she)用(yong)戶想(xiang)要查詢有USB接(jie)(jie)口、HDMI接(jie)(jie)口、DisplayPort接(jie)(jie)口的(de)電視機,接(jie)(jie)口出現(xian),則記(ji) 1 分(fen),不(bu)出現(xian),則記(ji) 0 分(fen),在前面的(de)得(de)分(fen)上乘(cheng)以絕對好評率為(wei)總分(fen)。可(ke)以執行如下命令(ling)按照總分(fen)由高到(dao)低的(de)順序排列搜索結(jie)果。
GET /mall/tv/_search?pretty
{
"query":{
"function_score":{
"query":{
"bool":{
"should":[
{"constant_score":{
"query":{"match":{"description":"USB"}}
}},
{"constant_score":{
"query":{"match":{"description":"HDMI"}}
}},
{"constant_score":{
"query":{"match":{"description":"DisplayPort"}}
}}
]
}
},
"field_value_factor":{
"field":"vote",
"factor":1
},
"boost_mode":"multiply",
"max_boost":10
}
}
}
上面示例(li)中總分計算公式:new_score = query_score * (factor * vote)
返回結果如下所示。
{
"took": 13,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 2.1,
"hits": [
{
"_index": "mall",
"_type": "tv",
"_id": "4",
"_score": 2.1,
"_source": {
"name": "tv4",
"description": "USB, HDMI, DisplayPort",
"vote": 0.7
}
},
{
"_index": "mall",
"_type": "tv",
"_id": "2",
"_score": 1.98,
"_source": {
"name": "tv2",
"description": "USB, HDMI",
"vote": 0.99
}
},
{
"_index": "mall",
"_type": "tv",
"_id": "1",
"_score": 1.96,
"_source": {
"name": "tv1",
"description": "USB, DisplayPort",
"vote": 0.98
}
},
{
"_index": "mall",
"_type": "tv",
"_id": "3",
"_score": 0.5,
"_source": {
"name": "tv3",
"description": "USB",
"vote": 0.5
}
}
]
}
}
從(cong)上面(mian)返回結(jie)果可(ke)以看出Elasticsearch搜索引(yin)擎使用絕對好評率(lv)計算(suan)電視機的總分(fen),并(bing)將電視機按(an)照總分(fen)由高(gao)到低的順序排列顯示。
?用相對好評率計算總分(fen),按(an)照總分(fen)由高到低的順(shun)序排列搜(sou)索結果。
假設用(yong)戶想要查詢有USB接口、HDMI接口、DisplayPort接口的電視機,接口出現,則記 1 分(fen)(fen)(fen)(fen),不(bu)出現,則記 0 分(fen)(fen)(fen)(fen),在(zai)前面的得(de)分(fen)(fen)(fen)(fen)上乘以(yi)相對(dui)好評(ping)率(lv)(lv)為(wei)總分(fen)(fen)(fen)(fen)。為(wei)了避(bi)免不(bu)正常(chang)的好評(ping)率(lv)(lv)對(dui)查詢結果的影響,不(bu)用(yong)絕對(dui)好評(ping)率(lv)(lv)作為(wei)評(ping)分(fen)(fen)(fen)(fen)因素,設定好評(ping)率(lv)(lv)的門限值為(wei)0.8,高于門限值時,好評(ping)率(lv)(lv)按1計算,低(di)(di)于或等于門限值時,好評(ping)率(lv)(lv)按0.5計算。可以(yi)執行如下命(ming)令按照總分(fen)(fen)(fen)(fen)由(you)高到低(di)(di)的順(shun)序排列搜索(suo)結果。
GET /mall/tv/_search?pretty
{
"query":{
"function_score":{
"query":{
"bool":{
"should":[
{"constant_score":{
"query":{"match":{"description":"USB"}}
}},
{"constant_score":{
"query":{"match":{"description":"HDMI"}}
}},
{"constant_score":{
"query":{"match":{"description":"DisplayPort"}}
}}
]
}
},
"script_score":{
"script":{
"params":{"threshold":0.8},
"inline":"if (doc[\"vote\"].value > params.threshold) {return 1;} return 0.5;"
}
},
"boost_mode":"multiply",
"max_boost":10
}
}
}
上(shang)面示(shi)例中總分計算(suan)公式(shi):new_score = query_score * vote(當vote > 0.8時,取(qu)值為1;當vote ≤ 0.8時,取(qu)值為0.5。)
返回結果如下所示。
{
"took": 634,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 2,
"hits": [
{
"_index": "mall",
"_type": "tv",
"_id": "2",
"_score": 2,
"_source": {
"name": "tv2",
"description": "USB, HDMI",
"vote": 0.99
}
},
{
"_index": "mall",
"_type": "tv",
"_id": "1",
"_score": 2,
"_source": {
"name": "tv1",
"description": "USB, DisplayPort",
"vote": 0.98
}
},
{
"_index": "mall",
"_type": "tv",
"_id": "4",
"_score": 1.5,
"_source": {
"name": "tv4",
"description": "USB, HDMI, DisplayPort",
"vote": 0.7
}
},
{
"_index": "mall",
"_type": "tv",
"_id": "3",
"_score": 0.5,
"_source": {
"name": "tv3",
"description": "USB",
"vote": 0.5
}
}
]
}
}
從上面返回(hui)結果可以看出Elasticsearch搜索(suo)引擎使用(yong)相對好評率計算電視(shi)機的總分(fen),并將電視(shi)機按照總分(fen)由高到低的順(shun)序排列顯示。
9200端口訪問失敗
問題現象
通過VPN專線或VPC的對等連接(jie)訪問ES集(ji)群的場景(jing)下,使用curl命令接(jie)入ES集(ji)群時(shi),無返回(hui)結果。
例如,執行(xing)如下命(ming)令接入集群,無(wu)返回結果。
curl -s '//<節點內網訪問地址>:9200'
原因分析
在(zai)“使(shi)用VPN專線訪問ES集(ji)群”或(huo)“通過VPC的(de)對等連接訪問ES集(ji)群”場景下,其所(suo)在(zai)的(de)客(ke)戶端與(yu)ES不在(zai)同一VPC下。因此,要求ES集(ji)群的(de)子網與(yu)其VPC具有不同的(de)網段。
例如,某(mou)一ES集(ji)群,選用(yong)的(de)(de)(de)(de)VPC為vpc-8e28,其網(wang)絡配置為192.168.0.0/16。選用(yong)了此VPC下的(de)(de)(de)(de)子網(wang)subnet-4a81,subnet-4a81子網(wang)的(de)(de)(de)(de)網(wang)段與vpc-8e28一致(zhi),均(jun)為192.168.0.0/16。此時,如果使用(yong)VPN專線訪(fang)問(wen)ES集(ji)群或通過VPC的(de)(de)(de)(de)對(dui)等連接訪(fang)問(wen)ES集(ji)群,會導致(zhi)此子網(wang)創建(jian)的(de)(de)(de)(de)機器內沒有該VPC對(dui)應(ying)的(de)(de)(de)(de)網(wang)關(guan),從而影響ES服務(wu)的(de)(de)(de)(de)默認(ren)路由的(de)(de)(de)(de)設(she)置,最終導致(zhi)9200端口訪(fang)問(wen)失敗。
處理步驟
當(dang)出現9200端(duan)口訪問失(shi)敗錯誤時,且ES集(ji)群狀態為(wei)可用狀態。執(zhi)行步驟如下所示:
1.進入ES服務管理(li)控制臺,在集群(qun)列(lie)表(biao)中(zhong),單擊集群(qun)名稱進入集群(qun)詳情頁(ye)面,查看此(ci)集群(qun)使用的(de)VPC和子網。
2.進入VPC服務管理控制臺,在(zai)虛擬私有云列表(biao)中,單(dan)擊(ji)ES集(ji)群使用(yong)的(de)VPC名稱,進入VPC詳情頁面。查看VPC和子網的(de)網段信息。
如(ru)下(xia)圖所示,VPC的(de)(de)網段(duan)信息(xi),與子網的(de)(de)網段(duan)信息(xi)一致。在(zai)使(shi)用(yong)VPN專線訪(fang)問(wen)或使(shi)用(yong)VPC對等(deng)連接訪(fang)問(wen)時,會導致9200端口訪(fang)問(wen)失敗(bai)。
查看網段信息


3.如果出現上述錯誤,請重(zhong)新創建集(ji)群(qun),并選擇一(yi)(yi)個網(wang)(wang)段(duan)與VPC不(bu)(bu)同的(de)子(zi)網(wang)(wang),如不(bu)(bu)存在這樣(yang)的(de)子(zi)網(wang)(wang),請在VPC管理控制臺(tai)重(zhong)新創建一(yi)(yi)個子(zi)網(wang)(wang)。
創建(jian)新的ES集(ji)群(qun)后,將舊集(ji)群(qun)的數據遷(qian)移至(zhi)新集(ji)群(qun)中,然(ran)后再通過VPN專(zhuan)線訪(fang)問或(huo)使用VPC對等連接訪(fang)問使用。

說明如果(guo)需要(yao)VPN專線訪(fang)問(wen)或使用VPC對等連接(jie)訪問ES集(ji)群時,請(qing)務(wu)必保證,新創建的ES集群,其(qi)VPC與子網,具備不(bu)同的網段信息。
Elasticsearch針對filebeat配置調優
問題現象
filebeat是(shi)性能(neng)非常(chang)(chang)出(chu)色(se)的文件采(cai)集工具,絕大(da)多數的業務日(ri)(ri)志(zhi)(zhi)可(ke)以很容易(yi)的在1秒內收集至elasticsearch內,但是(shi)個別日(ri)(ri)志(zhi)(zhi)量(liang)大(da)的業務日(ri)(ri)志(zhi)(zhi)無法及時(shi)(shi)收集,按照官方的默認配置通常(chang)(chang)1核CPU分配給filebeat時(shi)(shi),寫(xie)ES的速率低(di)于1M/S,這(zhe)里可(ke)以針對(dui)filebeat.yml配置文件做優化,提(ti)高寫(xie)入ES的性能(neng)。
原因分析
filebeat.yml的默認配(pei)置比較保守,在日志量很(hen)大的業務(wu)場景,需(xu)要修改(gai)filebeat.yml參數進行調優。
處理步驟
1.針(zhen)對filebeat.yml配置文件做參數(shu)優(you)化(hua),調整input端配置:
#根據實際情(qing)況(kuang)調大harvester_buffer_size參數(shu)(該參數(shu)是指每(mei)個harvester監控(kong)文件時,使用的buffer大小)。
harvester_buffer_size:40960000
#根(gen)據實(shi)際情況調大filebeat.spool_size參數(該參數是指(zhi)spooler的大小,一次(ci)Publish,上(shang)傳(chuan)多少(shao)行的日志(zhi)量(liang))。
filebeat.spool_size:250000
#根據實際情況調整(zheng) filebeat.idle_timeout參數(shu)(shu)(該參數(shu)(shu)是指spooler的超(chao)時(shi)(shi)時(shi)(shi)間,如果到了(le)超(chao)時(shi)(shi)時(shi)(shi)間,不(bu)論是否到達容量閾值,spooler會(hui)清空發送出去)。
filebeat.idle_timeout:1s
2.針對filebeat.yml配(pei)置文件(jian)做參數(shu)優(you)化,調整output.elasticsearch端配(pei)置:
#根據實際情況將worker參數(shu)調整為(wei)跟ES個數(shu)一致(該參數(shu)是(shi)指對(dui)應(ying)ES的個數(shu),默認(ren)1)。
worker:1
#根據(ju)實際情(qing)況調(diao)大bulk_max_size參(can)數(shu)(該參(can)數(shu)是(shi)(shi)指(zhi)單個(ge)elasticsearch批(pi)量API索引請求的最大事件數(shu),默認(ren)是(shi)(shi)50)。
bulk_max_size:15000
#根據實際情況調整flush_interval參數(該參數是(shi)指(zhi)新事件兩(liang)個批量API索引請求之間需要等待的(de)秒數,如(ru)果(guo)bulk_max_size在該值之前到達,額外的(de)批量索引請求生效)。
flush_interval:1s
集群使用故障
問題現象
Es-event 集(ji)群單擊進入(ru)kibana后,會出現一(yi)直卡(ka)在加載頁面中(zhong),不能進入(ru)kibana控制臺(tai)。
原因分析
瀏覽器緩存導(dao)致,清理緩存。
處理步驟
1.登(deng)錄(lu)云搜索服務管理控制臺。
2.在左側導航欄(lan),單擊“集群(qun)管(guan)理”。
3.在集群對(dui)應的“操(cao)作”列,單擊“Kibana”,打(da)開Kibana界(jie)面。
4.在kibana頁面(mian)按F12。
5.單(dan)擊“Network”,選中“data:image”,右鍵選擇“clear browser cache”,彈(dan)出對話彈(dan)框(kuang),單(dan)擊確定,關閉Kibana界面。
6.在集群對應的(de)“操作”列,單擊(ji)“Kibana”即(ji)可訪問。
如何使用NAT網關實現云搜索服務公網訪問
開通公網訪問云搜索服務操(cao)作視(shi)圖:
1.獲(huo)取云(yun)搜索服(fu)務信息
2.配置NAT網關
3.修改云搜索服務安全組規則
4.通過公(gong)網訪(fang)問云(yun)搜索服(fu)務

注意如果非安全模式集(ji)群使用此(ci)功(gong)能(neng),則會把集(ji)群數(shu)據(ju)直(zhi)接暴露到公網,請禁用此(ci)功(gong)能(neng)。
獲取云搜索服務信息
1.獲取云搜(sou)索服務內(nei)網(wang)訪(fang)問地址。
登錄云搜索(suo)服務的Console控制(zhi)臺,在集(ji)群創建成功后,可在集(ji)群管理頁(ye)面獲(huo)取集(ji)群訪(fang)問的“內(nei)網訪(fang)問地址(zhi)”。


2.獲取VPC和子網信(xin)息。
單擊(ji)集群(qun)“名稱/ID”,進入(ru)集群(qun)“基本信(xin)(xin)息(xi)”頁(ye)面,獲取VPC和子網信(xin)(xin)息(xi)。


配置NAT網關
1.創建(jian)NAT網關(guan)。
a. 登錄Console控制臺,選擇“服務列表”>“網(wang)絡”>“NAT網(wang)關”,進(jin)入網(wang)絡控制臺頁(ye)面。
b. 單擊“購買NAT網關”,配置NAT網關的相關信息。詳細請參考《NAT網關 用戶指南》購買****NAT 網關 。

說明“虛擬私有云”和“子(zi)網(wang)”配置為步驟2獲取的信息(xi)。
c. 配置完成后,單擊(ji)“立即購買(mai)”。
2.添加DNAT規(gui)則(ze)。
a.NAT網(wang)關購買成功(gong)后,在NAT控制臺,單擊購買成功(gong)的NAT網(wang)關“名稱”,進入NAT網(wang)關詳情頁面。
b. 選擇“DNAT規則”頁簽,單擊“添加DNAT規則”。詳細請參考NAT網關用(yong)戶指(zhi)南添加NAT規則。
說明l? 彈(dan)性公網IP:可以根據自己(ji)業(ye)務在彈性公網(wang)IP頁面創建(jian)。
l? 公網端口(kou):可(ke)以自(zi)定義。
l? 私網(wang)IP:云搜索服務的(de)內網(wang)訪問IP,即(ji)步驟1獲取(qu)的“內網訪問(wen)地址”。
l? 私網(wang)端(duan)口:9200
l? 如(ru)果創(chuang)建的(de)集群(qun)包含多(duo)個(ge)“內網訪(fang)問(wen)地址”,則需要添加多(duo)個(ge)DNAT規則。
c.添(tian)加完成后,單擊“確定”。
修改云搜索服務安全組規則
1.登錄(lu)云搜(sou)索服(fu)務的Console控制(zhi)臺,選擇對(dui)應的集(ji)群,單擊集(ji)群“名(ming)稱/ID”,進入(ru)集(ji)群“基本信息(xi)”頁(ye)面。
2.在“基本(ben)信息”頁面(mian),單(dan)擊“安全組(zu)”。


3.在“安全組”頁(ye)面,選(xuan)擇“入方向(xiang)規則”。
4.單擊“添加規則”,添加9200端口入方向規則。
5.配(pei)置完(wan)成后,單(dan)擊(ji)“確定”。
通過公網訪問云搜索服務
1.在瀏覽器(qi)中輸入//IP:port或者//IP:port,訪問云搜索服務(wu)。
- IP:port:彈性公網IP:端口號,即創建DNAT規則設置的彈性公網IP和公網端口。
- 如果集群開啟了 安全模式 ,請輸入//IP:port,并且輸入安全模式的用戶名和密碼。
- 如果集群未開啟 安全模式 ,請輸入//IP:port。
9200和9300端口是否都開放?
都開放。9200端口為外部訪問es集群端口,9300為節點之間通訊(xun)端口。
訪問9300端口有(you)以下幾(ji)種(zhong)方式(shi):
- 如果是同VPC同子網內可直接訪問。
- 如果是同VPC下跨子網訪問,需要單獨申請路由配置。
- 如果是不同的VPC不同的子網訪問,需要先通過對等連接,打通兩個VPC網絡,然后單獨申請路由配置,聯通兩個子網。
如何使用Elasticsearch清理過期數據,釋放磁盤存儲空間?
- 刪除單條索引數據命令。
curl -XDELETE //IP:9200/ 索引名
說明IP:任意一個集群節點的(de)IP地址。
- 刪除某一天logstash的所有數據命令,例如刪除19號所有數據。
非安全模式集群: curl -XDELETE '//IP:9200/logstash-2017.06.19' *
安全模式集群:curl -XDELETE -u username:password '//IP:9200/logstash-2017.06.19' -k
說明l? username:管(guan)理員帳戶名(ming)默認(ren)為admin。
l? password:創建集群時(shi)設(she)置的密碼。
l? IP:任意一個集群節(jie)點的IP地址。
如何配置ES集群雙副本?
1.在kibana里執行 GET _cat/indices?v 命令(ling)確認集群副(fu)本的數目。如果rep參數列為1,說明(ming)是雙副(fu)本。


2.如果不是,可以如下執行命令設置副(fu)本數(shu)。
PUT /index/_settings
{
"number_of_replicas" : 1 //表示需要設置的副本數
}
說明index為需要(yao)修改的索引名稱,需根據實(shi)際情況(kuang)進行修改。
如何清理索引數據?
- 手動清理:在kibana里執行 DELETE /my_index 命令。
- 自動化定期清理:可以寫定時任務調用清理索引的請求,定期執行。ES支持Opendistro Index State Management。詳見://opendistro.github.io/for-elasticsearch-docs/docs/im/ism/
json里設置了1個分片,是否可以通過修改配置,達到4分片,2副本的效果
索(suo)引一(yi)旦創建(jian)成功,主shards數量不可變。
修(xiu)改副(fu)本數,可通過在kibana中執行以下命令:
PUT /indexname/_settings
{
"number_of_replicas" : 1 //表示需要設置的副本數
}
說明index為需要修(xiu)改的索引名(ming)稱(cheng),需根(gen)據實際情況進行修(xiu)改。
Elasticsearch集群分片過多會有哪些影響
1.集(ji)(ji)群創(chuang)建分(fen)片的速度隨著集(ji)(ji)群分(fen)片數(shu)量增多(duo)而逐漸減低。
2.觸發Elasticsearch自動創建index時(shi),創建速度變(bian)慢會(hui)導致(zhi)(zhi)大量(liang)寫(xie)入請求堆積在內(nei)存中,嚴重時(shi)可導致(zhi)(zhi)集群(qun)崩潰。
3.分(fen)片過(guo)多時,如果不能及時掌控(kong)業務的變化,可能經(jing)常遇到(dao)單分(fen)片記錄(lu)超(chao)限(xian)、寫入(ru)拒絕等問題(ti)。
Elasticsearch集群設置默認分頁返回最大條數
解決方案
- 方法1:
打開kibana,在devtools界面(mian)執行如(ru)下命令(ling):
PUT _all/_settings?preserve_existing=true
{
"index.max_result_window" : "10000000"
}
- 方法2:
后臺執行如下命令進行設(she)置:
curl –XPUT ‘//localhost:9200/_all/_setting?preserve_existing=true’-d
{
"index.max_result_window":"1000000"
}
注意該(gai)配(pei)置會相應的(de)消耗內存與CPU,請謹慎設置。
使用delete_by_query命令刪除數據后,為什么磁盤使用率反而增加?
使用delete_by_query命令刪(shan)除(chu)(chu)數據(ju)(ju)并不(bu)是真正意義上(shang)的(de)物(wu)理刪(shan)除(chu)(chu),它僅僅是對數據(ju)(ju)增加了刪(shan)除(chu)(chu)標記。當再(zai)次搜(sou)索(suo)的(de)時(shi),會搜(sou)索(suo)全部數據(ju)(ju)后再(zai)過濾掉帶(dai)有刪(shan)除(chu)(chu)標記的(de)數據(ju)(ju)。
因此,該索引所占(zhan)的空間(jian)并(bing)不(bu)會因為(wei)執行磁(ci)盤刪除(chu)命令后馬上釋放(fang)掉,只(zhi)有等到下一次段合并(bing)時(shi)才真正的被物(wu)理刪除(chu),這個時(shi)候(hou)磁(ci)盤空間(jian)才會釋放(fang)。
相反,在查詢(xun)帶有刪(shan)除數據時需要占(zhan)用磁盤空間(jian),這時執行磁盤刪(shan)除命(ming)令(ling)不但沒有被釋放磁盤空間(jian),反而(er)磁盤使用率上升了。
ES集群如何清理緩存?
清理fielddata
進行聚合和排序時,會使用fielddata數據結構(gou),會占用較大(da)內存。
1.在Kibana執行如下命令,查看索引的fielddata占用情況。
DELETE /_search/scroll
{
"scroll_id" :
"DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
}
2.當fielddata占用內存過高時,可以執行如下命令清理 fielddata 。
POST /test/_cache/clear?fielddata=true
“test”為fielddata占(zhan)用內存較高(gao)的索引名稱。
清理segment
每個(ge)segment的FST結構都會被加載到內(nei)(nei)存中,并且這(zhe)些內(nei)(nei)存是不會被垃圾回(hui)收的。因此如果(guo)索引的segment數量過大,會導致內(nei)(nei)存使(shi)用率較高,建(jian)議定期進行清(qing)理。
1.在(zai)Kibana執(zhi)行如下命令,查看各節點的segment數量和(he)占用內(nei)存大(da)小。
GET /_cat/nodes?v&h=segments.count,segments.memory&s=segments.memory:desc
2.若segment占用內存過高時,可以通過刪除部(bu)分不用的(de)索引、關閉索引或定期合并不再更新的(de)索引等方(fang)式釋放內存。
清理cache
在Kibana執行如(ru)下(xia)命(ming)令清(qing)理(li)cache。
POST _cache/clear
Elasticsearch集群平均已用內存比例達到98%
問題現象
查看集群(qun)監控發(fa)現,ES集群(qun)“平(ping)均已用(yong)(yong)內(nei)存比例”一(yi)直(zhi)處于98%,用(yong)(yong)戶(hu)擔(dan)心(xin)內(nei)存比例過高(gao)是否(fou)對集群(qun)有影響(xiang)。
問題原因
在ES集群中,Elasticsearch會(hui)占用50%內存(cun)(cun),另外(wai)50%內存(cun)(cun)會(hui)被Lucene用于緩存(cun)(cun)文件(jian),因此節點(dian)內存(cun)(cun)占用會(hui)一直很高(gao),平均已(yi)用內存(cun)(cun)比(bi)例達到98%是正(zheng)常現象,請您放心使用。
解決方案
您(nin)可以(yi)關(guan)注“最大JVM堆使用(yong)率”和“平均JVM堆使用(yong)率”這兩個(ge)指標來監控集群內(nei)存使用(yong)情況。