【分布式应用】ELFK集群部署与Logstash的过滤模块

本文介绍了如何部署ELFK(Elasticsearch, Logstash, Filebeat, Kibana)集群,并专注于Logstash的过滤模块。通过Logstash的input、filter和output模块配置,特别是Logstash的grok插件,用于对日志字段进行分割和处理。" 113017231,10539343,Highcharts双Y轴图表数据对应问题解决方案,"['图表库', '数据可视化', 'JavaScript', 'Highcharts']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、ELFK集群部署(Filebeat+ELK)

ELFK= ES + logstash+filebeat+kibana

实验环境

node1节点 192.168.239.10 JDK、elasticsearch-6.7.2、kibana-6.7.2 2核4G
node2节点 192.168.239.20 JDK、elasticsearch-6.7.2 2核4G
apache节点 192.168.239.30 JDK、apache、logstash-6.7.2、filebeat-6.7.2 2核4G

注意:ELFK各安装包的版本要一致,或相近。

实验步骤:

1.1 部署ELK集群

ELK集群的部署在前一篇文章中有详细介绍,可参考前一篇文章。

注意:ELFK集群环境下,Logstash 组件所在节点的/etc/logstash/conf.d目录下,不需要创建system.conf配置文件,即Logstash不需要收集系统日志,因

