Elasticsearch學(xué)習(xí)筆記(9)

目錄

在ELasticsearch安裝X-pack

默認(rèn)情況下,當(dāng)你安裝Elasticsearch時(shí),X-pack也被安裝了。請(qǐng)看installing Elasticsearch。

設(shè)置X-pack

X-Pack是一個(gè)彈性的堆棧擴(kuò)展,它提供安全、警報(bào)、監(jiān)視、報(bào)告、機(jī)器學(xué)習(xí)和許多其他功能。

如果你想嘗試X-Pack的所有功能,你可以開始一個(gè)30天的試用。在試用期結(jié)束時(shí),您可以購(gòu)買訂閱來(lái)繼續(xù)使用X-Pack組件的全部功能。更多信息請(qǐng)看 https://www.elastic.co/subscriptions.

  • 安裝X-pack
  • 配置監(jiān)控
  • 配置安全
  • 配置X-pack Java 客戶端
  • X-pack設(shè)置
  • X-pack引導(dǎo)檢查

在Elasticsearch中配置監(jiān)控

如果在集群中啟用彈性監(jiān)視特性,那么有兩種方法可以收集關(guān)于彈性搜索的度量:

收集監(jiān)控?cái)?shù)據(jù)

如果啟用集群中的彈性監(jiān)視特性,您可以選擇收集關(guān)于Elasticsearch的指標(biāo)。默認(rèn)情況下,監(jiān)視是啟用的,但是數(shù)據(jù)收集是禁用的。

該方法涉及到使用導(dǎo)出器將指標(biāo)發(fā)送到監(jiān)視集群。作為替代方法,請(qǐng)看Collecting monitoring data with Metribeat

注意:如果希望從Beats和Logstash等源收集監(jiān)視數(shù)據(jù)并將其路由到監(jiān)視集群,則必須遵循此方法。您還不能使用Metricbeat為這些產(chǎn)品運(yùn)送監(jiān)視數(shù)據(jù)。

先進(jìn)的監(jiān)測(cè)設(shè)置,使您能夠控制多久收集數(shù)據(jù),配置超時(shí),并為本地存儲(chǔ)的監(jiān)視索引設(shè)置保留期。您還可以調(diào)整監(jiān)視數(shù)據(jù)的顯示方式。

要了解一般的監(jiān)控,請(qǐng)看Monitoring the Elastic Stack

1、配置你的集群去收集監(jiān)控?cái)?shù)據(jù):
  a.查證xpack.monitoring.enabled設(shè)置為true,在集群中的每個(gè)節(jié)點(diǎn)上,這是它的默認(rèn)值。更多信息請(qǐng)看Monitoring settings.
  b.查證xpack.monitoring.elasticsearch.collection.enabled設(shè)置為true,在集群中的每個(gè)節(jié)點(diǎn)上,這是它的默認(rèn)值。
    注意:您可以在每個(gè)節(jié)點(diǎn)上在elasticsearch.yml文件中指定此設(shè)置,或者跨集群作為一個(gè)動(dòng)態(tài)集群設(shè)置。如果啟用了Elasticsearch安全特性,則必須具有monitor集群特權(quán)來(lái)查看集群設(shè)置和manage集群特權(quán)來(lái)更改它們。
    更多信息,請(qǐng)看Monitoring settingsCluster Update Settings
  c.在集群中的每個(gè)節(jié)點(diǎn)上設(shè)置xpack.monitoring.collection.enabledtrue。默認(rèn)情況下,它是不可用的(false)。
    注意:您可以在每個(gè)節(jié)點(diǎn)上在elasticsearch.yml文件中指定此設(shè)置,或者跨集群作為一個(gè)動(dòng)態(tài)集群設(shè)置。如果啟用了Elasticsearch安全特性,則必須具有monitor集群特權(quán)來(lái)查看集群設(shè)置和manage集群特權(quán)來(lái)更改它們。
  例如, 使用下面的APIs查看并更改此設(shè)置:

