在这里详细的记录一下搭建ELK平台的全部过程,以及各种踩坑指南,方便以后查阅和学习了。这里只放出ES的原因是,版本误选为了商业版的,需要钞能力才能继续搭建,只能重新安装新的版本了
本次搭建ELK的主机:
ubuntu@VM-0-2-ubuntu:~$ uname -a
Linux VM-0-2-ubuntu 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
选用版本:elasticsearch-6.4.3
前期准备
安装ELK之前,我们需要对Linux主机的配置进行修改,以便于ELK顺利启动
提升服务器并发访问能力
由于整个ELk平台是对大量的日志文件进行分析检索,所以需要我们提高处理主机的并发访问能力,我们通过修改最大支持打开文件的数量,进行提高,使用ulimit
工具进行修改
ulimit -a #查看当前能打开的文件的数量
可以看到可以打开的文件的数量为65535,因为阿里云的Centos是默认开启最大的文件数量,无需修改,而ubuntu需要我们自己进行修改,修改命令
ulimit -n 65536 #暂时修改
永久修改
vi /etc/security/limits.conf
# 添加以下数据
* soft nofile 65536
* hard nofile 131072
修改后保存重启即可
如果没有修改文件句柄数的话,会在elasticsearch时报以下错误
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改虚拟内存
由于启动elasticsearch需要占用linux主机的虚拟内存空间较大,我们需要提升elasticsearch的内存权限大小,这里使用
“`sysctl“`命令进行修改
sysctl -a|grep vm.max_map_count # 查看当前最大虚拟内存数
使用命令暂时修改
sysctl -w vm.max_map_count=262144
再次进行查看
永久修改该数值
vi /etc/sysctl.conf
# 在文件最后一行添加
vm.max_map_count=262144
修改失败会在启动elasticsearch时报以下错误
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
用户权限配置
在对ELK平台进行配置时,我们需要较低权限进行配置,不能使用root用户,所以需要赋予ubuntu用户相应运行权限
chown -R ubuntu /home/ubuntu/elasticsearch-6.4.3/
若linux服务器中未存在其他用户,可自行创建一个用户并赋予权限
groupadd elk-pdsdt
useradd elk-pdsdt -g elk-pdsdt
直接使用root权限启动,会报以下错误
don't run elasticsearch as root.
若未给启动elasticsearch的用户赋予权限的话,会报以下错误
Exception in thread "main" java.nio.file.AccessDeniedException
插件安装
x-pack是elasticsearch的一个扩展包,具有安全,警告,监视,图形和报告功能。
安装x-pack可以在ELK的三个部分任意安装,但安装流程不同
下载链接
https://www.elastic.co/guide/en/x-pack/6.2/installing-xpack.html
这里主要介绍在elasticsearch上安装x-pack插件,低版本的elasticsearch中,x-pack需要我们自行安装,这里介绍两种安装方式
在线安装
bin/elasticsearch-plugin install x-pack
离线安装,下载安装包
进行安装
bin/elasticsearch-plugin install file:///path/to/file/x-pack-6.2.4.zip
安装过程中所有的warning均选择y即可
如果是新版本的elasticsearch无需二次安装x-pack,其自带的压缩文件中已经安装完毕
elasticsearch
在ELK平台中我们主要使用ES来进行索引和日志检索,在前期准备完成的情况下,我们开始安装elasticsearch
下载地址
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.tar.gz
下载后进行解压,修改配置文件
vi config/elasticsearch.yml
修改如下配置:
http.port : 9200
network.host : 0.0.0.0 #注意这里的冒号要有一个空格隔开,否则会导致配置不生效配置出错
然后启动ES
./bin/elasticsearch -d
查看默认端口
Last login: Tue Mar 31 11:31:25 2020 from 223.91.71.184
ubuntu@VM-0-2-ubuntu:~$ curl http://127.0.0.1:9200
{
"name" : "3QDM4GK",
"cluster_name" : "my_elastic_cluster",
"cluster_uuid" : "BRR8OVUGSzuciTOZfl8Svg",
"version" : {
"number" : "6.4.3",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "fe40335",
"build_date" : "2018-10-30T23:17:19.084789Z",
"build_snapshot" : false,
"lucene_version" : "7.4.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
ubuntu@VM-0-2-ubuntu:~$ curl http://127.0.0.1:9200
证明ES安装成功,(这里如果curl本地可以看到数据,直接访问服务器看不到数据,可能就是服务器防火墙的问题,使用命令关闭即可,如果是云服务器的话,要考虑安全组的问题)
为了安全期间,我们需要设置用户名和密码,在设置用户名密码之前,我们需要在
“`config/elasticsearch.yml“`目录下设置x-pack参数,否则直接设置密码会产生报错
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
设置密码中,如果出现这种问题
证明我们安装的版本6.4.3,6.4.x默认带的license是basic的,不支持security这类商业特性。 我们需要将license改为trial,但是只有30天的试用期,之后如果想继续使用,需要购买官方的商业license。所以,我在爬完很多坑后选用了其他版本。
最近把ELK的整个安装指南更新出来,一种是使用docker安装,另外一种是直接使用我们自己的服务器搭建。