今天接收了一个旧的项目,其中用到了elasticsearch相关内容。所以,在本机搭建了一个elk环境,供自己测试使用。虽然现在的容器化技术已经很成熟,并且elastic官方也支持docker上运行elk相关内容。而且采用docker会更好的屏蔽因为环境问题而引起的一些麻烦。但是,还是想动手做一遍,了解一下内部的一些东西。下面就分享一下采坑过程:
首先说明一下我的环境:
vagrant + virtual box虚拟机环境,系统是 CentOS 8.1 , elk 版本为7.7.0
下载安装包
国内从官方下载安装包速度很慢,即便是踩梯子也是很慢的,所以,在华为云镜像下载相关组件:
华为云镜像地址:https://mirrors.huaweicloud.com 可以搜索相关组件进行下载
elasticsearch : https://mirrors.huaweicloud.com/elasticsearch/7.7.0/
kibana:https://mirrors.huaweicloud.com/kibana/7.7.0/
logstash:https://mirrors.huaweicloud.com/logstash/7.7.0/
解压安装包
解压安装包,过程略。
安装 elasticsearch
elk中除了 logstash 外,其他两个组件都不允许直接用 root 用户运行,所以,创建一个用户运行elk。
groupadd es
useradd es -g es -p password
chown es:es -R elasticsearch-7.7.0 -R
kibana 可以参考上面的命令更改所有者。或者授予相关权限。
修改系统配置
准备运行 elasticsearch,因为es需要对资源的控制有最低要求,所以需要修改系统设置以满足es的运行要求,主要是最大打开文件数,最大文件大小和最大进程数量。可以使用 ulimit -a 查看系统所有相关项配置。
修改 /etc/security/limits.conf 文件
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 65536
es hard fsize unlimited
es soft fsize unlimited
这个配置由四个部分组成:<domain> <type> <item> <value>
其中 domain 部分可以是用户名或者用户组,可以使用通配符
type 取值为 hard 和 soft 分别表示硬件和软件限制
item 表示具体的项,