环境配置
软件版本
这里使用较新的7.3.0版本,ELK所有的组件最好选择相同的版本
时间同步
[root@cong11 ~]# ntpdate ntp1.aliyun.com
ELK部署
上传软件包
安装jdk
由于ELK 的3个软件都需要JDK支持,所以只要安装Elasticsearch + Logstash + Kibana的服务器都要装JDK,jdk版本至少1.8
解压jdk软件包
[root@localhost ~]# tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/
配置jdk环境变量
[root@localhost ~]# vim /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
[root@localhost ~]# source /etc/profile
查看java环境
[root@localhost ~]# java -version
安装elasticsearch
我们这里开始安装Elasticsearch,这里做实验配置用的是Elasticsearch单节点部署,生产环境中应该部署Elasticsearch集群,保证高可用。
解压软件包
[root@localhost ~]# tar -zxvf elasticsearch-7.3.0-linux-x86_64.tar.gz -C /usr/local/
创建用户
源码包安装Elasticsearch不能用root启动,需要新建一个用户来启动ElasticSearch,这里创建普通用户elk
[root@localhost ~]# useradd elk
给文件授权
[root@localhost ~]# chown -R elk:elk /usr/local/elasticsearch-7.3.0/
设置内核参数
修改系统参数,确保系统有足够资源启动ES
[root@localhost ~]# vim /etc/sysctl.conf
vm.max_map_count=655360
执行sysctl -p,确保生效配置生效
注:
vm.max_map_count这个参数就是允许一个进程在VMA(Virtual Memory Areas,虚拟内存区域)拥有最大数量,虚拟内存区域是一个连续的虚拟地址空间区域。在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。调优这个值将限制进程可拥有VMA的数量,当达到vm.max_map_count了就是返回out of memory errors。
这个数据通过下面的命令可以查看: cat /proc/sys/vm/max_map_count
可以通过命令cat /proc/{pids}/maps |wc -l来监控