Elasticsearch 7.x安裝配置介紹

1.安裝
1.1 安裝Elasticsearch
導入Elasticsearch GPG KEY:html

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
添加elasticsearch的yum repo文件,使用清華的yum源鏡像:node

cd /etc/yum.repos.d
vi elasticsearch7.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://mirror.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
安裝並啓動ES:json

yum install elasticsearch
systemctl start elasticsearch
systemctl status elasticsearch
systemctl enable elasticsearch
查看系統內核參數,確認安裝過程已經對``完成了設置:centos

sysctl vm.max_map_count
vm.max_map_count = 262144
檢查ES正常運行:服務器

curl -X GET "localhost:9200/?pretty"
{
"name" : "centos7",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "7wWOyxwyRiuPIC80FjewmQ",
"version" : {
"number" : "7.3.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "de777fa",
"build_date" : "2019-07-24T18:30:11.767338Z",
"build_snapshot" : false,
"lucene_version" : "8.1.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
使用yum安裝的elasticsearch,ES默認安裝的主目錄在/usr/share/elasticsearch中,從ES 7.x開始內置了JDK,能夠在安裝的主目錄中找到jdk目錄。 配置文件的默認位置爲/etc/elasticsearch/elasticsearch.yml,同時還有一個系統配置文件位於/etc/sysconfig/elasticsearch,能夠設置諸如ES_JAVA_OPTS等不少配置,另外有專門的/etc/elasticsearch/jvm.options配置文件可配置ES的JVM配置(ES官方博客中有一篇專門介紹ES JVM堆內存配置的文章https://www.elastic.co/blog/a-heap-of-trouble)。 elasticsearch.yml中默認配置的數據目錄和日誌目錄以下:path.data: /var/lib/elasticsearch,path.logs: /var/log/elasticsearch。app

接下來安裝國際化分詞插件analysis-icu:curl

/usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
/usr/share/elasticsearch/bin/elasticsearch-plugin list
analysis-icu
1.2 集羣配置
測試環境準備兩個節點,elasticsearch.yml中針對集羣配置以下:jvm

cluster.name: my-cluster
node.name: es-01
network.host: 192.168.99.21 #network.host: 192.168.99.22
discovery.seed_hosts: ["192.168.99.21", "192.168.99.22"]
查看集羣狀態和集羣節點列表:elasticsearch

curl -X GET "192.168.99.21:9200/_cat/health?pretty"
my-cluster green 2 2 0 0 0 0 0 0 - 100.0%
curl -X GET "192.168.99.21:9200/_cat/nodes"
192.168.99.21 11 93 1 0.30 0.44 0.30 dim - es-01
192.168.99.22 8 94 2 0.43 0.52 0.42 dim * es-02
1.3 外部工具安裝head或cerebro
另外可進一步安裝外部工具elasticsearch-head或crebro。 這兩個工具均可以可視化的呈現ES集羣、節點及分片信息。ide

1.4 安裝Kibana
安裝ES時添加清華yum源中已經包含了kibana,下面直接使用yum安裝便可。

yum install kibana
使用yum安裝的kibana,默認安裝的主目錄在/usr/share/kibana中。kibana配置文件的位置爲/etc/kibana/kibana.yml。 下面修改kibana.yml中的server.host: "localhost"爲服務器具體的IPserver.host: "192.168.99.21",由於默認監聽的是localhost。 另外kibana.yaml中的elasticsearch.hosts: ["http://192.168.99.21:9200", "http://192.168.99.22:9200"]指定了kibana鏈接的ES的地址。 經過i18n.locale: 'zh-CN'可修改kibana的本地化配置。

啓動:

systemctl enable kibana
systemctl start kibana
kibana默認監聽5601端口,啓動成功後可以使用http://192.168.99.21:5601打開kibana的Web頁面。 kibana安裝完成後還可選擇安裝kibana的一些插件,具體插件的列表地址爲https://www.elastic.co/guide/en/kibana/current/known-plugins.html。

1.5 安裝Logstash
由於當前7.3版本的logstash中還未內置JDK,因此須要預先指定JAVA_HOME環境變量,這裏指定爲前面安裝elasticsearch時內置的JDK。

export JAVA_HOME=/usr/share/elasticsearch/jdk
安裝ES時添加清華yum源中也包含了kibana,直接使用yum安裝logstash便可。

yum install logstash
在啓動前還須要建立或修改文件/etc/sysconfig/logstash在其中加入環境變量JAVA_HOME=/usr/share/elasticsearch/jdk,這裏logstash和ES在同一臺機器上,因此直接使用ES的JDK。

啓動:

systemctl enable kibana
systemctl start kibana
Logstash使用JRuby語言開發,默認yum安裝的Logstash的各類配置文件在/etc/logstash下。

/etc/logstash/
├── conf.d
├── jvm.options
├── log4j2.properties
├── logstash-sample.conf
├── logstash.yml
├── pipelines.yml
└── startup.options
logstash.yml是logstash本身的setting配置文件,這個配置文件裏面能夠設置關於logstash自己的一些配置。

logstash-sample.conf是一個logstash收集處理數據即pipeline配置文件樣例,內容以下:

Sample Logstash configuration for creating a simple

Beats -> Logstash -> Elasticsearch pipeline.

input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
從這個配置文件能夠很容易看出logstash從beats input插件接受數據,並使用elastisearch output插件將數據輸出並索引到ES中。 通常一個典型的logstash配置形式是input -> filter -> output(elastisearch)。 filer插件用於對數據作處理,而logstash除了elasticsearch output外還提供了一些其餘的output插件。關於這input, filter, output這三種類型的插件列表能夠再官方文檔中找到:

Logstash Input plugins
Logstash Filter plugins
Logstash Output plugins
最後是pipeline.yml配置文件:

  • pipeline.id: main
    path.config: "/etc/logstash/conf.d/*.conf"
    默認只定義了一個id爲main的pipeline,將讀取/etc/logstash/conf.d目錄下全部的conf文件。

2.配置
2.1 每節點最大分片數配置
ES 7中集羣分片限制的默認值爲每節點最大1000個,能夠經過cluster.max_shards_per_node進行設置,例如:

curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
"persistent": {
"cluster.max_shards_per_node": 2000
}
}
'
查看是否設置生效:

curl "localhost:9200/_cluster/settings?pretty"{"persistent" : {"cluster" : {"max_shards_per_node" : "2000"}},"transient" : { }}

相關文章
相關標籤/搜索