一。架构介绍
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和可视化系统但是互相能发现对方
中间件:中间件包括 Filebeat、Logstash 和 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节点间相互通信