ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。
Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。
Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据。
ELK架构
通常来说,只使用这三个组件就可以进行日志收集了,不过在企业实际生产中,需要用到ELK做集中日志收集的话,日志的产生量都是惊人的,所以通常情况下会需要缓存层来防止elasticsearch被压垮。架构如下图所示。(也可以通过filebeat来收集日志。)

ELK的部署
需要注意的是,ELK的这三个组件版本要一致,否则可能会出现一些不必要的问题。我们这里选用最新版本7.5.1为例,演示主机均为ubuntu1804。
Elasticsearch
我们这里用两台主机来搭建一个elasticsearch集群,一般来说因为他的选举机制,elasticsearch集群都是3、5、7奇数个,不过2台主机也可以使用,我们这里节约主机使用两台主机做演示,IP分别为192.168.32.41、192.168.32.42。
官网下载链接为https://www.elastic.co/cn/downloads/elasticsearch。
我们这里选择deb安装包安装,也可以选用源码tar包自己解压安装。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-amd64.deb
这个版本的deb包是自带java环境(openjdk11)的,如果主机已经预制java环境,可以去官网下载no-java的版本,使用jdk8的时候有warning,说未来版本将不支持jdk8,建议使用jdk11及以上。
dpkg -i elasticsearch-7.5.1-amd64.deb
elasticsearch的配置文件路径为/etc/elasticsearch/elasticsearch.yml,需要修改的不多,将集群主机IP设置好就可以了,如下所示
root@elasticsearch1:~# grep "^[a-Z]" /etc/elasticsearch/elasticsearch.yml
cluster.name: ELK-CLuster #集群名称,名称相同即属于是同一个集群
node.name: node-1 #本机在集群内的节点名称
path.data: /elasticsearch/data
path.logs: /elasticsearch/logs
bootstrap.memory_lock: true #服务启动的时候锁定足够的内存, 防止数据写入swap
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["192.168.32.41","192.168.32.42"]
cluster.initial_master_nodes: ["node-1","node-2"]
我这里是单独创建了一个日志路径和数据路径,方便管理,并修改属主赋予权限。
mkdir -p /elasticsearch/{data,logs}
chown -R elasticsearch:elasticsearch /elasticsearch
除了在配置文件中

本文详细介绍ELK(Elasticsearch、Logstash、Kibana)日志系统的部署过程,涵盖各组件的功能介绍、配置步骤及实践案例。
最低0.47元/天 解锁文章
2137

被折叠的 条评论
为什么被折叠?



