千家信息网

什么是ELK

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要为大家展示了"什么是ELK",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"什么是ELK"这篇文章吧。一、什么是ELKELK其实是Elastics
千家信息网最后更新 2026年11月01日什么是ELK

这篇文章主要为大家展示了"什么是ELK",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"什么是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,实际上是有缺陷的。如果Logstash需要添加插件,那就全部服务器的Logstash都要添加插件,扩展性差。所以就有了FileBeat,占用资源少,只负责采集日志,不做其他的事情,这样就轻量级,把Logstash抽出来,做一些滤处理之类的工作。

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"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

文件 用户 命令 配置 后台 日志 数据 目录 输出 搜索 成功 内容 界面 篇文章 分析 切换 输入 三个 产品 口号 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 关于新基建和互联网科技 与互联网科技公司 互联网科技小贷 互联网科技缩写 湖南洣水互联网科技有限公司扣款 江苏南京365互联网科技 阿里巴巴算科技企业还是互联网 中国互联网有什么科技含量 团飞科技与伯堂互联网服务平台 常德市电业局互联网科技部 岳阳华臻互联网科技有限公司 荆州市昕露互联网络科技有限公司 深圳市优智互联网科技有限公司 华夏恒生互联网科技013171 皮皮虾互联网科技有限公司 北京天晋互联网科技有限公司 第三届互联网大会安防黑科技 长沙易易互联网科技有限公司 上海旺乐尼互联网科技有限公司 互联网 科技节活动 微视频大赛 高科技互联网 互联网和科技创新 上海互联网科技有限公司 互联网科技的英文 佰商互联网科技有限公司 湖南洣水互联网科技有限公司扣款 长沙渺峰互联网科技有限公司 安徽零酒互联网科技有限公司 科技互联网专业务虚会材料 互联网科技创业计划的风险分析
0