curl -X GET "localhost:9200/_cluster/settings"
curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "xpack.monitoring.collection.enabled": true
  }
}
'

或者,您可以在Kibana中啟用此設(shè)置。在側(cè)導(dǎo)航中,單擊Monitoring。如果數(shù)據(jù)收集被禁用,系統(tǒng)會(huì)提示您打開它。
  d.可選:指定要監(jiān)視哪些索引
  默認(rèn)情況下,監(jiān)測(cè)代理從所有的彈性搜索索引中收集數(shù)據(jù)。從特定索引收集數(shù)據(jù),配置xpack.monitoring.collection.indices設(shè)置。您可以指定多個(gè)索引用一個(gè)逗號(hào)分隔的列表,或者使用索引模式來(lái)匹配多個(gè)索引。例如:

xpack.monitoring.collection.indices: logstash-*, index1, test2

可以在索引名或模式前增加+或-顯式地包含或排除。例如,包含所有test開頭的所有索引除了test3,你可以指定為+test,-test3

2.確定在何處存儲(chǔ)監(jiān)視數(shù)據(jù)
  默認(rèn)情況下,數(shù)據(jù)通過(guò)使用local exporter存儲(chǔ)在同一個(gè)集群中。或者,你可以使用一個(gè)http exporter來(lái)發(fā)送數(shù)據(jù)到單獨(dú)的監(jiān)控集群。更多信息關(guān)于典型的監(jiān)控架構(gòu),請(qǐng)看How Monitoring Works.

3.如果你選擇用一個(gè)http exporter
a.在您希望監(jiān)視的集群上(通常稱為生產(chǎn)集群),配置每個(gè)節(jié)點(diǎn),以便將指標(biāo)發(fā)送到監(jiān)視集群。在elasticsearch.yml文件中配置一個(gè)HTTP exporter在xpack.monitoring.exporters設(shè)置上。例如:

xpack.monitoring.exporters:
  id1:
    type: http
    host: ["http://es-mon-1:9200", "http://es-mon2:9200"]

b.如果監(jiān)控集群上啟用了彈性安全特性,在將數(shù)據(jù)傳送到監(jiān)視集群時(shí),必須提供適當(dāng)?shù)膽{據(jù):
  i.在監(jiān)視集群上創(chuàng)建具有內(nèi)置的remote_monotoring_agent權(quán)限的用戶,或者,使用內(nèi)置的remote_monitoring_user用戶。
  ii.在每個(gè)節(jié)點(diǎn)的elasticsearch.yml文件中增加用戶id和密碼設(shè)置,在設(shè)置HTTP exporter的時(shí)候。
  例如:

xpack.monitoring.exporters:
  id1:
    type: http
    host: ["http://es-mon-1:9200", "http://es-mon2:9200"]
    auth.username: remote_monitoring_user
    auth.password: YOUR_PASSWORD

c.如果您將監(jiān)視集群配置為使用加密通信,則必須在主機(jī)設(shè)置中使用HTTPS協(xié)議。您還必須指定將用于驗(yàn)證監(jiān)視集群中的節(jié)點(diǎn)標(biāo)識(shí)的受信任CA證書。
i. 要將CA證書添加到Elasticsearch節(jié)點(diǎn)的受信任證書,可以使用certificate_authority設(shè)置指定PEM編碼的證書的位置。例如:

xpack.monitoring.exporters:
  id1:
    type: http
    host: ["https://es-mon1:9200", "https://es-mon2:9200"]
    auth:
      username: remote_monitoring_user
      password: YOUR_PASSWORD
    ssl:
      certificate_authorities: [ "/path/to/ca.crt" ]

ii.或者,您可以使用信任存儲(chǔ)庫(kù)(包含證書的Java Keystore文件)配置受信任證書。例如:

xpack.monitoring.exporters:
  id1:
    type: http
    host: ["https://es-mon1:9200", "https://es-mon2:9200"]
    auth:
      username: remote_monitoring_user
      password: YOUR_PASSWORD
    ssl:
      truststore.path: /path/to/file
      truststore.password: password

4.將集群配置為將監(jiān)視數(shù)據(jù)從Kibana、Beats和Logstash等源路由到監(jiān)視集群。有關(guān)配置每個(gè)產(chǎn)品以收集和發(fā)送監(jiān)視數(shù)據(jù)的信息,請(qǐng)參見Monitoring the Elastic Stack。

5.如果你更新設(shè)置在彈性搜索。在您的生產(chǎn)集群上的elasticsearch.yml文件,重新啟動(dòng)Elasticsearch。

TIP:您可能希望在重新啟動(dòng)節(jié)點(diǎn)之前暫時(shí)禁用碎片分配,以避免在安裝過(guò)程中不必要的碎片重新分配。

6.可選:Configure the indices that store the monitoring data

  1. View the monitoring data in Kibana.

用Metricbeat收集Elasticsearch監(jiān)控?cái)?shù)據(jù)

