文章目录
一、基本介绍
-
什么是分布式日志
在分布式应用中,日志被分散在储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。所以我们使用集中化的日志管理,分布式日志就是对大规模日志数据进行采集、追踪、处理。
-
为什么要使用分布式日志
一般我们需要进行日志分析场景:直接在日志文件中`grep`、`awk`就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
-
ELK 分布式日志
实际上ELK
是三款软件的简称,分别是Elasticsearch
、 Logstash
、Kibana
组成。
Elasticsearch 基于java
,是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful
风格接口,多数据源,自动搜索负载等。
Kibana 基于nodejs
,也是一个开源和免费的工具,Kibana
可以为Logstash
和ElasticSearch
提供的日志分析友好的Web 界面,可以汇总、分析和搜索重要数据日志。
Logstash 基于java
,是一个开源的用于收集,分析和存储日志的工具。
下面是ELK
的工作原理:
二、Elasticsearch
1、简介
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题及可能出现的更多其它问题。
ElasticSearch是Elastic Stack的核心,同时Elasticsearch 是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为Elastic Stack的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
2、下载
到官网下载: (https://www.elastic.co/cn/downloads/elasticsearch (opens new window))
3、安装启动(Linux)
- 解压到相应目录
tar -zxvf elasticsearch-7.10.2-linux-x86_64.tar.gz -C /usr/local
- 修改配置
cd /usr/local/elasticsearch-7.10.2/config/
vim elasticsearch.yml
node.name: node-1
path.data: /usr/local/elasticsearch-7.10.2/data
path.logs: /usr/local/elasticsearch-7.10.2/logs
network.host: 127.0.0.1
http.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
- 创建
msk
用户 因为ElasticSearch
不支持Root
用户直接操作,因此我们需要创建一个es
用户
useradd es
chown -R es:es /usr/local/elasticsearch-7.10.2
/usr/local/elasticsearch-7.10.2/bin/elasticsearch -d
curl -XGET 'http://127.0.0.1:9200/_cat/indices?v&pretty'
curl -XDELETE 'http://127.0.0.1:9200/.kibana_1'
在浏览器打开9200
端口地址: (http://192.168.36.:9200/ (opens new window)),如果出现了下面的信息,就表示已经成功。
4、安装启动(windows)
第一步:官网下载windows版本的elasticsearch-7.10.2-windows-x86_64
第二步:修改配置elasticsearch.yml
node.name: node-1
path.data: data