上一篇文章详细说明了如何在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
如果没有输入信息表示没有安装过,如果安装过会显现如下相关信息:
当然,如果安装过,但是想要卸载当前版本重新安装的话,可以执行以下命令:
rpm -qa | grep java | xargs rpm -e --nodeps
安装JAVA步骤如下(我这里以java1.8版本为例):
1.1 查看java1.8版本列表
yum list java-1.8*
1.2 安装java-1.8.0版本的所有文件
yum install java-1.8.0-openjdk* -y
1.3 检查java是否安装成功
java -version
二、安装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
通过以下命令可以查看es的安装路径(正常安装在/usr/share/elasticsearch/)
rpm -ql elasticsearch
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”即可。
# 修改shell配置,将elasticsearch用户的shell从“/sbin/nologin”修改为“/bin/bash”
vi /etc/passwd
修改成功后,再次启动服务即可成功。
2.5 查看ES运行状态,出现以下信息说明服务启动成功
curl http://localhost:9200
三、安装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
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
四、安装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就完成了,后面会再开一篇博客详细说明如何使用。