ELK详细安装教程

ELK详细安装教程

ELK的作用

现在的应用为了提高性能和吞吐量,大部分都是分布式的系统,再加上集群化的部署,整个系统的生态是非常庞大的,这样系统一旦出现了故障或者报错,我们看日志就会是一个很庞大的工作,慢而且可能会造成更严重的生产事故,所以ELK就诞生了,它是专门来管理应用日志的的集中式的日志系统。当然,随着软件行业的发展,也出现了其他的日志管理系统,比如Grafana的Loki

大家如果需要出Loki的博客欢迎在评论区留言,博主会尽快完成学习Loki并出一篇详细的博客进行讲解!

什么是ELK

ELK其实就是Elasticsearch,Logstash,Kibana三个开源软件的首字母的简写。

ElasticSearch(ES): 可以对数据进行存储和快速搜索,它和Redis一样,存储的数据是存放在内存中的,常用于大量热点数据的存储,搜索和分析,比如电商的商品信息等。

Logstash: 它是一个数据收集引擎,(ELK中主要就是用来收集日志)主要是对数据的收集,解析,然后把数据发送给ElasticSearch。支持的数据源包括本地文件、ElasticSearch、MySQL、Kafka等等。

Kibana: 可以为Elasticsearch 的提供一个可视化的页面,对数据进行分析,查看,还有各式各样的报表,仪表盘,对数据进行筛选过滤等等。

如下图:
在这里插入图片描述

准备安装

我的环境是腾讯云的服务器CentOS8,Elasticsearch,Logstash,Kibana都是目前最新的版本8.3.3。

温馨提示:不同的版本安装可能有差异,请各位注意,还有就是Elasticsearch,Logstash,Kibana三者的版本要保持一致 ,否则可能会导致报错哦。

首先我们需要到官网下载:
Elasticsearch:Elasticsearch官网下载地址
在这里插入图片描述

Kibana:Kibana官网下载

在这里插入图片描述
Logstash:Logstash官网下载

在这里插入图片描述


重要:
1.Elasticsearch,Logstash,Kibana都是使用JAVA开发的,所以在你的系统中应该是安装JDK的并且版本在8以上,但是在现在下载的安装包中都有JDK,所以本机没有安装JDK也是可以的。
2. 请关闭防火墙或者允许三者的端口访问。

包下载好了之后使用文件传输工具(xftp, filezilla等)连上你的linux服务器,找一个合适的目录上传上去就好了。(我的包都放在了/opt/software下。)

Elasticsearch安装

解压Elasticsearch安装包

tar -zxvf elasticsearch-8.3.3-linux-x86_64.tar.gz

es因为安全问题拒绝使用root用户启动

报错信息:
在这里插入图片描述

所以我们要自己新建一个用户:

# 添加用户
useradd elk
# 为用户设置密码
passwd elk
# 为用户设置文件夹权限(我都是整个software目录,大家根据自己的实际情况进行设置)
chown -R elk /opt/software/
# 切换用户
su elk

现在我们尝试启动ES:

# 前台启动
./bin/elasticsearch
# 后台启动
./bin/elasticsearch -d

可能出现报错:
java.net.UnknownHostException: geoip.elastic.co
at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567) ~[?:?]

此版本将GeoIp功能默认开启了采集。在默认的启动下是会去官网的默认地址下获取最新的Ip的GEO信息

在elasticsearch.yml中添加配置 ingest.geoip.downloader.enabled: false
在这里插入图片描述

启动成功,访问IP:9200 ,控制台提示:
received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/10.0.24.4:9200, remoteAddress=/223.104.39.255:14327}

原因是Elasticsearch默认开启了安全认证,虽然started成功,但访问http://localhost:9200/
失败。
找到config目录下面的elasticsearch.yml配置文件,把安全认证开关从原先的true都改成false,实现免密登录访问即可。
在这里插入图片描述
由于我本机的内存太小,还需要修改一下jvm的参数,找到config下的jvm.options
修改配置:内存占用太多,可以调小一点

-Xms512m
-Xmx512m

启动再访问出现以下内容就算安装好了:
在这里插入图片描述

Kibana安装

1.解压:

