ELK日志系统

54 阅读2分钟

一。架构介绍

image.png server3 ip:192.168.18.129

elasticserach作用:索引日志信息,内部创建大量索引,并且能够快速索引内容。

web-server的apache:生成日志数据

logstach收集:传送给elasticserach

Elasticsearch:是一个分布式搜索引擎,基于 Apache Lucene 构建。它支持全文搜索、结构化搜索、分析和聚合操作。 kibana:来数据可视化。

logstach有日志搜集和格式转换功能,但是logstach占用资源比较多,firebeat使用的是go语言开发它占用的资源比较少所以后期把loginstage换成firebeat 作为日志收集。但是firebeat没法做格式转换,所以在firebeat和es之间做一个logstach只做格式转换功能 两个主机是单独的elastic和可视化系统但是互相能发现对方

image.png

中间件:中间件包括 FilebeatLogstash 和 kafka等。中间件 是连接数据采集、格式转换、处理和存放数据的关键组件。

中间件的存放数据功能还解决了高并发:

消息队列和消息订阅服务:

消息队列(如 Kafka、RabbitMQ)作用:消息队列作为中间缓存层,用于接收和存储来自数据采集器(如 Filebeat)日志数据。数据被暂时存储在消息队列中,直到下游组件(如 Logstash 或 Elasticsearch)消费完毕。

二,配置过程关键

三台主机,在同一网络环境 一个node1 192.168.18.41 Elasticsearch 加kibana可视化 一个node2 192.168.18.42 Elasticsearch 一个apache 192.168.18.43 apache 加 logstach

node1和node2需要安装了java环境, 并且三台主机都要在hosts文件写入互相的域名解析

node1安装es并且启动服务 在配置文件更改

vim /etc/elasticsearch/elasticsearch.yaml
cluster.name
设置为一个统一的集群名,使得节点相互能发现
node.name
必须唯一,否则会出错




[root@node1 opt]#  grep -v "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk-cluster
node.name: node1
path.data: /data/elk_data                                
path.logs: /var/log/elasticsearch/                           
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
集群的端口互相发现

端口

9200  Elasticsearch 的HTTP API端口,提供 RESTful API 接口

9100  elasticsearch-head 自带的轻量级 HTTP 服务器,默认会运行在以下端口

9300:ES节点间相互通信