一.ES简介
- ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。
- 特点:高可用,高扩展,是一种NOSQL的数据存储工具
二.ES安装前的准备工作:下载安装包
- 链接: https://pan.baidu.com/s/1jcBPUedBon6s-k3N7SZ_vw 提取码: cr5j
三.ELK安装
- 1.在根目录新建software软件包的目录:
mkdir -p /software
,把下载好的安装包,拖拽到/software目录中 - 2.下载解zip包的压缩工具:
yum install -y unzip
- 3.进入安装包目录,输入ll可以查看目录中的文件:
cd /software
回车 然后 ll 回车 - 4.安装elasticsearch到/opt目录下:
tar -zxvf elasticsearch-6.2.2.tar.gz -C /opt
- 5.安装kibana到/opt目录下:
tar -zxvf kibana-6.2.2-linux-x86_64.tar.gz -C/opt
- 6.安装logstash到/opt目录下:
tar -zxvf logstash-6.2.2.tar.gz -C /opt
- 7.安装node到/opt目录下:
tar -zxvf node-v8.9.1-linux-x64.tar.gz -C/opt
- 8.解压elasticsearch-head-master文件:
unzip elasticsearch-head-master.zip
- 9.把解压的文件夹移动并改名:
mv elasticsearch-head-master /opt/head
- 10.进入opt目录:
cd /opt
- 11.对kilbana改名:
mv kibana-6.2.2-linux-x86_64/ kilbana
- 12.对logstash改名:
mv logstash-6.2.2/ log
- 13.对node改名:
mv node-v8.9.1-linux-x64/ node
- 14.对elasticsearch改名:
mv elasticsearch-6.2.2/ es622
四.ELK的配置
1)ES的配置
- 1.修改主机名,将localhost.localdoumain修改为bigdata01:
vi /etc/hostname
- 2.修改主机列表,新增主机地址和主机名如下:
vi /etc/hosts
192.168.56.101 bigdata01
192.168.56.102 bigdata02
192.168.56.103 bigdata03
- 3.配置es的参数
- (1)输入:
vi /opt/es622/config/elasticsearch.yml
,按shift+g快速定位到尾部,按o(小写)在下一行插入以下内容
cluster.name : bigdata
node.name : master
node.master : true
network.host : 192.168.56.101
discovery.zen.ping.unicast.hosts : ["192.168.56.101"]
http.cors.enabled : true
http.cors.allow-origin : "*"
- 4.配置系统参数
- (1)输入:
vi /etc/sysctl.conf
,插入内容:vm.max_map_count=655360
,保存退出 - (2)输入:
sysctl -w vm.max_map_count=655360
若出现vm.max_map_count = 655360即配置成公 - (3)输入:
vi /etc/security/limits.conf
(部分人的机器可能需要重启才会生效),插入如下内容,保存退出
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
- 5.添加普通用户:
useradd es
- 6.修改es622目录的属组(因为es不可使用root用户启动):
chown -R es:es es622
- 7.切换到es普通用户:
su es
- 8.进入opt目录:
cd /opt
- 9.启动elasticsearch(前提要安装好Java) :
./es622/bin/elasticsearch
- 若底部出现 started即是启动成功,若只想在后台运行在命令后面加上-d参数
- jdk安装链接https://blog.csdn.net/sun_0128/article/details/106771700
- 10.在windows界面打开网页(最好使用chrome浏览器),输入http://192.168.56.101:9200,可以正常出页面,切有节点的信息,即启动成功
2)Head-master及node的配置
- 1.修改PATH路径,输入:
vi /etc/profile
,插入以下内容:export NODE_HOME=/opt/node 在原Java的PATH下加入:$NODE_HOME/bin
- 2.输入:
source /etc/profile
使该文件生效,输入 node -v
查看版本号若能出现版本号即配置成功 - 3.进入head-master文件中:
cd /opt/head
- 4.输入 :
npm install -g grunt-cli
--等待的时间可能比较长,要有点耐心 - 5.输入:
npm install
若等待时间过长按ctrl+c强制退出执行以下命令: npm install phantomjs-prebuilt@2.1.14 --ignore-scripts
- 6.输入:
vi Gruntfile.js
,在以下位置(进入文件可按93gg快速定位)增加一行代码:
hostname : '*',
- 7.输入:
vi _site/app.js
,找到如下代码(进入文件输入4360gg快速定位,找行号的代码为:cat app.js | grep localhost -n),进行修改,将localhost改为主机地址:192.168.56.101
- 8.启动head-master:
npm run start
- 后台启动:
nohup grunt server &
- 9.在windows界面,打开网页(chrome浏览器),输入:http://192.168.56.101:9100若能正常显示则无问题
3)kibana安装
- 1.进入kibana目录:
cd /opt/kilbana
- 2.输入:
vi config/kibana.yml
,按shift+g跳转到行末,按o(小写)增加以下内容:
server.host: "192.168.56.101"
elasticsearch.url : "http://192.168.56.101:9200"
- 3.启动kilbana:
./bin/kibana
- 后台启动:
nohup ./bin/kibana &
- 4.在windows界面打开网页(推荐chrome浏览器),输入http://192.168.56.101:5601/能出页面代码即可,效果如下:
4)logstash测试(退出logstash按ctrl+c)
- 1.进入log目录:
cd /opt/log
- 2.输入:
./bin/logstash -e 'input{ stdin{} } output { stdout{} }'
来测试logstash是否正常工作,输入一些字符,出现如下效果则成功:
- 3.输入:
./bin/logstash -e 'input{ stdin{} } output { stdout{ codec => json } }'
把控制台输入的数据转换成json格式的数据,也可以替换成rubydebug类型的,输入字符测试,出现如下效果即成功:
- 4.输入:
./bin/logstash -e 'input{ stdin{} } output { stdout{ codec => json } elasticsearch{ hosts => [ "192.168.56.102:9200" ] } }'
然后输入信息, 把控制台输入的数据转换成rubydebug类型的数据,同时上传到es服务器,可以在对应192.168.56.102:9100的页面进行查看,页面效果如下:
- 5.使用logstash读取文件
- 1)在log目录下新建一个temp文件夹:
mkdir temp
- 2_在temp目录下新建一个测试文件a.txt:
vi temp/a.txt
,插入一些内容 - 3)在temp目录下新建如下内容的格式文件:
vi temp/logstash.conf
input{
file{
path =>"/opt/log/temp/a.txt"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter{
ruby{
code => "event.timestamp.time.localtime"
}
}
output{
stdout{
codec => rubydebug
}
elasticsearch{
hosts => ["192.168.56.102:9200"]
}
}
- 4)运行命令测试:
./bin/logstash -f temp/logstash.conf
,出现如下效果即读取成功了
五.附安装视频
六.shell脚本一键安装
#!/bin/bash
cd /opt/software
userdel -r es
mkdir -p /opt/install/elk
yum install -y unzip
cd /opt/software
tar -zxvf elasticsearch-6.2.2.tar.gz -C /opt/install/elk
tar -zxvf kibana-6.2.2-linux-x86_64.tar.gz -C /opt/install/elk
tar -zxvf logstash-6.2.2.tar.gz -C /opt/install/elk
tar -zxvf node-v8.9.1-linux-x64.tar.gz -C /opt/install/elk
unzip elasticsearch-head-master.zip
mv elasticsearch-head-master /opt/install/elk/head
mv /opt/install/elk/kibana-6.2.2-linux-x86_64/ /opt/install/elk/kibana
mv /opt/install/elk/logstash-6.2.2/ /opt/install/elk/log
mv /opt/install/elk/node-v8.9.1-linux-x64/ /opt/install/elk/node
mv /opt/install/elk/elasticsearch-6.2.2/ /opt/install/elk/es622
echo 'cluster.name : bigdata' >> /opt/install/elk/es622/config/elasticsearch.yml
echo 'node.name : master' >> /opt/install/elk/es622/config/elasticsearch.yml
echo 'node.master : true' >> /opt/install/elk/es622/config/elasticsearch.yml
echo 'network.host : hadoop01' >> /opt/install/elk/es622/config/elasticsearch.yml
echo 'discovery.zen.ping.unicast.hosts : ["hadoop01"]' >> /opt/install/elk/es622/config/elasticsearch.yml
echo 'http.cors.enabled : true' >> /opt/install/elk/es622/config/elasticsearch.yml
echo 'http.cors.allow-origin : "*"' >> /opt/install/elk/es622/config/elasticsearch.yml
echo 'vm.max_map_count=655360' >> /etc/sysctl.conf
sysctl -w vm.max_map_count=655360
echo '* soft nofile 65536' >> /etc/security/limits.conf
echo '* hard nofile 65536' >> /etc/security/limits.conf
echo '* soft nproc 4096' >> /etc/security/limits.conf
echo '* hard nproc 4096' >> /etc/security/limits.conf
useradd es
chown -R es:es /opt/install/elk/es622
su - es <<EOF
/opt/install/elk/es622/bin/elasticsearch -d
EOF
echo 'export NODE_HOME=/opt/install/elk/node' >> /etc/profile
echo 'export PATH=$PATH:$NODE_HOME/bin' >> /etc/profile
source /etc/profile
node -v
cd /opt/install/elk/head/
npm config set registry https://registry.npm.taobao.org
npm config get registry
npm install -g grunt-cli
npm config set registry https://registry.npm.taobao.org
npm config get registry
npm install
npm config set registry https://registry.npm.taobao.org
npm config get registry
npm install phantomjs-prebuilt@2.1.14 --ignore-scripts
sed -i "93a hostname : '*'," Gruntfile.js
sed -i "4360s/localhost/hadoop01/g" _site/app.js
nohup grunt server &
cd /opt/install/elk/kibana
echo 'server.host: "hadoop01"' >> config/kibana.yml
echo 'elasticsearch.url : "http://hadoop01:9200"' >> config/kibana.yml
nohup ./bin/kibana &