上一篇文章详细说明了如何在windows下部署ELK,今天我们再详细说说在Linux下如何部署。

本文中使用的操作系统是Centos7。什么是ELK?为什么使用ELK?在上文中已经说过,这里就不再赘述,有需要的朋友可以查看  windows下部署ELK详细教程

  • 安装JAVA环境
  • 安装Elasticsearch
  • 安装Logstash
  • 安装Kibana

注意:本文中ELK安装在同一个系统中,如果需要安装在不同的服务器,请注意端口的防火墙设置! 

 

一、安装JAVA环境

安装之前我们先确认下系统中是否安装过java,通过以下命令进行确认:

rpm -qa | grep java
rpm -qa | grep jdk
rpm -qa | grep gcj

如果没有输入信息表示没有安装过,如果安装过会显现如下相关信息:

elk安装 不用docker linux安装elk_elk安装 不用docker

当然,如果安装过,但是想要卸载当前版本重新安装的话,可以执行以下命令:

rpm -qa | grep java | xargs rpm -e --nodeps

安装JAVA步骤如下(我这里以java1.8版本为例):

 1.1 查看java1.8版本列表

yum list java-1.8*

elk安装 不用docker linux安装elk_elasticsearch_02

 1.2 安装java-1.8.0版本的所有文件

yum install java-1.8.0-openjdk* -y

elk安装 不用docker linux安装elk_配置文件_03

 1.3 检查java是否安装成功

java -version

elk安装 不用docker linux安装elk_elasticsearch_04

 

二、安装Elasticsearch

 2.1 下载安装es

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-x86_64.rpm
sudo rpm --install elasticsearch-7.12.0-x86_64.rpm

elk安装 不用docker linux安装elk_elk安装 不用docker_05

elk安装 不用docker linux安装elk_elasticsearch_06

 通过以下命令可以查看es的安装路径(正常安装在/usr/share/elasticsearch/)

rpm -ql elasticsearch

elk安装 不用docker linux安装elk_java_07

 2.2 修改ES数据和日志存储路径

# 创建目录,用于存储elasticsearch数据
mkdir -p /data/elasticsearch/datadir
# 修改目录权限
chown -R elasticsearch:elasticsearch /data/elasticsearch/datadir

# 创建日志目录
mkdir -p /data/elasticsearch/logdir
# 修改目录权限
chown -R elasticsearch:elasticsearch /data/elasticsearch/logdir

 2.3 修改ES配置文件

vi /etc/elasticsearch/elasticsearch.yml

 修改信息如下:

# 集群名称,按照自己的需求调整
cluster.name: my-application

# 节点名称
node.name: node-1

# 设置data存储目录
path.data: /data/elasticsearch/datadir

# 设置logs日志的目录
path.logs: /data/elasticsearch/logdir

# 设置内存不使用交换分区
bootstrap.memory_lock: false

# 设置允许所有ip可以连接该elasticsearch,这里根据项目需求自行修改
network.host: 0.0.0.0

# 开启监听的端口,默认为9200
http.port: 9200

discovery.seed_hosts:["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]

 2.4 启动ES

# 启动服务
systemctl start elasticsearch

# 查看运行状态
systemctl status elasticsearch

# 设置开机启动
systemctl enable elasticsearch

注意:

问题:如果是通过SSH远程登录的服务器,启动ES服务时会报错,原因是部署ES时创建的elasticsearch用户默认是禁止shell登录的,通过切换用户命令可以看到提示:this account is currently not avaliable。

解决方案:将elasticsearch用户的shell从“/sbin /nologin”修改为“/bin/bash”即可。

elk安装 不用docker linux安装elk_elk安装 不用docker_08

# 修改shell配置,将elasticsearch用户的shell从“/sbin/nologin”修改为“/bin/bash”
vi /etc/passwd

elk安装 不用docker linux安装elk_elk安装 不用docker_09

修改成功后,再次启动服务即可成功。

 

2.5 查看ES运行状态,出现以下信息说明服务启动成功

curl http://localhost:9200

elk安装 不用docker linux安装elk_配置文件_10

 

 三、安装Logstash

 3.1 下载安装logstash

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.12.0-x86_64.rpm
sudo rpm --install logstash-7.12.0-x86_64.rpm

elk安装 不用docker linux安装elk_elasticsearch_11

 3.2 修改logstash数据和日志存储路径

# 创建目录,用于存储logstash数据
mkdir -p /data/logstash/datadir
# 修改目录权限
chown -R logstash:logstash /data/logstash/datadir

# 创建日志目录
mkdir -p /data/logstash/logdir
# 修改目录权限
chown -R logstash:logstash /data/logstash/logdir

 3.3 修改logstash配置文件

vi /etc/logstash/logstash.yml

  修改信息如下:

# 设置data存储目录
path.data: /data/logstash/datadir

# 设置配置文件目录
path.config: /etc/logstash/conf.d

# 设置日志存储目录
path.logs: /data/logstash/logdir

 3.4 启动logstash

# 启动服务
systemctl start logstash

# 查看运行状态
systemctl status logstash

# 设置开机启动
systemctl enable logstash

 3.5 查看logstash运行状态

# 创建一个软连接
ln -s /usr/share/logstash/bin/logstash.lib.sh /bin/
# 执行logstash的命令
logstash -e 'input { stdin { } } output { stdout {} }'

 执行完上面命令后会出现等待用户输入的提示:“The stdin plugin is now waiting for input:”,这时我们输入测试内容:Jason

elk安装 不用docker linux安装elk_elk安装 不用docker_12

 

四、安装Kinaba

 4.1 下载安装kinaba

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-x86_64.rpm
sudo rpm --install kibana-7.12.0-x86_64.rpm

 默认安装路径:/usr/share/kibana/

 4.2 修改kibana配置文件

vi /etc/kibana/kibana.yml

# 端口,默认5601
server.port: 5601

# 允许所有ip访问
server.host: "0.0.0.0"

# 配置elasticsearch地址
elasticsearch.url: ["http://localhost:9200"]

kibana.index: ".kibana"

 4.3 启动kibana服务

# 启动服务
systemctl start kibana

# 查看运行状态
systemctl status kibana

# 设置开机启动
systemctl enable kibana

 4.4 查看kibana运行情况

curl http://localhost:5601

 

至此,Linux下安装ELK就完成了,后面会再开一篇博客详细说明如何使用。