警告:此功能還處于測(cè)試階段,可能會(huì)有更改。設(shè)計(jì)和代碼還沒(méi)有正式的GA功能成熟,并且是按原樣提供的,沒(méi)有任何保證。Beta特性不受官方GA特性的SLA支持。

在6.5之后,你可以使用Metricbeat來(lái)收集關(guān)于ELasticsearch的數(shù)據(jù),并將其發(fā)送到監(jiān)控集群,而不是像Collecting monitoring data里介紹的使用通過(guò)導(dǎo)出器路由。

image

學(xué)習(xí)關(guān)于一般的監(jiān)控,參見Monitoring the Elastic Stack.

  1. 啟用監(jiān)控?cái)?shù)據(jù)的收集功能。設(shè)置xpack.monitoring.collection.enabletrue在生產(chǎn)集群的每個(gè)節(jié)點(diǎn)上,默認(rèn)情況下,這是不可用的(false)。

注意:****您可以在每個(gè)節(jié)點(diǎn)上在elasticsearch.yml文件中指定此設(shè)置,或者跨集群作為一個(gè)動(dòng)態(tài)集群設(shè)置。如果啟用了Elasticsearch安全特性,則必須具有monitor集群特權(quán)來(lái)查看集群設(shè)置和manage集群特權(quán)來(lái)更改它們。

例如:你可以使用下面的APIs來(lái)查看和改變這個(gè)設(shè)置:

curl -X GET "localhost:9200/_cluster/settings"
curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "xpack.monitoring.collection.enabled": true
  }
}
'

更多信息,請(qǐng)參見 Monitoring settingsCluster Update Settings.

2.禁用默認(rèn)的彈性搜索監(jiān)視指標(biāo)集合。設(shè)置xpack.monitoring.elasticsearch.collection.enabledfalse在生產(chǎn)集群的每個(gè)節(jié)點(diǎn)上。

注意:****您可以在每個(gè)節(jié)點(diǎn)上在elasticsearch.yml文件中指定此設(shè)置,或者跨集群作為一個(gè)動(dòng)態(tài)集群設(shè)置。如果啟用了Elasticsearch安全特性,則必須具有monitor集群特權(quán)來(lái)查看集群設(shè)置和manage集群特權(quán)來(lái)更改它們。
例如,你可以使用下面的API來(lái)改變這個(gè)設(shè)置:

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "xpack.monitoring.elasticsearch.collection.enabled": false
  }
}
'

保留xpack.monitoring.enabled設(shè)置為它的默認(rèn)值(true)。

  1. 在生產(chǎn)集群的每個(gè)節(jié)點(diǎn)上:
      a.1. Install Metricbeat.
      b.在Metricbeat中啟用彈性搜索模塊
      例如,要啟用在modules.d目錄下的默認(rèn)配置,運(yùn)行下面的命令:

metricbeat modules enable elasticsearch

更多信息,請(qǐng)參見 Specify which modules to runElasticsearch module.