<think>嗯,用户想在离线环境下部署一个由三台虚拟机构成的ELFK集群,也就是Elasticsearch、Logstash、Kibana和Filebeat的组合吧?首先,我得确认用户提到的ELFK是否包括Filebeat,因为有时候可能只是ELK。不过根据问题中的描述,用户明确提到了ELFK,所以应该包含Filebeat。不过用户的问题标题里写的是ELK集群,可能需要再确认一下,但可能只是打字错误,或者用户可能混淆了ELK和ELFK。不过先按照三台虚拟机部署ELK来思考。 用户的环境是离线的,所以所有安装包都需要提前下载好,并且不能依赖在线源。三台虚拟机的话,可能需要将Elasticsearch配置成集群,分布在三个节点上,而Logstash和Kibana可能也需要安装在其中某些节点上。不过通常Elasticsearch是分布式的,Logstash可以作为多个实例,Kibana可能只需要一个节点。但用户可能希望将每个组件都分布在三个节点上,或者可能只是Elasticsearch集群有三个节点,其他组件各一个?需要明确架构。 首先,离线部署的步骤大致包括:准备安装包、配置系统环境、安装各个组件、配置集群、启动服务、验证。需要注意各个组件之间的版本兼容性,比如Elasticsearch、Logstash、Kibana的版本必须一致或者兼容。同时,离线环境下可能需要处理依赖包,比如Java环境,因为Elasticsearch需要Java运行环境。 接下来,用户可能已经有三台虚拟机,系统可能是CentOS或者Ubuntu,需要安装必要的工具,比如JDK。但用户可能已经安装好了,或者需要离线安装。这里需要考虑到离线安装Java的问题,比如使用rpm包或者deb包手动安装。 然后是Elasticsearch集群的配置,需要设置集群名称、节点名称、网络主机、发现种子节点等。每个节点的elasticsearch.yml文件需要正确配置,确保它们能够互相发现并组成集群。同时,系统层面的设置,比如调整文件描述符、内存映射区域,关闭交换分区,可能需要通过sysctl或者systemd配置。 Logstash的配置可能涉及输入、过滤、输出插件,但在离线环境下,用户可能需要提前准备好插件,或者在没有网络的情况下安装。不过Logstash的插件管理可能需要在线,所以离线情况下可能需要手动处理,或者提前下载所有需要的插件。这部分可能需要更多的步骤,比如使用logstash-plugin install的离线方式,或者将插件包拷贝到指定目录。 Kibana的安装相对简单,主要是配置指向Elasticsearch的地址,然后在离线环境下可能需要预先配置好仪表盘或者可视化内容。但用户的问题可能更关注部署本身,而不是后续的使用。 另外,用户提到的三台虚拟机,可能需要每个节点都安装Elasticsearch,并组成集群,而Logstash和Kibana可能只需要安装在其中一台或分散安装。例如,三个节点都运行Elasticsearch,而其中一台同时运行Logstash和Kibana,或者分开部署。需要明确架构设计。 在准备安装包时,用户需要下载对应版本的Elasticsearch、Logstash、Kibana的tar.gz或rpm/deb包,以及Filebeat的包,如果需要的话。然后通过U盘或者内部网络传输到各个虚拟机中,进行安装。 系统优化方面,可能需要调整虚拟内存设置、文件描述符限制、禁用交换分区等,这些都需要在每台虚拟机上配置。特别是对于Elasticsearch节点,这些系统参数调整非常重要,否则可能导致性能问题或者启动失败。 关于用户权限的问题,Elasticsearch不建议以root用户运行,所以需要创建专用用户,比如用户提到的es用户,并赋予相应的目录权限,如数据目录和安装目录的所有权。 另外,防火墙配置需要开放相应的端口,比如Elasticsearch的9200、9300端口,Kibana的5601端口,Logstash的相应端口(如5044用于Beats输入)。在离线环境下,可能需要手动配置防火墙规则,或者关闭防火墙进行测试。 证书和安全性方面,如果用户需要启用安全功能,比如x-pack,那么在离线环境下可能需要手动生成证书,并配置各个节点之间的TLS通信。不过这可能增加了部署的复杂性,用户可能暂时不需要,但需要考虑是否需要指导用户处理这部分内容。 总结步骤可能如下: 1. 准备离线安装包和依赖(Java等) 2. 配置三台虚拟机系统参数 3. 安装Elasticsearch集群,配置各节点的elasticsearch.yml 4. 安装Logstash,配置输入输出 5. 安装Kibana,配置连接Elasticsearch 6. 启动服务,验证集群状态 7. 处理可能的错误,如节点无法加入集群,端口问题等 现在需要将这些步骤具体化,并考虑用户可能遇到的问题,比如版本兼容性、目录权限、配置文件错误等。另外,用户可能还需要配置Logstash的管道,比如接收来自Filebeat的日志,处理后再发送到Elasticsearch,这部分也需要在配置文件中体现。 最后,生成相关的问题需要考虑用户可能的后续疑问,比如性能调优、高可用配置、日志收集配置、安全性设置等。</think>### 分步解答:离线部署三节点ELK集群 --- #### **一、准备工作** 1. **安装包下载** - 在联网环境中下载以下组件(需确保版本一致,如7.15.1): - Elasticsearch(RPM/DEB或TAR包) - Logstash(RPM/DEB或TAR包) - Kibana(RPM/DEB或TAR包) - Java JDK(推荐OpenJDK 11) - 将安装包通过离线介质(如U盘)传输到三台虚拟机。 2. **虚拟机基础配置** - 关闭防火墙(或开放端口9200、9300、5601、5044): ```bash systemctl stop firewalld && systemctl disable firewalld ``` - 调整系统参数(所有节点执行): ```bash # 修改/etc/sysctl.conf vm.max_map_count=262144 # 修改/etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 ``` --- #### **二、部署Elasticsearch集群** 1. **安装Elasticsearch** ```bash # 解压安装包(以tar包为例) tar -zxvf elasticsearch-7.15.1-linux-x86_64.tar.gz -C /opt mv /opt/elasticsearch-7.15.1 /opt/elasticsearch ``` 2. **配置节点文件** 编辑`/opt/elasticsearch/config/elasticsearch.yml`(以节点1为例): ```yaml cluster.name: elk-cluster node.name: node-1 network.host: 0.0.0.0 discovery.seed_hosts: ["192.168.1.101", "192.168.1.102", "192.168.1.103"] cluster.initial_master_nodes: ["node-1", "node-2", "node-3"] ``` 3. **创建专用用户并授权** ```bash useradd es chown -R es:es /opt/elasticsearch chown -R es:es /data/elasticsearch # 数据存储目录 ``` 4. **启动服务** ```bash su es /opt/elasticsearch/bin/elasticsearch -d ``` 5. **验证集群状态** ```bash curl http://192.168.1.101:9200/_cat/nodes ``` 应返回三个节点的信息[^5]。 --- #### **三、部署Logstash** 1. **安装Logstash** ```bash tar -zxvf logstash-7.15.1-linux-x86_64.tar.gz -C /opt mv /opt/logstash-7.15.1 /opt/logstash ``` 2. **配置管道文件** 创建`/opt/logstash/config/logstash.conf`: ```conf input { beats { port => 5044 } } output { elasticsearch { hosts => ["http://192.168.1.101:9200", "http://192.168.1.102:9200"] index => "logs-%{+YYYY.MM.dd}" } } ``` 3. **启动服务** ```bash /opt/logstash/bin/logstash -f /opt/logstash/config/logstash.conf --config.reload.automatic ``` --- #### **四、部署Kibana** 1. **安装Kibana** ```bash tar -zxvf kibana-7.15.1-linux-x86_64.tar.gz -C /opt mv /opt/kibana-7.15.1 /opt/kibana ``` 2. **修改配置文件** 编辑`/opt/kibana/config/kibana.yml`: ```yaml server.host: "0.0.0.0" elasticsearch.hosts: ["http://192.168.1.101:9200"] ``` 3. **启动服务** ```bash /opt/kibana/bin/kibana & ``` --- #### **五、验证部署** 1. **访问Kibana界面** 浏览器打开`http://虚拟机IP:5601`,进入`Management > Stack Monitoring`查看集群状态[^1]。 2. **日志数据测试** 使用Filebeat发送测试日志到Logstash,确认Elasticsearch中生成索引。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值