技术简介:
- Elasticsearch :分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 是用Java 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。在elasticsearch中,所有节点的数据是均等的。
- Logstash :数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。
- Kibana :可视化化平台。它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数据。
- Filebeat:轻量级数据收集引擎。相对于Logstash所占用的系统资源来说,Filebeat 所占用的系统资源几乎是微乎及微。它是基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择。
- Elasticsearch、Logstash、Kibana、Filebeat安装的版本号必须全部一致,不然会出现kibana无法显示web页面。
ELK常见的几种架构:
- Elasticsearch + Logstash + Kibana 这是一种最简单的架构。这种架构,通过logstash收集日志,Elasticsearch分析日志,然后在Kibana(web界面)中展示。这种架构虽然是官网介绍里的方式,但是往往在生产中很少使用。
- Elasticsearch + Logstash + filebeat + Kibana 与上一种架构相比,这种架构增加了一个filebeat模块。filebeat是一个轻量的日志收集代理,用来部署在客户端,优势是消耗非常少的资源(较logstash), 所以生产中,往往会采取这种架构方式,但是这种架构有一个缺点,当logstash出现故障, 会造成日志的丢失。
- Elasticsearch + Logstash + filebeat + redis(也可以是其他中间件,比如RabbitMQ) + Kibana 这种架构是上面那个架构的完善版,通过增加中间件,来避免数据的丢失。当Logstash出现故障,日志还是存在中间件中,当Logstash再次启动,则会读取中间件中积压的日志。
部署:
- 环境准备
10.100.6.60 | elasticsearch-7.11.1 | 数据库,存数据 | CentOS7.6 4核4G | java | java version “1.8.0_171” |
10.100.6.60 | kibana-7.11.1 | 分析,过滤,展示 | CentOS7.6 4核4G | java | java version “1.8.0_171” |
10.100.6.62 | logstash-7.11.1 | 收集日志,过滤数据 | CentOS7.6 4核4G | java | java version “1.8.0_171” |
filebeat-7.11.1 | 收集日志,传输到es | GO | |||
- 软件下载地址:
https://www.elastic.co/cn/downloads/
部署思路如下:Elasticsearch + Logstash + Kibana+filebeats 采用简单的架构
- 在两台服务器配置JDK环境,jdk版本不能太高,推荐jdk8
- 安装elasticsearch
- 部署elasticsearch rpm包
- 修改elasticsearch配置文件
修改的配置文件如下:
vim /etc/elasticsearch/elasticsearch.yml
#
cluster.name: my-application
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 10.100.6.60
http.port: 9200
cluster.initial_master_nodes: [“node-1”]
- 启动elasticsearch
- 部署kibana
- 安装kibana rpm包
- 修改kibana配置文件
vi /etc/kibana/kibana.yml
#
server.port: 5601
server.host: “0.0.0.0”
elasticsearch.hosts: [“http://localhost:9200”]
kibana.index: “.kibana”
- 启动kibana
- 访问kibana,浏览器上输入:http://ip:5601,出现以下界面,则安装成功同时由于启动较慢,可多刷新几次。
- 部署logstash
- 安装logstash rpm包
- 修改logstash配置文件
vim /etc/logstash/logstash.yml
#
http.host: “0.0.0.0”
http.port: 9600-9700
cp /etc/logstash/logstash-sample.conf /etc/logstash/conf.d/logstash.conf
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => [“10.100.6.60:9200”]
index => “logstash-%{+YYYY.MM.dd}”
}
}
- 启动logstash