什么是ELK

70次阅读
没有评论

共计 3095 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要为大家展示了“什么是 ELK”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“什么是 ELK”这篇文章吧。

一、什么是 ELK

ELK 其实是 Elasticsearch,Logstash 和 Kibana 三个产品的首字母缩写,这三款都是开源产品。

ElasticSearch(简称 ES),是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。

Logstash,是一个数据收集引擎,主要用于进行数据收集、解析,并将数据发送给 ES。支持的数据源包括本地文件、ElasticSearch、MySQL、Kafka 等等。

Kibana,为 Elasticsearch 提供了分析和 Web 可视化界面,并生成各种维度表格、图形。

  二、搭建 ELK

环境依赖:CentOS7.5,JDK1.8,ElasticSearch7.9.3,Logstash 7.9.3,Kibana7.9.3。

 2.1 安装 ElasticSearch

首先,到官网下载安装包,然后使用 tar -zxvf 命令解压。

 

找到 config 目录下的 elasticsearch.yml 文件,修改配置:

cluster.name: es-application
node.name: node-1
# 对所有 IP 开放
network.host: 0.0.0.0
#HTTP 端口号
http.port: 9200
#elasticsearch 数据文件存放目录
path.data: /usr/elasticsearch-7.9.3/data
#elasticsearch 日志文件存放目录
path.logs: /usr/elasticsearch-7.9.3/logs

 

配置完之后,因为 ElasticSearch 使用非 root 用户启动,所以创建一个用户。

#  创建用户 
useradd yehongzhi
#  设置密码
passwd yehongzhi
#  赋予用户权限
chown -R yehongzhi:yehongzhi /usr/elasticsearch-7.9.3/

 

然后切换用户,启动:

#  切换用户 
su yehongzhi
#  启动  - d 表示后台启动
./bin/elasticsearch -d

 

使用命令 netstat -nltp 查看端口号:

 

访问 http://192.168.0.109:9200/ 可以看到如下信息,表示安装成功。

 2.2 安装 Logstash

首先在官网下载安装压缩包,然后解压,找到 /config 目录下的 logstash-sample.conf 文件,修改配置:

input {
 file{
 path =  [/usr/local/user/*.log]
 type =   user_log
 start_position =   beginning
 }
}

output {
 elasticsearch {
 hosts =  [http://192.168.0.109:9200]
 index =   user-%{+YYYY.MM.dd}
 }
}

 

input 表示输入源,output 表示输出,还可以配置 filter 过滤,架构如下:

 

配置完之后,要有数据源,也就是日志文件,准备一个 user.jar 应用程序,然后后台启动,并且输出到日志文件 user.log 中,命令如下:

nohup java -jar user.jar  /usr/local/user/user.log  

 

接着再后台启动 Logstash,命令如下:

nohup ./bin/logstash -f /usr/logstash-7.9.3/config/logstash-sample.conf  

 

启动完之后,使用 jps 命令,可以看到两个进程在运行:

 2.3 安装 Kibana

首先还是到官网下载压缩包,然后解压,找到 /config 目录下的 kibana.yml 文件,修改配置:

server.port: 5601
server.host:  192.168.0.111
elasticsearch.hosts: [http://192.168.0.109:9200]

 

和 elasticSearch 一样,不能使用 root 用户启动,需要创建一个用户:

#  创建用户 
useradd kibana
#  设置密码
passwd kibana
#  赋予用户权限
chown -R kibana:kibana /usr/kibana/

 

然后使用命令启动:

#切换用户 
su kibana
#非后台启动,关闭 shell 窗口即退出
./bin/kibana
# 后台启动
nohup ./bin/kibana 

 

启动后在浏览器打开 http://192.168.0.111:5601,可以看到 kibana 的 web 交互界面:

 2.4 效果展示

全部启动成功后,整个过程应该是这样,我们看一下:

 

浏览器打开 http://192.168.0.111:5601,到管理界面,点击“Index Management”可以看到,有一个 user-2020.10.31 的索引。

 

点击 Index Patterns 菜单栏,然后创建,命名为 user-*。

 

最后,就可以到 Discover 栏进行选择,选择 user-* 的 Index Pattern,然后搜索关键字,就找到相关的日志了!

什么是 ELK
  三、改进优化

上面只是用到了核心的三个组件简单搭建的 ELK,实际上是有缺陷的。如果 Logstash 需要添加插件,那就全部服务器的 Logstash 都要添加插件,扩展性差。所以就有了 FileBeat,占用资源少,只负责采集日志,不做其他的事情,这样就轻量级,把 Logstash 抽出来,做一些滤处理之类的工作。

什么是 ELK
 

FileBeat 也是官方推荐用的日志采集器,首先下载 Linux 安装压缩包:

https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.3-linux-x86_64.tar.gz

 

下载完成后,解压。然后修改 filebeat.yml 配置文件:

#输入源 
filebeat.inputs:
- type: log
 enabled: true
 paths:
 - /usr/local/user/*.log
# 输出,Logstash 的服务器地址
output.logstash:
 hosts: [192.168.0.110:5044]
# 输出,如果直接输出到 ElasticSearch 则填写这个
#output.elasticsearch:
 #hosts: [localhost:9200]
 #protocol:  https

 

然后 Logstash 的配置文件 logstash-sample.conf,也要改一下:

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

 

然后启动 FileBeat:

# 后台启动命令 
nohup ./filebeat -e -c filebeat.yml  /dev/null 2 1 

 

再启动 Logstash:

# 后台启动命令 
nohup ./bin/logstash -f /usr/logstash-7.9.3/config/logstash-sample.conf 

 

怎么判断启动成功呢,看 Logstash 应用的 /logs 目录下的 logstash-plain.log 日志文件:

什么是 ELK
 

以上是“什么是 ELK”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计3095字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)