linux環(huán)境: centos7
es版本:7.0.0
java版本:1.8
搭建filebeat
安裝logstash
安裝java環(huán)境
單獨用戶
- 出于系統(tǒng)安全考慮設(shè)置的條件芝加。由于ElasticSearch可以接收用戶輸入的腳本并且執(zhí)行翔悠,為了系統(tǒng)安全考慮耳高, 需創(chuàng)建一個單獨的用戶用來運行ElasticSearch
增加組:groupadd esgroup
在組內(nèi)增加用戶:useradd esuser esgroup
刪除組:groupdel 組名
刪除用戶:userdel 用戶名
查看用戶所屬組:groups
- 給用戶增加sudo權(quán)限
在root用戶下
visudo 實際是打開/etc/sudoer文件
找到root ALL(ALL) ALL這行商乎,在下一行增加
用戶名 ALL(ALL) ALL
下載es
下載前切回esuser用戶
su esuser
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-linux-x86_64.tar.gz
tar -xvf elasticsearch-7.0.0-linux-x86_64.tar.gz
mv elasticsearch-7.0.0-linux-x86_64 elasticsearch-7.0.0
cd elasticsearch-7.0.0/bin/
./elasticsearch 即可啟動
檢驗
- curl 127.0.0.1:9200
{
"name" : "DLkUa_D",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "EqkNo-PMTKmTB4gygNW5SQ",
"version" : {
"number" : "5.5.1",
"build_hash" : "19c13d0",
"build_date" : "2017-07-18T20:44:24.823Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
開放遠程訪問
默認情況下羊苟,Elastic 只允許本機訪問寂曹,如果需要遠程訪問,可以修改 Elastic 安裝目錄的config/elasticsearch.yml文件衬潦,去掉network.host的注釋斤蔓,將它的值改成0.0.0.0,然后重新啟動 Elastic镀岛。
安裝分詞插件(默認是英文分詞詞弦牡,如字段是中文,需為其指定字段的字段文本和搜索詞的中文分詞器)
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.0.0/elasticsearch-analysis-ik-7.0.0.zip
重新啟動 Elastic哎媚,就會自動加載這個新安裝的插件喇伯。
基本上喊儡,凡是需要搜索的中文字段拨与,都要單獨設(shè)置一下。
安裝kibana
Kibana是一個為 ElasticSearch 提供的數(shù)據(jù)分析的 Web 接口艾猜÷蛐可使用它對日志進行高效的搜索捻悯、可視化、分析等各種操作淤毛。(注意kibana與elasticsearch的版本要一致)(暫不安裝X-PACK)
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.0.0-linux-x86_64.tar.gz
tar -xzf kibana-7.0.0-linux-x86_64.tar.gz
cd kibana-7.0.0-linux-x86_64/
更改配置文件:vi ./config/kibana.yml
server.port: 5601
server.host: "192.168.242.121"
elasticsearch.hosts: ["http://192.168.242.121:9200"]
運行:./kibana-7.0.0-linux-x86_64/bin/kibana
在后臺不輸出日志的方式運行:nohup ./kibana-7.0.0-linux-x86_64/bin/kibana > /dev/null 2>&1 &
訪問地址:http://localhost:5601
集群搭建
安裝es過程中可能出現(xiàn)的錯誤
- 如提示
AccessDeniedException: /usr/local/es/elasticsearch-7.0.0/config/elasticsearch.yml
則切到root用戶賦予該用戶對這個文件的讀權(quán)限
chown esuser /usr/local/es/elasticsearch-5.5.1/config/elasticsearch.yml -R
- 如提示
AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")
則改變elasticsearch文件夾所有者到當前用戶
sudo chown -R esuser:esgroup elasticsearch-7.7.0/
- 如提示
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
sudo vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360 單個jvm能開啟的最大線程數(shù)
并執(zhí)行命令:
sudo sysctl -p
- 如提示
the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured(該問題在安裝5.5.1時未遇到今缚,7.0.0時遇到了)
vi ./config/elasticsearch.yml
將
#cluster.initial_master_nodes: ["node-1", "node-2"]
修改為
cluster.initial_master_nodes: ["node-1"]
- 如提示
max number of threads [3795] for user [esuser] is too low, increase to at least [4096]
linux最大線程數(shù)(ulimit -u可以查看)
root用戶下進行: cat /etc/security/limits.d/20-nproc.conf
注釋這兩行:(最前面加#)
* soft nproc 2048
root soft nproc unlimited
在后面加四行:
* soft nproc 5000
* hard nproc 5000
root soft nproc 5000
root hard nproc 5000
- 如提示
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
sudo vi /etc/security/limits.conf 用戶最大打開文件數(shù)(ulimit -n可以查看)
添加如下內(nèi)容:
soft nofile 65536
hard nofile 131072
soft nproc 2048
hard nproc 4096
sudo vi /etc/pam.d/common-session
添加如下內(nèi)容:
session required pam_limits.so
sudo vi /etc/pam.d/common-session-noninteractive
添加如下內(nèi)容:
session required pam_limits.so
修改/etc/profile增加一條
ulimit -n 65536
重啟sshd服務
/etc/init.d/sshd restart
重新登陸es用戶
- 本地可以訪問外網(wǎng)無法訪問
關(guān)閉或配置 selinux和防火墻