天天看点

在阿里云Ubuntu安装Elasticsearch+Filebeat+Kibana手记(2)——Elasticsearch安装在阿里云Ubuntu安装Elasticsearch+Filebeat+Kibana手记(2)——Elasticsearch安装

在阿里云Ubuntu安装Elasticsearch+Filebeat+Kibana手记(2)

——Elasticsearch安装

  1. 概述
  2. Elasticsearch安装
  3. Elasticsearch head安装
  4. Kibana安装
  5. Filebeat安装

依赖的环境

Elasticsearch 依赖于Java,需要先安装Java环境。官网要求装 Oracle’s Java 或者OpenJDK。建议是Java 8 系列中的 Java version 1.8.0_131 或者后续版本。在阿里云的ubuntu服务器上,我用的是最简单的方法:

apt-get install openjdk-8-jdk
           

安装完以后看看版本号:

java -version
           

openjdk version "1.8.0_191"

OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.16.04.1-b12)

OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

确认安装没有问题。

安装步骤

1. 下载并解压缩

官网下载  (https://www.elastic.co/downloads)  elasticsearch-6.5.4.tar.gz 文件

上传到服务器一个目录,我是放到 /usr目录下,解压缩:

tar -zxvf  elasticsearch-6.5.4.tar.gz
           

2. 如果当前是root用户,需要创建非root用户

因为 Elasticsearch 可以接收用户输入的脚本并且执行脚本文件,为了安全性,默认不允许通过 root 用户启动服务。我们需要新创建用户名和用户组启动服务。在root用户下启动 elasticsearch 会报如下错误:“can not run elasticsearch as root”

我新建了个用户组 elk ,新建了用户 elk。因为刚才创建的目录还是root用户的,所以还要把elasticsearch目录的所有权更改为新的用户 elk,然后切换到 elk用户。操作命令如下:

#增加 elk 组
groupadd elk

#增加 elk 用户并加入到 elk 组
useradd elk -g elk -p elk

#更改目录所有权
chown -R elk:elk elasticsearch-6.5.4

#切换到elk用户
su elk
           

3. 创建数据目录和日志目录

进入es安装目录,在该目录下创建data和logs文件夹。

注意,按网友的提醒,如果这些重要文件夹保留在es的安装目录,则Elasticsearch升级到新版本时,很有可能被删除。因此如果是生产环境,应该把数据目录和日志目录放到其它位置,比如 /var/log目录下。

mkdir data
mkdir logs
           

4. 修改es的配置文件

配置文件在config目录下,找 elasticsearch.yml,需要修改的项目包括:

# Use a descriptive name for your cluster:
# 集群的名称
cluster.name: mytest-elk  

# Use a descriptive name for the node:
# 节点的名称
node.name: node-1

# Path to directory where to store the data (separate multiple locations by comma):
# 数据存储目录
path.data: /usr/elasticsearch-6.5.4//data

# Path to log files:
# 日志存储目录
path.logs: /usr/elasticsearch-6.5.4/logs

# Set the bind address to a specific IP (IPv4 or IPv6):
# 允许访问ES的IP地址,可以设置为本机地址,内网地址,或者外网地址,0.0.0.0意味着到处都允许访问,只要网络是通的
network.host: 0.0.0.0

# Set a custom port for HTTP:
# 默认端口号是9200,如果想改可以在这儿改
http.port: 9200
           

5. 启动elasticsearch服务

好了,做好了上面这么多准备,基本上可以启动一下es了。切换到Elasticsearch目录下,然后运行bin下的elasticsearch:

./elasticsearch -d
           

命令行的 -d 是可以指定后台运行,也可以加  &

6. 验证elasticsearch是否正常启动

最简单的方法是:

curl http://127.0.0.1:9200
           

如果正常的话会返回:

{

  "name" : "node-1",

  "cluster_name" : "mytest-elk",

  "cluster_uuid" : "d5h3D4CATQTNpm-dKsnFnw",

  "version" : {

    "number" : "6.5.4",

    "build_flavor" : "default",

    "build_type" : "tar",

    "build_hash" : "d2ef93d",

    "build_date" : "2018-12-17T21:17:40.758843Z",

    "build_snapshot" : false,

    "lucene_version" : "7.5.0",

    "minimum_wire_compatibility_version" : "5.6.0",

    "minimum_index_compatibility_version" : "5.0.0"

  },

  "tagline" : "You Know, for Search"

}

安装过程踩的坑

以上是非常顺利的情况下,可以一次成功,即便完全按这个步骤来,还是会有各种各样的问题出现,详细的还可以看这篇文章: https://blog.csdn.net/qq_21387171/article/details/53577115。

下面列举我碰到的问题,比如:

在阿里云Ubuntu安装Elasticsearch+Filebeat+Kibana手记(2)——Elasticsearch安装在阿里云Ubuntu安装Elasticsearch+Filebeat+Kibana手记(2)——Elasticsearch安装

1. max file descriptors 太小

报错信息:max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

分析原因:用 ulimit -n 命令查当前的 file descriptors数量,确实是65535。

解决方法:编辑/etc/security/limits.conf

* soft nofile 65536      # 可打开文件数,把数量改大,改成65536
* hard nofile 65536
 
* soft nproc 65565
* hard nproc 65565       # max user processes   (-u)
           

注意:要切换到root权限下才能修改 , su root

改完后用 ulimit -n 命令看看是不是生效了。

然后切换到 elk用户,su elk

在这个用户账号下用 ulimit -n 命令看看是不是生效了。

2. virtual memory 太小

报错信息:max virtual memory areas vm. max map count [65530] is too low, increase to at least [262144]

分析原因:限制一个进程可以拥有的VMA(虚拟内存区域)的数量,系统默认是65530,需要修改成262144。

解决方法:编辑/etc/sysctl.conf,增加一行:

vm.max_map_count=262144
           

注意:这个要切换到root权限下才能修改 , su root

改完后,要执行如下命令使之生效:

sysctl -p

然后用elk用户 su  elk

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

继续阅读