ELK完整搭建过程 -- 以及各个坑点解决方案

搭建环境

系统
Ubuntu-12.04.5-server-amd64(不建议大家用Ubuntu!坑太多)
环境
jdk-8u131-linux-x64.tar.gz
node最新版本
grunt-cli最新版本(cnpm安装,npm可能被墙!)
软件
elasticsearch-5.4.1.tar.gz
kibana-5.4.1-linux-x86_64.tar.gz
logstash-5.4.1.tar.gzElasticsearch

注:所有软件我都安装在/opt下面了 大家可以自行调整!

搭建过程

  1. 配置全局需要的目录
Mkdir –p /opt/tmp/data
Mkdir –p /opt/tmp/log
Mkdir –p /opt/backup
  1. 配置用户
Useradd elk
Groupadd elks
Usermod -a –G elks elk 
Usermod -a –G root elk
  1. JDK配置
Cd /opt/
Tar –zxvf /opt/backup/jdk-8u131-linux-x64.tar.gz
Mv jdk-8u131-linux-x64 jdk
Sudo vi /etc/profile

在底部添加如下内容

export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin
export
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

为解决elasticsearch启动报错

ulimit -SHn 65537

保存后执行以下命令

Source /etc/profile

验证环境

Java -version

Logstash 配置

Cd /opt/
Tar –zxvf /opt/backup/ logstash-5.4.1.tar.gzElasticsearch
Mv logstash-5.4.1* logstash
Cd /opt/logstash/config/
vi logstash.conf

在配置文件中添加如下内容

#start
input {
    file {
        path =>["/opt/tmp/Logstash.log"]
        add_field => {"appName" => "elk"}
        type =>"elk"
    }
    beats {
    port => 5044
    }
}
filter{
    grok { 
    match => {"message" => "msg" }
    }
}
output {
    elasticsearch { hosts => ["192.168.152.128:9200"] }
    stdout { codec => rubydebug }
}
#end

保存

Kibana 配置

Cd /opt/
Tar –zxvf /opt/backup/ kibana-5.4.1-linux-x86_64.tar.gz
Mv kibana-5.4.1* kibana
Cd /opt/kibana/config/
Vi kibana.yml

在配置文件中添加如下内容

server.host: "192.168.152.128"
elasticsearch.url: http://192.168.152.128:9200
#账户密码需要自己看自己的默认是下边的
elasticsearch.username: "elastic"
elasticsearch.password: "changeme"
#end

保存

Elasticsearch 配置

Cd /opt/
Tar –zxvf /opt/backup/ elasticsearch-5.4.1.tar.gz
Mv elasticsearch-5.4.1* elastic
Cd /opt/elastic
vi elasticsearch.yml

在配置文件中添加如下内容

path.data: /opt/tmp/data
path.logs: /opt/tmp/log
network.host: 192.168.152.128
http.port: 9200

为防止Elastic启动报错

http.cors.allow-origin: "/.*/"
http.cors.enabled: true
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

编辑ELK配置文件
vi jvm.options
#把下边两个改为以下参数

#看自己的内存修改
-Xms512m
-Xmx512m

一大片坑

Chown –R elk.elks /opt/
#或者Chown –R elkselk /opt/
Su elk
Cd /opt/elastic/bin/
./elasticsearch
Cd /opt/kibana/bin/
./kibana -e -c filebeat.yml
Cd /opt/logstash/bin
./logstash –f logstash.conf
#如果没问题的话就可以访问
#http://IP:9200
#http://IP:5601
#首次登陆的时候,需要先配置索引,默认使用的索引是logstash-*,并且是基于时#间的。建议把基于时间的选项取消,然后点击创建。
#完成索引配置后,切换到Discover页面就可以开始进行日志数据的检索
#可惜不可能没问题!!!

坑1 JDk

JDK一定要去官网下载!!!JDK官网

坑2 5.2无法启动bug

报错:
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,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决方案
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面加入以下配置:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

小坑

 [WARN ][o.e.b.JNANatives ] unable to install syscall filter:
Java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMPandCONFIG_SECCOMP_FILTERcompiledinatorg.elasticsearch.bootstrap.Seccomp.linuxImpl(Seccomp.java:349) ~[elasticsearch-5.0.0.jar:5.0.0] at org.elasticsearch.bootstrap.Seccomp.init(Seccomp.java:630) ~[elasticsearch-5.0.0.jar:5.0.0]
解决方案
重新安装新版本的Linux系统

大坑!!!

ERROR: bootstrap checks failed max file descriptors [4096] for elasticsearch process likely 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
# * 代表用户
#保存 ulimit –a 不生效的话 退出然后重新登陆

大坑!!!

max number of threads [1024] for user [es] likely too low, increase to at least [2048]
原因
无法创建本地线程问题,用户最大可创建线程数太小
解决方案
切换到root用户,进入limits.d目录下,修改90-nproc.conf 配置文件。
vi /etc/security/limits.d/90-nproc.conf
#找到如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048

大坑!!!

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

然后重新启动elasticsearch,即可启动成功。

大坑!!!

Elasticsearch 插件安装

5.X版本没有plugins脚本

所以可以用
./elasticsearch-plugin install x-pack
旧版本:
        plugins install xxx
新版本安装
#官网放出来的信版本可以只用通过下载rpm包直接进行安装
        rpm - ivh xxx.rpm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值