随笔(三十一)『ELK 单机部署』

发布时间 2023-08-30 20:03:54作者: 小昕昕

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下

image

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

image

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

4.4、修改input-output.conf配置

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

image

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

image

5.2、logstash执行./bin/logstash -f config/input-output.conf启动命令没反应

5.2.1 原因 & 解决方案
原因:内存不够

# 查看内存,发现当时只有90M了
free -h

解决:给虚拟机增加内存到4G