ES简介
ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。 特点是:高可用,高扩展,是一种NOSQL的数据存储工具
ES安装前的准备
下载:可以自行到官网下载
elasticsearch-6.2.2.tar.gz
elasticsearch-head-master.zip
kibana-6.2.2-linux-x86_64.tar.gz
logstash-6.2.2.tar.gz
node-v8.9.1-linux-x64.tar.gz
(1)先创建虚拟机 创建ssh链接(可以看上一篇博客) 连接成功后在跟目录下创建一个文件夹 可以是software
进入software文件夹 把以上安装包 和jdk安装包(上一篇博客) 拖入software目录下:
先解压jdk 因为后面会使用,输入:tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/
新开一个窗口(方便起见)
在opt目录下对这些解压后的文件重新命名
mv jdk1.8.0_221/ java8
vi /etc/profile 配置jdk (详情请看上一篇博客)
export JAVA_HOME=/opt/java8
export CLASSPATH=.:
J
A
V
A
H
O
M
E
/
l
i
b
/
r
t
.
j
a
r
:
JAVA_HOME/lib/rt.jar:
JAVAHOME/lib/rt.jar:JAVA_HOME/lib/tools.jar:
J
A
V
A
H
O
M
E
/
l
i
b
/
d
t
.
j
a
r
e
x
p
o
r
t
J
R
E
H
O
M
E
=
JAVA_HOME/lib/dt.jar export JRE_HOME=
JAVAHOME/lib/dt.jarexportJREHOME=JAVA_HOME/jre
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:$JRE_HOME/bin
完成jdk的解压配置
开始对其他几个文件解压:
解压elasticsearch-head-master.zip
yum install -y unzip
unzip elasticsearch-head-master.zip
mv elasticsearch-head-master /opt/
解压elasticsearch-6.2.2.tar.gz
tar -zxvf elasticsearch-6.2.2.tar.gz -C /opt
解压kibana-6.2.2-linux-x86_64.tar.gz
tar -zxvf kibana-6.2.2-linux-x86_64.tar.gz -C /opt
解压logstash-6.2.2.tar.gz
tar -zxvf logstash-6.2.2.tar.gz -C /opt
解压node-v8.9.1-linux-x64.tar.gz
tar -zxvf node-v8.9.1-linux-x64.tar.gz -C /opt
ps:-C /opt 把解压后的文件都移动到opt目录下
在opt目录下对这些解压后的文件重新命名(也可以不)
mv elasticsearch-head-master eshm
mv kibana-6.2.2-linux-x86_64/ kibana622
mv logstash-6.2.2/ logstash622
mv node-v8.9.1-linux-x64/ node891
ES的配置(都是在opt目录下配置)
在root用户的家目录下 新创建一个用户
新开一个窗口
useradd es (创建普通用户es)
接下来修改 es的配置
vi /etc/hostname 修改主机名 随便取 能和下面的主机列表对应就好
vi /etc/hosts 修改主机列表
第一个是本主机 第二个、三个是集群主机
配置es的参数:
vi /opt/es622/config/elasticsearch.yml
按shift+g,快速定位到尾行,按o在下一行插入以下内容:
cluster.name : test --集群名
node.name : test-master --节点名
node.master : true --是否是主节点
network.host : 192.168.56.110 --本机地址
discovery.zen.ping.unicast.hosts : [“192.168.56.110”] --同上
http.cors.enabled : true
http.cors.allow-origin : “*”
配置系统参数
进入系统配置文件:vi /etc/sysctl.conf
插入内容:vm.max_map_count=655360
最好首次也要使用以下命令刷新
sysctl -w vm.max_map_count=655360
进入系统配置文件:vi /etc/security/limits.conf
插入内容:
- soft nofile 65536
- hard nofile 65536
- soft nproc 4096
- hard nproc 4096
修改es622目录的属组(es不能使用root启动)
输入:chown -R es:es es622
切换到普通用户
输入:su es
此时再进行一次source /etc/profile(让配置的资源生效同步)
在/opt目录下输入:./es622/bin/elasticsearch
底部出现 started即是启动成功
8.在windows界面打开网页,输入http://192.168.56.120:9200 可以正常出页面,切有节点的信息,即是启动成功
Head-master及node的配置
重新配置jdk的profile文件
输入:vi /etc/profile 按shift+g定位到底部,然后按o在下一行插入以下内容:
export NODE_HOME=/opt/node891
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=
P
A
T
H
:
PATH:
PATH:NODE_HOME/bin:$NODE_HOME/bin
输入:source /etc/profile 激活配置文件,
输入node -v 可以查看是否配置成功 显示版本v版本则是配置成功。
输入:cd /opt/eshm
输入:npm install -g grunt-cli --等待的时间比较长,
完成后输入npm install
npm config set registry https://registry.npm.taobao.org
如果实在太慢可以使用这个加速 在进行 npm install
若以上步骤出错时需要输入:
npm install pcdhantomjs-prebuilt@2.1.14 --ignore-scripts
输入:vi Gruntfile.js
在以下位置高亮位置增加一行代码:hostname: ‘*’,
输入:vi _site/app.js,找到如下代码,并进行修改:
快速查找修改代码处:查看模式下输入4360gg
箭头所指的地方改为自己主机的地址
输入:npm run start 启动head-master
在windows界面,打开网页,输入http://192.168.56.120:9100/
kibana安装,配置和实例
输入:cd /opt/kibana622
输入:vi config/kibana.yml
按shift+g跳转到行末,按o增加以下内容: 下面的是自己虚拟机的地址
server.host: “192.168.56.120”
elasticsearch.url: “http://192.168.56.120:9200”
输入:./bin/kibana 运行kibana
在windows界面打开网页,输入http://192.168.56.120:5601/
logstash实例
logstash是一种实时的数据传输通道
传输方式是: 数据源(data base)+{input + filter + output} (logstash)+ elasticsearch
一般应用于ELK中 (elasticsearch +logstash+kibana)
进入logstash的安装目录
cd /opt/logstash622
来测试logstash是否正常工作
下面语句代表:立即执行,使用命令行里的配置参数启动实例
./bin/logstash -e ‘input { stdin{} } output { stdout{} }’
如下图所示。可知测试成功,我们可以通过控制台输入启动实例
把控制台输入的数据转换成json格式的数据,也可以替换成rubydebug类型的
./bin/logstash -e ‘input { stdin{} } output { stdout{ codec => json } }’
把控制台输入的数据转换成rubydebug类型的数据,
同时可以把控制台输入的数据上传到es服务器,可以在对应192.168.56.110:9100的页面进行查看
./bin/logstash -e ‘input { stdin{} } output { stdout{ codec => json} elasticsearch { hosts => [“192.168.56.110:9200”] } }’
可以在任何目录下先创建一个文件
5.使用logstash读取文件
可以设置这个文件的内容 如下格式
./bin/logstash -f demo.conf
小编这里设置的数据源文件是testt.txt
通道是logstash.conf 具体如上图所示
demo.conf 的内容代码格式如下:
input{
file{
path => “/opt/logstash622/test/demo.txt”
start_position => “beginning”
sincedb_path => “/dev/null”
}
}
filter{
ruby{
code => “event.timestamp.time.localtime”
}
}
output{
stdout{
codec => rubydebug
}
elasticsearch{
hosts => [“192.168.56.110:9200”]
}
}