说明:Linux不允许root用户启动elasticsearch,所以本地新建es用户,以下所有操作都是基于es用户环境。
一、下载安装
1.官网地址:https://www.elastic.co/cn/elasticsearch/
由于官网下载巨慢,推荐华为云下载,地址:
ElasticSearch: https://mirrors.huaweicloud.com/elasticsearch/?C=N&O=D
logstash: https://mirrors.huaweicloud.com/logstash/?C=N&O=D
kibana: https://mirrors.huaweicloud.com/kibana/?C=N&O=D
找到对应的版本下载即可,我用的是elasticsearch-7.6.1,对应的logstash和kibana也为7.6.1
2.解压安装
elasticsearch本身是有java代码写的,安装使用前确保本地已有jdk1.8环境。
elasticsearch秉承开箱即用原则,因此将下载好的压缩包elasticsearch-7.6.1-linux-x86_64.tar.gz直接解压到/usr/local/elasticsearch/elasticsearch-7.6.1即可。
3.修改配置文件
根据机器大小,可修改elasticsearch所需要的虚拟内存大小,在config/jvm.options默认的是1g,我本地调的512m
vim config/jvm.options
-Xms512m
-Xmx512m
elasticsearch默认的端口是9200,我们可以在 config/elasticsearch.yml对其进行更改,也可跳过。
如果是单机环境,还是要配置集群名称,因为elasticsearch启动会默认查找集群主节点,不配置会报错。
vim config/elasticsearch.yml
#配置集群名称
cluster.name: my-application
node.name: node-1
cluster.initial_master_nodes: ["node-1"]
#允许所有用户访问(不设置只能本机访问)
network.host: 0.0.0.0
#解决跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
4.启动
sh bin/elasticsearch
此时启动会报错,报bin/elasticsearch-env这个文件 116行(done < <(env))错误,
解决方式,vim elasticsearch-env把启动行改为
#set -e -o pipefail
set +o posix
重新启动sh bin/elasticsearch -d (后台启动)
访问121.43.159.76:9200 (121.43.159.76是服务器ip)
{
"name" : "node-1",
"cluster_name" : "my-application",
"cluster_uuid" : "ifQcgLrBR62_s9thyJx6-A",
"version" : {
"number" : "7.6.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
"build_date" : "2020-02-29T00:15:25.529771Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
到此,elasticsearch 安装启动成功。
二、插件配置
1.elasticsearch-head安装
在安装elasticsearch-head之前,要安装node环境
以我本地为例,执行以下命令
cd /usr/local/node.js/
wget https://nodejs.org/dist/v12.18.1/node-v12.18.3-linux-x64.tar.xz
tar xf node-v12.18.3-linux-x64.tar.xz
配置node环境变量
vim /etc/profile
export NODE_HOME=/usr/local/node.js/node-v12.18.3-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
修改立即生效
source /etc/profile
接下来就可以进入elasticsearch-head启动:
依次执行以下命令
cd /usr/local/elasticsearch-head/
cnpm install (npm也可以,但是cnpm是淘宝的,速度更快)
npm run start (或者后台命令启动 nohup npm start & )
访问http://121.43.159.76:9100/ 成功
2.kibana安装
解压对应版本的kibana,
文件授权
chown -R es:es /usr/local/kibana/kibana-7.6.1-linux-x86_64/
chmod 770 /usr/local/kibana/kibana-7.6.1-linux-x86_64
修改config/kibana.yml配置文件
server.host: "0.0.0.0" (外网可以访问)
i18n.locale: "zh-CN" (汉化)
启动
cd /usr/local/kibana/kibana-7.6.1-linux-x86_64/bin
nohup ./kibana & (后台启动)
3.ik分词器安装使用
github地址:https://github.com/medcl/elasticsearch-analysis-ik
下载源码后,执行 mvn install
在target\releases文件夹下生成压缩包,直接把压缩包解压到linux服务器上elasticsearch-7.6.1/plugins/ik文件夹下,重启es即可
访问 http://121.43.159.76:9200/_cat/plugins 可以查看当前es已加载的插件
ik分词器效果
4.logstash安装使用
解压对应版本的logstash
添加配置文件
cd /usr/local/logstash/logstash-7.6.1/config
vim input.conf 添加一下配置信息:
input{
file{
path => "/data/adinfo/logName_IS_UNDEFINED/shoppingmall-service-stdouts.log.2020-09-20.0.log"
start_position => "beginning"
type => "dy_tomcat_log"
}
}
vim output.conf 添加一下配置信息:
output {
if [type] == "dy_tomcat_log" {
elasticsearch {
hosts => ["121.43.159.76:9200"] #elasticsearch地址
index => "dytomcat-%{+YYYY.MM.dd}" #索引的名称
id => "output_1" #自定义id
}
}
}
校验配置文件正确性:
/usr/local/logstash/logstash-7.6.1/bin/logstash -t -f /usr/local/logstash/logstash-7.6.1/config/input.conf
文件会默认向/usr/local/logstash/logstash-7.6.1/data目录下写文件,因此要授权文件:
chmod 777 /usr/local/logstash/logstash-7.6.1/data/
启动logstash:
nohup bin/logstash -f config/ --config.reload.automatic &