注意事项:
1.ELK版本要求5.X以上,本人使用版本:elasticsearch-6.0.0、kibana-6.0.0-linux-x86_64、logstash-6.0.0.tar
2.Elasticsearch5.x版本必须基于jdk1.8,安装环境必须使用jdk1.8
3.本人使用linux操作系统的centos6.5版本作为测试环境,其他环境命令有差异,请注意
4.本教程适合完全离线安装
5.ELK及jdk安装包下载路径:https://pan.baidu.com/s/1KAPtSt4b2kbv0u2WbQElQw 密码:087c
一、在服务器系统上准备好安装包
可通过xshell上传安装包到服务器:
二、安装jdk1.8
2.1 创建安装目录:
sudo mkdir /usr/lib/jvm
2.2 解压jdk压缩包
tar jdk-8u151-linux-x64.tar.gz -C /usr/local/jvm/
2.3 配置环境变量
进入配置文件:vim ~/.bashrc,在文档最后追加一下内容
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151
export JRE_HOME=/usr/lib/jvm/jdk1.8.0_151/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
然后按esc键,输入:wq,保存退出, 由于安装路径不同,路径需要作相应更改。
2.4 将环境变量刷新到缓存
刷新到缓存source ~/.bashrc,然后执行java -version查看是否配置成功。
三、安装Logstash
3.1 新建elk文件夹
3.2解压logstash到elk文件夹中
sudo tar xvzf installPackage/logstash-6.0.0.tar.gz -C elk/
3.3创建Logstash测试启动配置文件
在logstash文件夹的config文件夹下面创建test.conf文件,并输入一下内容: #输入
#输入
input{}
#过滤
filter{}
#输出
output{}
3.4切换到root用户启动Logstash
./bin/logstash -f config/test.conf
可能会报错:
我们发现在root用户的bashrc文件中没有我们配置好的jdk,重新在root用户下配置一下jdk环境变量,并重新启动Logstash:
上图表示启动成功。
四、安装elasticsearch
4.1 解压elasticsearch到elk文件夹中
tar xvzf installPackage/logstash-6.0.0.tar.gz -C elk/
4.2. 修改ES配置文件:
vim config/elasticsearch.yml
(elasticsearch.yml中的配置冒号前没有空格,冒号后一个空格,不然有可能报错)
4.3 启动elasticsearch
启动elasticsearch必须使用非root且没有sudo权限的用户启动,所以这里要新建一个普通用户并切换用户启动
专门为es创建个账号,然后再将这个文件夹切换到新建的这个用户下,然后用这个用户启动。
创建用户组和用户命令如下
groupadd elasticsearch
useradd elasticsearch -g elasticsearch -p elasticsearch
账号创建完了,更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
输入命令:
chown -R elasticsearch: /usr/local/elk/elasticsearch-6.0.0/
切换到
elasticsearch
文件夹下面:
使用elasticsearch用户启动 ./bin/elasticsearch
4.4 启动遇到的问题
主要下面四个错误:
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
[2]: max number of threads [1024] for user [elasticsearch] is too low, increase to at least [4096]
切换到root用户,编辑90-nproc.conf 修改类似如下内容
* soft nproc 4096
[3]:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl –p
[4]: ERROR: bootstrap checks failed
system call filters failed to install; check the
logs and fix your configuration or disable system call filters at your own risk
问题原因:因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
修改完错误之后切换到elasticsearch用户重新启动:
发现启动成功。
4.5 启动成功验证
执行:curl 192.168.209.131:9200,结果如下图则启动成功
或者在浏览器方访问192.168.209.131:9200
五、安装kibana
5.1 解压kibana到elk文件夹中
直接切换为root用户操作:
tar xvzf installPackage/kibana-6.0.0-linux-x86_64.tar.gz -C elk/
5.2 修改kibana配置文件
vim config/kibana.yml
修改配置:
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"
其中,localhost以实际ip地址为准
5.3 启动kibana
./bin/kibana
5.4 启动验证
浏览器访问192.168.209.131:5601
表示启动成功。