1、环境准备
1.1、修改最大文件打开数量
vim /etc/security/limits.conf
# 修改的内容
* soft nofile 65536
* hard nofile 65536
* soft nproc 2048
* hard nproc 4096
1.2、修改进程数
vim /etc/security/limits.d/20-nproc.conf
# 修改的内容
* soft nproc 4096
root soft nproc unlimited
1.3、修改虚拟内存 和 最大并发连接
vim /etc/sysctl.conf
# 修改的内容
vm.max_map_count=655360
fs.file-max=655360
vm.swappiness=0
1.4、重启系统
reboot
1.6、创建es普通用户
useradd -s "/bin/bash" elk
1.7、创建相关目录并赋权
mkdir /usr/elk
mkdir /elk
chown -R elk:elk /usr/elk
chown -R elk:elk /elk
1.8、压缩包放到/usr/elk下

1.9、解压
tar -zvxf elasticsearch-7.8.0-linux-x86_64.tar.gz
tar -zvxf kibana-7.8.0-linux-x86_64.tar.gz
tar -zvxf logstash-7.8.0.tar.gz

2、elasticserach部署
2.1、赋权
chown -R elk:elk /usr/elk/elasticsearch-7.8.0/
2.2、创建es相关目录
mkdir /elk/es
mkdir /elk/es/data
mkdir /elk/es/logs
2.3、修改配置
cd /usr/elk/elasticsearch-7.8.0
vim config/elasticsearch.yml
# 修改的内容
cluster.name: elasticsearch
node.name: node-1
node.master: true
node.data: true
cluster.initial_master_nodes: ["node-1"]
path.data: /elk/es/data
path.logs: /elk/es/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
2.4、修改JVM堆大小
vim /usr/elk/elasticsearch-7.8.0/config/jvm.options
# 修改内容 一般设置为虚拟机内存的一半,最少为2G,推荐设置为4G,自己玩就没修改了还是保留原来的1g
-Xms1g ----修改成 -Xms2g
-Xmx1g ----修改成 -Xms2g
2.5、切换到elk账号
su - elk
2.6、启动es
cd /usr/elk/elasticsearch-7.8.0
# 后台启动
./bin/elasticsearch -d
3、kibana部署
3.1、赋权
chown -R elk:elk /usr/elk/kibana-7.8.0/
3.2、修改kibana配置
cd /usr/elk/kibana-7.8.0
vim config/kibana.yml
# 修改内容
i18n.locale: "zh-CN"
server.port: 5601
server.host: "192.168.195.101" #kibana本机的地址
elasticsearch.hosts: "http://192.168.195.101:9200" #ES主节点地址+端口
kibana.index: ".kibana"
3.3、切换到elk账号
su - elk
3.4、启动kibana
cd /usr/elk/kibana-7.8.0/bin
#启动
nohup ./kibana &
4、logstash部署
4.1、创建logstash相关目录
mkdir /elk/logstash
mkdir /elk/logstash/data
mkdir /elk/logstash/logs
4.1、授权
chown -R elk:elk /usr/elk/logstash-7.8.0/
chown -R elk:elk /elk/logstash/
4.3、修改logstash配置
cd /usr/elk/logstash-7.8.0
vim config/logstash.yml
# 修改内容
path.data: /elk/logstash/data
path.logs: /elk/logstash/logs
vim config/input-output.conf
# 修改内容
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 9060
codec => json_lines
}
}
filter {
}
output {
elasticsearch {
hosts => ["192.168.195.101:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
4.5、切换到elk账号
su - elk
4.6、启动logstash
cd /usr/elk/logstash-7.8.0
nohup ./bin/logstash -f config/input-output.conf &
5、碰到问题
5.1、logstash启动报错,缺少JDK
5.1.1、将jdk安装包放到自己喜欢的位置,解压
tar -zvxf jdk-8u381-linux-x64.tar.gz

5.1.2、配置环境变量
vim /etc/profile
# 尾部添加内容
export JAVA_HOME=/usr/java/jdk1.8.0_381
export JRE_HOME=/usr/java/jdk1.8.0_381/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# 文件生效
source /etc/profile
# 查看版本
java -version

5.2.1 原因 & 解决方案
原因:内存不够
# 查看内存,发现当时只有90M了
free -h
解决:给虚拟机增加内存到4G