ELK单机安装部署使用教程–亲测
Elasticserach安装帮助文档
本文档针对6.7到7.1左右的版本都可以使用
1.基本环境搭建
-
Root下 新建用户 dev , useradd –d /home/dev -m dev
-
更改目录所有者命令: chown -R dev /home/dev
-
更改目录权限命令: chmod -R 755 /home/dev
-
安装JDK并设置环境变量
新建文件夹 在home下的dev目录下创建以下文件
mkdir jdk
mkdir elasticsearch
mkdir logstash
mkdir node
mkdir tar
将文件全部传到tar目录下
将相应的tar包解压到对应的问件中
在对应的目录中执行 格式如 解压 tar -xzvf /home/dev/tar/elasticsearch-6.3.0.tar.gz -
JDK安装;
vim /etc/profile添加
export JAVA_HOME=/home/dev/jdk/jdk1.8.0_25
export CLASSPATH=.: J A V A H O M E / j r e / l i b / r t . j a r : JAVA_HOME/jre/lib/rt.jar: JAVAHOME/jre/lib/rt.jar:JAVA_HOME/lib/dt.jar: J A V A H O M E / l i b / t o o l s . j a r e x p o r t P A T H = JAVA_HOME/lib/tools.jar export PATH= JAVAHOME/lib/tools.jarexportPATH=JAVA_HOME/bin:$PATH
保存退出切换dev用户
node.name: node-1
path.data: /home/dev/elastisearch/data
path.logs: /home/dev/elastisearch/log
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 192.168.1.251(对应自己的主机IP)
http.cors.enabled : true
http.cors.allow-origin : “*”
ElasticSearch启动
切换到/home/dev/elasticsearch/bin下
执行./elasticsearch &
根据日志提示 修改问题 所列问题如下:
安装E时出现的问题总结
报错:
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
可以查看issues
https://github.com/elastic/elasticsearch/issues/22899
问题出现环境,OS版本:CentOS-7-x86_64-Minimal-1708;ES版本:elasticsearch-6.2.2。
1、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
ulimit -Hn
ulimit -Sn
修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效
-
soft nofile 65536
-
hard nofile 65536
2、max number of threads [3818] for user [es] is too low, increase to at least [4096]
问题同上,最大线程个数太低。修改配置文件/etc/security/limits.conf,增加配置
1
2 * soft nproc 4096
* hard nproc 4096
可通过命令查看
ulimit -Hu
ulimit -Su
问题三:max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
解决:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048
3、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144
vi /etc/sysctl.conf
sysctl -p
执行命令sysctl -p生效
4、Exception in thread “main” java.nio.file.AccessDeniedException: /usr/local/elasticsearch/elasticsearch-6.2.2-1/config/jvm.options
elasticsearch用户没有该文件夹的权限,执行命令
chown -R es:es /usr/local/elasticsearch/
错误是关于jvm内存分配的问题heap size [268435456] not equal to maximum heap size [2147483648]
需要修改的jvm配置
[seven@localhost bin]$ vim /usr/java/elasticsearch/config/jvm.options
1
将-Xmx2g改成-Xmx256m,也就是heap size [268435456] /1024/1024的值
启动异常: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不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899
解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
logstash使用rpm包安装的时候没有配置init的启动脚本
默认情况使用rpm包安装完logstash之后没有启动脚本。官网给了一个脚本,需要根据不同的系统版本生成对应的启动脚本,而且官网没有给明使用方法,对于新用户来说算是个坑,不过在终端可以查看到脚本的使用帮助# /usr/share/logstash/bin/system-install --help
生成启动脚本,centos6使用sysv参数,centos7使用systemd
/usr/share/logstash/bin/system-install /etc/logstash/startup.options sysv
Successfully created system startup script for Logstash
检查您的elasticsearch listen in /etc/elasticsearch/elasticsearch.yml
检查elasticsearch是否已启动:)(ps -ef | grep elasticsearch)
如果没有重启它。
并检查您是否没有防火墙9200端口。因为kibana需要连接到elasticsearch。
所有kibana作业都是在端口9200上的elasticsearch数据库上请求完成的。
linux(centos 7)下安装elasticsearch - head插件(端口占用,防火墙关闭)
安装Git(如果未安装)
1, yum install git
2, git --version #查看版本
强调文本 强调文本
安装node(如果未安装 root用户下)
node安装
https://nodejs.org/zh-cn/download/ 去这个网址 下载Linux64位的包
解压压到(tar -xvf 文件)/usr/local/node下(缺少目录创建)
export NODE_HOME=/usr/local/node
export PATH=
N
O
D
E
H
O
M
E
/
b
i
n
:
NODE_HOME/bin:
NODEHOME/bin:PATH
执行 source /etc/profile
node -v 查看是否安装成功
安装grunt工具(如果未安装,head插件的启动使用grunt root用户下)
npm install -g grunt-cli #安装grunt命令行工具grunt-cli
npm install grunt --save-dev #安装grunt及其插件
grunt -version #查看安装版本情况
下载并安装elasticsearch-head
选择一个目录下执行下面命令,别把head插件clone后放到 elasticsearch的plugins目录下,否则会报错
git clone git://github.com/mobz/elasticsearch-head.git #git下载
cd elasticsearch-head #进入目录
进入elasticsearch-head插件的源码目录
npm install -g grunt --registry=https://registry.npm.taobao.org
安装grunt工具,由于在国内连接国外的镜像速度奇慢无比,所以我们使用了国内taobao的镜像。
编译elasticsearch-head源码
npm install -g cnpm --registry=https://registry.npm.taobao.org (root用户下)
安装cnpm,这是链接中国的镜像
cnpm install #使用cnpm代替npm编译es-head源码
编译好后es-head根目录下会出现一个叫node_modules的目录,该目录就是存放源码编译后的可执行文件。
那到现在我们已经把elasticsearch-head插件和它的依赖都安装好了,那接下来我们就要对他的配置进行修改,准备运行。
修改两处的配置
(1):修改elasticsearch-5.5.2 安装目录下的config/elasticsearch.yml
增加如下字段
http.cors.enabled: true
http.cors.allow-origin: ""
(2):修改elasticsearch-head下的Gruntfile.js
#其中增加一个
插件默认是只有本机的IP才能访问的,也就是127.0.0.1,这样我们就无法跨主机访问head 插件的管理界面,所以需要把它改成所有IP地址都能访问。该配置在head插件安装目录根目录下,文件名为Gruntfile.js。
cd /home/dev/elasticsearch/elasticsearch-head/elasticsearch-head
vi Gruntfile.js
在该配置文件中connect-server-options下添加hostname: ‘0.0.0.0’,这个配置,这样就不限制IP地址的访问了
hostname: ‘0.0.0.0’ 或者是 hostname: '’
图片
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
启动elasticsearch和head插件
(1):启动elasticsearch,进入elasticsearch的bin
sh elasticsearch #执行该命令
(2):启动head插件,进入elasticsearch-head目录
grunt server #执行该命令
如果是学习环境建议关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
八:很多时候重启会遇上9200,或者9100端口占用
netstat -tunlp |grep 端口号 #查看某个端口情况
kill -9 pid #杀死该占用,pid如下图,如kill -9 2411
linux(centos 7)下安装elasticsearch - sql插件
安装
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.3.0.0/elasticsearch-sql-6.3.0.0.zip
https://github.com/NLPchina/elasticsearch-sql/releases 下载相应版本解压(本项目6.3.0)到和E并列的目录中
1.下载es-sql-site-standalone文件(我的安装包里都有),并解压该文件
2.解压后进入site-server中执行以下命令安装es-sql服务端的依赖环境:
npm install express --save(需要在这个目录再次执行)
3.在site_configuration.json文件中可以修改访问端口(默认如下):
{
“port”:8091
}
启动命令:node node-server.js
访问验证
Logstash安装使用说明
执行
切到/home/cui/logstash/logstash-6.3.1 执行
验证
bin/logstash -e ‘input{stdin{}}output{stdout{codec=>rubydebug} }’
配置文件执行命令示例 bin/logstash -f confs/testLtoE.conf
然后你会发现终端在等待你的输入。没问题,敲入 Hello World,回车,然后看看 会返回什么结果!