c.在Metricbeat中配置Elasticsearch模塊
  你必須在moudles.d/elasticsearch.yml文件中指定以下設(shè)置:

- module: elasticsearch
metricsets:
  - ccr
  - cluster_stats
  - index
  - index_recovery
  - index_summary
  - ml_job
  - node_stats
  - shard
period: 10s
hosts: ["http://localhost:9200"]   # 1
xpack.enabled: true  # 2

1.此設(shè)置標(biāo)識(shí)用于訪問(wèn)Elasticsearch的主機(jī)和端口號(hào)。
2.此設(shè)置確保Kibana能夠成功讀取此監(jiān)視數(shù)據(jù)。也就是說(shuō),它存儲(chǔ)在與 exporters發(fā)送的監(jiān)控?cái)?shù)據(jù)相同的位置和格式中。

d.如果Elastic的安全特性被啟用, 您還必須提供用戶ID和密碼,以便Metricbeat能夠成功收集指標(biāo)。
  i.在生產(chǎn)集群上創(chuàng)建一個(gè)具有內(nèi)置的remote_monitoring_collector權(quán)限的用戶?;蛘?,使用內(nèi)置的用戶remote_monitoring_user.
  ii.增加usernamepassword設(shè)置到ELasticsearch模塊的配置文件。
  例如,在modules.d/elasticsearch.yml文件中增加下面的設(shè)置:

- module: elasticsearch
  ...
  username: remote_monitoring_user
  password: YOUR_PASSWORD

e.如果你配置了Elasticsearch使用加密通信,你必須通過(guò)HTTPS訪問(wèn)它。例如,在moudles.d/elasticsearch.yml文件里使用一個(gè)hosts設(shè)置像https://localhost:9200.

f.確定將監(jiān)視數(shù)據(jù)發(fā)送到何處。
TIPS:在生產(chǎn)環(huán)境,我們強(qiáng)烈建議使用一個(gè)分開的集群(稱為監(jiān)控集群)來(lái)存儲(chǔ)數(shù)據(jù)。使用分開的監(jiān)控集群防止生產(chǎn)集群中斷影響您訪問(wèn)監(jiān)視數(shù)據(jù)的能力。它還可以防止監(jiān)視活動(dòng)影響生產(chǎn)集群的性能。

例如,在Metricbeat配置文件(Metricbeat .yml)中指定Elasticsearch輸出信息:

output.elasticsearch:

hosts: ["https://es-mon-1:9200","https://es-mon-2:9200"]

在這個(gè)例子中,數(shù)據(jù)存儲(chǔ)在一個(gè)監(jiān)控集群帶有節(jié)點(diǎn)es-mon-1es-mon-2.

更多關(guān)于配置項(xiàng)的信息,請(qǐng)參見Configure the Elasticsearch output.

g.如果在集群上啟用了Elasticsearch的安全特性,你必須提供一個(gè)有效的用戶ID和密碼以便Metricbeat能夠成功的發(fā)送指標(biāo)。
  i.在監(jiān)控集群上創(chuàng)建一個(gè)具有內(nèi)置的remote_monitoring_agent權(quán)限的用戶?;蛘?,使用內(nèi)置的用戶remote_monitoring_user.
  ii.增加usernamepassword設(shè)置到ELasticsearch輸出信息配置在Metricbeat配置文件中(metricbeat.yml):

output.elasticsearch:
  ...
  username: remote_monitoring_user
  password: YOUR_PASSWORD

h.如果你配置了監(jiān)控集群使用加密通信,你必須通過(guò)HTPPS訪問(wèn)它。例如,使用一個(gè)hosts設(shè)置像https://es-mon-1:9200metricbeat.yml文件中。

4.啟動(dòng)ELasticsearch
5.啟動(dòng)Metricbeat
6.在Kibana查看監(jiān)控?cái)?shù)據(jù)

下一章 —— Elasticsearch學(xué)習(xí)筆記(10)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容