Filebeat+ELK 部署

一、ELFK(Filebeat + ELK)

1.1 Filebeat 的作用

由于 logstash 会大量占用系统的内存资源,一般我们会使用 filebeat 替换 logstash 收集日志的功能,组成 ELFK 架构

或用 fluentd 替代 logstash 组成 EFK(elasticsearch/fluentd/kibana),由于 fluentd 是由 Go 语言开发的,一般在 K8s 环境中使用较多

1.2 ELFK 工作流程

filebeat 将日志收集后交由 logstash 处理

logstash 进行过滤、格式化等操作,满足过滤条件的数据将发送给 ES

ES 对数据进行分片存储,并提供索引功能

Kibana 对数据进行图形化的 web 展示,并提供索引接口

1.3 ELFK 的部署

1.3.1服务器配置

|-------------|--------|----------|----------------|----------------------|
| 服务器 | 配置 | 主机名 | ip地址 | 主要软件部署 |
| node1 节点 | 2C/4G | node1 | 192.168.91.104 | ElasticSearch、Kibana |
| node2 节点 | 2C/4G | node2 | 192.168.91.105 | ElasticSearch |
| apache 节点 | / | apache | 192.168.91.102 | Logstash、Apache |
| filebeat 节点 | / | filebeat | 192.168.91.103 | Filebeat |

在 ELK 的服务配置的基础上,增加一台 filebeat 服务器,其余不变(所以以下只说明部署Filebeat服务器)

1.3.2服务器环境

复制代码
[root@localhost ~]# hostnamectl set-hostname filebeat
[root@localhost ~]# su
[root@filebeat ~]# systemctl stop firewalld
[root@filebeat ~]# setenforce 0

1.3.3安装 filebeat

复制代码
[root@filebeat ~]# cd /opt
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-linux-x86_64.tar.gz
[root@filebeat opt]# tar zxvf filebeat-6.2.4-linux-x86_64.tar.gz 
[root@filebeat opt]# mv filebeat-6.2.4-linux-x86_64 /usr/local/filebeat

1.3.4修改 filebeat 主配置文件

复制代码
[root@filebeat opt]# cd /usr/local/filebeat/
[root@filebeat filebeat]# cp filebeat.yml filebeat.yml.bak
[root@filebeat filebeat]# vim filebeat.yml
 
filebeat.prospectors:
##21行,指定log类型,从日志文件中读取消息
- type: log
##24行,开启日志收集功能,默认为false
  enabled: true
##28行,指定监控的日志文件
    - /var/log/*.log
##29行,添加收集/var/log/messages
    - /var/log/messages
##46行,添加以下内容,注意格式
  fields: 
    service_name: filebeat
    log_type: log
    service_id: 192.168.91.103
#-------------------------- Elasticsearch output ------------------------------
该区域内容全部注释
#----------------------------- Logstash output --------------------------------
##157行,取消注释
output.logstash:
##159行,取消注释,指定logstash的IP和端口号
  hosts: ["192.168.91.102:5044"]

配置文件修改如下

1.3.5在 logstash7-2 组件所在节点(apache节点)上新建一个 logstash 配置文件

复制代码
[root@apache ~]# cd /etc/logstash/conf.d/
[root@apache conf.d]# vim logstash.conf
 
input {
    beats {
        port => "5044"
    }
}
output {
    elasticsearch {
        hosts => ["192.168.91.104:9200"]
        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}
 
[root@apache conf.d]# /usr/share/logstash/bin/logstash -f logstash.conf

1.3.6启动配置文件

复制代码
[root@filebeat filebeat]# ./filebeat -e -c filebeat.yml
#启动filebeat,-e记录到stderr并禁用syslog /文件输出,-c指定配置文件

1.3.7浏览器验证

先去浏览器访问 http://192.168.91.104:9100,查看filebeat索引是否创建成功

浏览器访问 http://192.168.91.104:5601 登录 kibana

在Kibana创建索引filebeat

查看索引信息

当我们在Kibana访问filebeat时,查看 filebeat主机实时收集的信息

./filebeat -e -c filebeat.yml

相关推荐
极限实验室2 分钟前
INFINI Labs 产品更新 - Easysearch 2.1.0 新增高性能 Rules 规则引擎插件,数据探索 Discover 等
数据库·产品
鹿角片ljp2 小时前
苍穹外卖 day05:店铺营业状态设置与Redis入门实战
数据库·redis·缓存
m0_743470373 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
Demon_Hao3 小时前
JAVA通过Redis实现Key分区分片聚合点赞、收藏等计数同步数据库,并且通过布隆过滤器防重复点赞
java·数据库·redis
掘根3 小时前
【微服务即时通讯】消息转发子服务
数据库·oracle
喜欢喝果茶.3 小时前
SQL 预处理
数据库·sql
鸠摩智首席音效师4 小时前
如何使用 docker exec 在容器中运行命令 ?
运维·docker·容器
似水এ᭄往昔4 小时前
【Linux】自动化构建-make/Makefile
linux·运维·服务器·ubuntu
数据科学小丫4 小时前
Python 数据存储操作_数据存储、补充知识点:Python 与 MySQL交互
数据库·python·mysql
Knight_AL5 小时前
Nacos 启动问题 Failed to create database ’D:\nacos\nacos\data\derby-data’
开发语言·数据库·python