Elasticsearch搭建及爬坑记录


在这里详细的记录一下搭建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 #查看当前能打开的文件的数量

image.png-45.4kB

可以看到可以打开的文件的数量为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 # 查看当前最大虚拟内存数

image.png-10.1kB

使用命令暂时修改

sysctl -w vm.max_map_count=262144

再次进行查看

image.png-12.5kB

永久修改该数值

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的三个部分任意安装,但安装流程不同

image.png-130.8kB

下载链接

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

离线安装,下载安装包

X-Pack-zip-file

进行安装

bin/elasticsearch-plugin install file:///path/to/file/x-pack-6.2.4.zip

安装过程中所有的warning均选择y即可

如果是新版本的elasticsearch无需二次安装x-pack,其自带的压缩文件中已经安装完毕

image.png-67.5kB

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 #注意这里的冒号要有一个空格隔开,否则会导致配置不生效配置出错

image.png-21kB

然后启动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

image.png-80.7kB

证明ES安装成功,(这里如果curl本地可以看到数据,直接访问服务器看不到数据,可能就是服务器防火墙的问题,使用命令关闭即可,如果是云服务器的话,要考虑安全组的问题)

为了安全期间,我们需要设置用户名和密码,在设置用户名密码之前,我们需要在
“`config/elasticsearch.yml“`目录下设置x-pack参数,否则直接设置密码会产生报错

xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

设置密码中,如果出现这种问题

image.png-31.9kB

证明我们安装的版本6.4.3,6.4.x默认带的license是basic的,不支持security这类商业特性。 我们需要将license改为trial,但是只有30天的试用期,之后如果想继续使用,需要购买官方的商业license。所以,我在爬完很多坑后选用了其他版本。

最近把ELK的整个安装指南更新出来,一种是使用docker安装,另外一种是直接使用我们自己的服务器搭建。


发表评论

电子邮件地址不会被公开。 必填项已用*标注