ELK 是 Elasticsearch、Logstash、Kibana 的简称,这三者是核心套件,但并非全部。这里介绍使用 Spring Cloud 对 ELK 进行整合,实现统一日志系统的搭建。
ELK 统一日志系统搭建ELK 是 Elasticsearch、Logstash、Kibana 的简称,这三者是核心套件,但并非全部。
Elasticsearch 是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放 REST 和 JAVA API 等结构提供高效搜索功能,可扩展的分布式系统。它构建于 Apache Lucene 搜索引擎库之上。
Logstash 是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和 JMX,它能够以多种方式输出数据,包括电子邮件、websockets 和 Elasticsearch。
Kibana 是一个基于 Web 的图形界面,用于搜索、分析和可视化存储在 Elasticsearch 指标中的日志数据。它利用 Elasticsearch 的 REST 接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据
项目使用版本(基于 Linux 系统搭建):
- elasticsearch-7.3.0
下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz
- kibana-7.3.0
下载地址:https://artifacts.elastic.co/downloads/kibana/kibana-7.3.0-linux-x86_64.tar.gz
- logstash-7.3.0
下载地址:https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.tar.gz
Elasticsearch 搭建 下载 Elasticsearchwget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz
解压 Elasticsearch
tar -zxvf elasticsearch-7.3.0-linux-x86_64.tar.gz
修改 Elasticsearch 的配置文件
cd elasticsearch-7.3.0/config/vim elasticsearch.yml
由于默认的配置文件全注释掉了,所以直接在文件末尾添加。注意:不同的版本对应的配置可以不一致,对照一下注释掉的文档是否包含以下配置。
# 如果需要部署集群,集群需要同样的集群名cluster.name: my-application# 每个 node 的名字需要唯一node.name: node-1# 注意一定要是路径后面加上/var/lib/elasticsearch/nodes,要不然无法加入集群,单机不需要# path.data: /var/lib/elasticsearch/nodes# path.logs: /var/log/elasticsearch# 配置服务器的内网地址,有文档配置的 0.0.0.0 或 localhost,但是后面出现了问题,暂未研究什么原因network.host: 192.168.0.146# 配置端口号,默认 9200http.port: 9200# 配置集群节点,多个服务器["node-1", "node-2"]cluster.initial_master_nodes: ["node-1"]# discovery.seed_hosts: ["192.168.0.146", "192.168.0.147", "192.168.0.148"]# 解决跨域http.cors.enabled: truehttp.cors.allow-origin: "*"
启动 Elasticsearch
其中/config/jvm.options 为启动的 JVM 配置,默认为-Xms1g -Xmx1g ….该配置根据自己的实际需求修改。注意:启动时,不可以使用 root 用户。进入 Elasticsearch 上级这里我们创建一个 elsearch 用户
# 创建 elsearch 组groupadd elsearchuseradd elsearch(用户名) -g elsearch(组名) -p elsearch(密码)# 给新创建用户文件夹执行权限chown -R elsearch:elsearch /usr/local/elasticsearch-7.3.0# 切换 elsearch 用户su elsearch
<