这篇文章主要为大家展示了“什么是ELK”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“什么是ELK”这篇文章吧。
ELK其实是Elasticsearch,Logstash 和 Kibana三个产品的首字母缩写,这三款都是开源产品。
ElasticSearch(简称ES),是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。
Logstash,是一个数据收集引擎,主要用于进行数据收集、解析,并将数据发送给ES。支持的数据源包括本地文件、ElasticSearch、MySQL、Kafka等等。
Kibana,为 Elasticsearch 提供了分析和 Web 可视化界面,并生成各种维度表格、图形。
环境依赖:CentOS7.5,JDK1.8,ElasticSearch7.9.3,Logstash 7.9.3,Kibana7.9.3。
首先,到官网下载安装包,然后使用tar -zxvf
命令解压。
找到config目录下的elasticsearch.yml文件,修改配置:
cluster.name: es-applicationnode.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/可以看到如下信息,表示安装成功。
首先在官网下载安装压缩包,然后解压,找到/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
命令,可以看到两个进程在运行:
首先还是到官网下载压缩包,然后解压,找到/config目录下的kibana.yml文件,修改配置:
server.port: 5601server.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交互界面:
全部启动成功后,整个过程应该是这样,我们看一下:
浏览器打开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,也要改一下:
#输入源改成beatsinput { 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”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4606773/blog/4702290