tar -zxvf kibana-8.3.3-linux-x86_64.tar.gz 

找到/config目录下的kibana.yml文件,修改配置(如果ES和Kibana在同一台机器上是不需要修改的,因为是默认配置,看自己情况):

# Kibana端口号
server.port: 5601
server.host: "0.0.0.0"
# elasticsearch的地址
elasticsearch.hosts: ["http://82.157.156.64:9200"]

和elasticSearch一样,不能使用root用户启动,需要创建一个用户,我还用刚刚的用户就好了,大家如果想要使用其他用户启动,那像刚刚在创建一个用户就好了。

启动Kibana

./bin/kibana

访问 http://IP:5601/ ,出现以下界面就算完成了:
在这里插入图片描述

Logstash安装

解压安装包:

tar -zxvf logstash-8.3.3-linux-x86_64.tar.gz

找到logstash的config目录下的logstash-sample.conf文件进行修改,不过个人建议复制一份进行修改,保留logstash-sample.conf。我这边进行复制修改。

先介绍一下logstash-sample.conf:
input:输入源,表示从哪里的数据让logstash进行读取日志。
file: 指定一个路径下的日志文件进行读取
jdbc: 表示连接数据库执行sql语句来进行读取
beats:使用filebeats进行读取(一会会进行集成)
filter: 过滤
output :制定要把数据发送到ES的路径和索引

因为我们刚刚在搭建ES的时候就有Log文件,在ES软件的logs目录下,我们就读取这个路径下的log.
接下来我们进行修改logstash-sample.conf,来看一下完整的文件:

input {
  file{
    path => ['/opt/software/elasticsearch-8.3.3/logs/*.log']
    type => 'es_log'
    start_position => "beginning"
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "elasticsearch_log-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

再对整个路径授权:

```powershell
chown -R elk /opt/software/
接下来启动Logstash:

```powershell
./bin/logstash -f /opt/software/logstash-8.3.3/config/logstash.conf

ELK测试

输入IP:5061,在搜索框输入index,选择index management
在这里插入图片描述
就可以看到我们刚刚配置的索引:
在这里插入图片描述
kibana集成ES之后,页面上有一个dev tool,可以执行ES的所有语句:
在这里插入图片描述
打开dev tool,将刚刚的索引名字复制,进行搜索:

在这里插入图片描述

接下来找到Data Views 点击Create data view,如下图:
在这里插入图片描述
输入elasticsearch_log*(和你创建的索引保持一致),点击创建:
在这里插入图片描述
搜索discover,如下图操作,选择刚刚创建的elasticsearch_log*,可以选择时间进行筛选:
在这里插入图片描述
根据不同维度进行选择:
在这里插入图片描述

现在基本就完成。

但是这样会有一个问题,logstash如果添加插件,全部的都要进行添加,会给运维人员造成很大的问题,所以就有了上边提到的FileBeat,占用资源少,只负责采集日志,不做其他的事情,这样就轻量级,把Logstash抽出来,做一些滤处理之类的工作。

FileBeat安装

解压:

tar -zxvf filebeat-8.3.3-linux-x86_64.tar.gz 

修改filebeat.yml配置文件:

#输入源
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /opt/software/elasticsearch-8.3.3/logs/*.log
#输出,Logstash的服务器地址
output.logstash:
  hosts: ["localhost:5044"]
#输出,如果直接输出到ElasticSearch则填写这个
#output.elasticsearch:
  #hosts: ["localhost:9200"]
  # Protocol - either `http` (default) or `https`.
  #protocol: "https"

然后Logstash的配置文件logstash-sample.conf:

#输入源改成beats
input {
  beats {
    port => 5044
    codec => "json"
  }
}

启动FileBeat::

# 前台启动
./filebeat -e -c filebeat.yml
# 后台启动
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &

再启动Logstash:

# 前台启动
./bin/logstash -f ./config/logstash.conf
#后台启动
nohup ./bin/logstash -f ./config/logstash.conf &

查看logstash目录下的/logs/logstash-plain.log日志文件,出现下边的语句就说明集成好了。
在这里插入图片描述
好了,今天的内容就是这么多了。欢迎大家发表留言!

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

壹升茉莉清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值