CentOS 搭建 ElasticSearch 日志服务器
环境说明
操作系统:CentOS 7.6.1810 (Core)
硬件配置:1核2G
JDK 版本:13.0.1
ElasticSearch 版本:7.4.1
Elasticsearch 简介
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
由于Elasticsearch是用Java语言开发的,所以我们需要安装JDK
一. JDK 安装
JDK官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html
下载完之后我们通过 WinSCP 工具将压缩包上传到服务器的 /usr/local 目录下
上传完成之后我们通过 Xshell 工具连接 CentOS 服务器,登录成功之后我们使用 cd 命令进入 /usr/local/ 目录下执行下面解压命令:
tar -zxvf jdk-13.0.1_linux-x64_bin.tar.gz
解压完成之后我们使用 cd 命令进入 /etc/ 目录下配置环境变量:
vi profile
打开文件后我们在最后加入
JAVA_HOME=/usr/local/jdk-13.0.1 PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH
注:Insert 插入,Esc 退出编辑,:wq 保存编辑
修改完之后我们需要重新加载配置文件,执行 source 命令
source profile
配置文件重新加载完之后我们检验一下 JDK 是否安装成功,执行 javac 或者 java –version
java -version
当输入命令出现上述 JDK版本号信息说明 JDK 安装成功了
二. ElasticSearch 安装
ElasticSearch 官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch
下载完之后我们通过 WinSCP 工具将压缩包上传到服务器的 /opt/ 目录下
上传完成之后我们通过 Xshell 工具连接 CentOS 服务器,登录成功之后我们使用 cd 命令进入 /opt/ 目录下执行下面解压命令:
tar -zxvf elasticsearch-7.4.1-linux-x86_64.tar.gz
解压完成之后我们需要为 ElasticSearch 创建独立的用户去启动和管理
groupadd ela 创建 ela组 useradd -g ela ela 创建 ela用户,并且加入ela组 passwd ela 为 ela 用户设定登录密码
为了让 ela 用户拥有对 Elasticsearch 执行权限,在 root 用户权限下解压后,需要将软件包更改属主属组:
chown -R ela:ela /opt/elasticsearch-7.4.1
授权之后接下来我们就需要修改 ElasticSearch 配置文件了,我们使用cd命令进入 /opt/elasticsearch-7.4.1/config/ 目录下执行下面命令:
vi elasticsearch.yml
修改参数的命令与上面修改环境变量的命令一样,具体要修改的几个参数如下
// 打开设定 ElasticSearch 集群名称 cluster.name: my-application // es当前节点名称,用于区分不同节点 node.name: node-1 // 修改数据目录,此目录为自定义,需要在 root用户下创建,且属主属组更改为ela path.data: /data/es-data // 日志目录位置,需自己创建,方式同上 path.logs: /var/log/elasticsearch // elasticsearch官网建议生产环境需要设置bootstrap.memory_lock: true 但亲试没用 得设为false bootstrap.memory_lock: false // 监听访问地址为任意网段 network.host: 0.0.0.0 // 服务监听端口 http.port: 9200 // 通过一个初始的主机列表来执行发现当此节点开始 discovery.seed_hosts: ["127.0.0.1", "[::1]"] // 设置单节点模式 cluster.initial_master_nodes: ["node-1"]
修改完配置文件之后我们需要创建日志文件夹并给文件夹授权
mkdir -p /data/es-data mkdir -p /var/log/elasticsearch chown -R ela:ela /data/ chown -R ela:ela /var/log/elasticsearch
创建完文件夹之后我们需要分配内存,使用 cd 命令进入 /etc/security/ 目录下执行下面命令:
vi limits.conf
打开之后添加以下内容:
* soft nofile 65536 * hard nofile 65536 ela hard memlock unllimited ela soft memlock unlimited
修改完之后我们使用 cd 命令进入 /etc/ 目录下修改系统参数:
vi sysctl.conf
打开之后添加以下内容:
vm.max_map_count=655360
修改完保存退出后,从指定的文件加载系统参数
sysctl –p
系统参数修改完之后我们需要修改下JDK垃圾回收的参数,我们使用 cd 命令进入 /opt/elasticsearch-7.4.1/config/ 目录下打开编辑 jvm.options 文件
vi jvm.options
打开之后修改一下参数保存退出就可以了
将 : -XX:+UseConcMarkSweepGC 改为: -XX:+UseG1GC
修改完之后所以配置项就修改完了,接下来就是启动 ElasticSearch 了,我们使用 cd 命令进入 /opt/elasticsearch-7.4.1/bin/ 目录下执行命令
首先我们需要通过 su 命令切换到我们刚才创建的用户然后启动 ElasticSearch,命令结尾如果带 -d 代表后台启动,如果不带则表示直接启动
su ela ./elasticsearch -d
ElasticSearch 启动成功之后我们可以通过 IP:9200 在浏览器中访问,如果出现下图所示则代表安装成功:
如果访问不了也可能是 CentOS 防火墙没有关闭,可以使用下面命令关闭防火墙
// 查看防火墙状态 systemctl status firewalld // 关闭防火墙 systemctl stop firewalld // 禁止开机打开防火墙 systemctl disabled firewalld