近期接到公司通知,最新的管理细则要求必须建立统一日志管理系统,调研loganalyzer和ELK后,直到loganalyzer后期调用mysql查询速度较慢,因而本次选择ELK来搭建一套日志监测环境,针对各个部分进行说明:
一、java环境
查找了网上很多安装配置教程,大部分提及java环境的重安装,这里经过我测试安装的经验,这里是可以使用自带的JDK版本的。
要求JDK版本1.8.0,只要版本在1.8.0以上基本都是没问题的,就不要再去卸载、重装、配环境变量来折磨自己了。
因为ELK 7.10的版本还是当前比较最稳定的新版,为了以防万一,执行了 yum update 来对环境依赖软件进行了更新(主要目的还是jdk更新),
这里JDK版本,从最开始171升级到了275版本。
二、下载、安装Elasticsearch
官网地址:https://www.elastic.co/cn/downloads/
依次下载了elasticsearch-7.10.1-linux-x86_64.tar.gz、kibana-7.10.1-linux-x86_64.tar.gz、logstash-7.10.1-linux-x86_64.tar.gz压缩包。
这里我是配置了一个500G分区来安装、存储ELK的数据,具体的分区方式见:Centos7.6虚机硬盘扩容-新建逻辑分区。
在/data/es-data下面分别新建目录来进行ELK的解压缩安装,新建命令为 mkdir elasticsearch (删除命令为 rm -r elasticsearch)。
我使用的是xshell来连接的虚机,上传解压步骤如下:
- 使用rz命令直接将本地文件上传到当前目录。
- 使用tar -zxvf elasticsearch-7.10.1-linux-x86_64.tar.gz 解压缩到当前目录下。
- 进入到解压缩的 elasticsearch-7.10.1/config 目录下,对elasticsearch.yml 进行配置。
A、单机版本的参考如下配置:
B、此时直接启动elasticsearch还是不能成功,一共排查了如下几个问题:
- 首先是上图参考网上配置的 http.cors.enable: true、http.cors.allow-origin: "*",这几个参数会造成启动的时候,不停的询问are you sure http.cors.enable?我直接注释掉后,就进入到下一个节点了。
- 第二个错误提示是root用户不能启动elasticsearch,解决办法是参考网上的教程,设置了elk用户。步骤如下:
1) root用户下,新建elk : adduser elk
2)为elk用户设置密码:passwd elk
3)将 data文件夹的权限赋给elk:chown -R elk /data
4)将elk增加到sudoers中,vim /etc/sudoers
将data目录的权限赋给elk用户之后,之前安装的内容全部消失了,所以又重新操作了上述上传、安装的步骤,推测是权限变更的原因,建议先新建用户!!!
- 第三个错误提示elk用户能使用的内容太小,提示大概需要65536
1) root用户下,编辑limits.conf文件,添加两行描述,操作如下:
vim /etc/security/limits.conf
*** hard nofile 65536
*** soft nofile 65536 #*** 是启动elasticsearch的用户,这里是elk
2) 另需编辑另外一个文件max_map_count,它包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
vim /etc/sysctl.conf
vm.max_map_count = 655360
执行 sysctl -p
至此,切换到elk用户下,进入/data/es-data/elasticsearch-7.10.1/bin目录下,启动elasticsearch成功!
elasticsearch的启动方式如下:1)前台启动: ./elasticsearch 2)后台启动:./elasticsearch -d
安装和排错部分,均参考了这位老师的经验:Linux centos7 安装ElasticSearch 7.0
后续logstash及kibana的安装请参考:logstash安装、kibana安装