Elastic Stack(elk+filebeat)

Elastic Stack

什么是Elastic Stack?

Elastic Stack是由ELK演化而来,ELK是三种软件的简称,分别是Elasticsearch、logstash、kibana组成,在发展的过程中,又有新成员Beats的加入,形成了Elastic Stack。

也就是ELK在兼并Beats后形成的新联盟–ELKB是Elastic Stack。

什么是beats?

Beats是轻量级(资源高效,无依赖性,小型)和开放源代码日志发送程序的集合,这些日志发送程序充当安装在基础结构中不同服务器上的代理,用于收集日志或指标(metrics)。这些可以是日志文件(Filebeat),网络数据(Packetbeat),服务器指标(Metricbeat)或Elastic和社区开发的越来越多的Beats可以收集的任何其他类型的数据。 收集后,数据将直接发送到Elasticsearch或Logstash中进行其他处理。Beats建立在名为libbeat的Go框架之上,该框架用于数据转发,这意味着社区一直在开发和贡献新的Beats。

Filebeat

顾名思义,Filebeat用于收集和传送日志文件,它也是最常用的Beat。 Filebeat如此高效的事实之一就是它处理背压的方式-因此,如果Logstash繁忙,Filebeat会减慢其读取速率,并在减速结束后加快节奏。
Filebeat几乎可以安装在任何操作系统上,包括作为Docker容器安装,还随附用于特定平台(例如Apache,MySQL,Docker等)的内部模块,其中包含这些平台的默认配置和Kibana对象。

Packetbeat

网络数据包分析器Packetbeat是第一个引入的beat。 Packetbeat捕获服务器之间的网络流量,因此可用于应用程序和性能监视。
Packetbeat可以安装在受监视的服务器上,也可以安装在其专用服务器上。 Packetbeat跟踪网络流量,解码协议并记录每笔交易的数据。 Packetbeat支持的协议包括:DNS,HTTP,ICMP,Redis,MySQL,MongoDB,Cassandra等。

Metricbeat

Metricbeat是一种非常受欢迎的beat,它收集并报告各种系统和平台的各种系统级度量。 Metricbeat还支持用于从特定平台收集统计信息的内部模块。您可以使用这些模块和称为指标集的metricsets来配置Metricbeat收集指标的频率以及要收集哪些特定指标。

Heartbeat

Heartbeat是用于“uptime monitoring”的。本质上,Heartbeat是探测服务以检查它们是否可访问的功能,例如,它可以用来验证服务的正常运行时间是否符合您的SLA。 您要做的就是为Heartbeat提供URL和正常运行时间指标的列表,以直接发送到Elasticsearch或Logstash以便在建立索引之前发送到您的堆栈。

Auditbeat

Auditbeat可用于审核Linux服务器上的用户和进程活动。 与其他传统的系统审核工具(systemd,auditd)类似,Auditbeat可用于识别安全漏洞-文件更改,配置更改,恶意行为等。

Winlogbeat

Winlogbeat仅会引起Windows系统管理员或工程师的兴趣,因为它是专门为收集Windows事件日志而设计的节拍。 它可用于分析安全事件,已安装的更新等。

Functionbeat

Functionbeat被定义为“serverless”的发件人,可以将其部署为收集数据并将其发送到ELK堆栈的功能。 Functionbeat专为监视云环境而设计,目前已针对Amazon设置量身定制,可以部署为Amazon Lambda函数,以从Amazon CloudWatch,Kinesis和SQS收集数据。

一、filebeat介绍

Filebeat由两个主要组成部分组成:prospector(探勘者)和 harvesters(矿车)。这些组件一起工作来读取文件并将事件数据发送到指定的output。

  • prospector: 负责找到所有需要进行读取的数据源
  • harvesters:负责读取单个文件的内容,并将内容发送到output中,负责文件的打开和关闭。

二、Filebeat的工作方式

启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到为Filebeat配置的输出。

三、Filebeat工作原理

Filebeat可以保持每个文件的状态,并且频繁地把文件状态从注册表里更新到磁盘。这里所说的文件状态是用来记录上一次Harvster读取文件时读取到的位置,以保证能把全部的日志数据都读取出来,然后发送给output。如果在某一时刻,作为output的ElasticSearch或者Logstash变成了不可用,Filebeat将会把最后的文件读取位置保存下来,直到output重新可用的时候,快速地恢复文件数据的读取。在Filebaet运行过程中,每个Prospector的状态信息都会保存在内存里。如果Filebeat出行了重启,完成重启之后,会从注册表文件里恢复重启之前的状态信息,让FIlebeat继续从之前已知的位置开始进行数据读取。

四、Filebeat工作流程

Filebeat的工作方式如下:启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到为Filebeat配置的输出。
img

注:Elastic 公司基于 Go 开发了一个公共组件——libbeat,该组件提供所有 Beats 使用的基础 API,通过这个 API 可以发送数据到 Elasticsearch、配置输入源(input)参数,实现日志打印等等功能,开发人员可以基于该组件开发符合自己需求的 Beat 数据采集器。

五、部署elk+filebeat

1、安装、解压安装包
cd /opt
tar zxf filebeat-6.5.4-linux-x86_64.tar.gz
mv filebeat-6.5.4-linux-x86_64 /usr/local/filebeat

image-20220830173909662

2、修改filebeat.yml
grep -v "#\|^$" filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/httpd/access_log
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
setup.kibana:
output.logstash:
   hosts: ["192.168.10.11:5044"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

image-20220830190944361

3、启动filebeat
./filebeat -c filebeat.yml &

image-20220830191125646

4、配置logstash的.conf文件
vim apache.conf 

input {
        beats{
                port =>5044
                        }
                }

output {
        elasticsearch {
          hosts => ["192.168.10.13:9200"]
          index => "httpd-%{+YYYY.MM.dd}"
                                          }
stdout {codec => rubydebug}
       }

image-20220830191547206

5、启动logstash
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/apache.conf &

image-20220830192001020

6、测试
http://192.168.10.12:9100/

image-20220830192059695

http://192.168.10.12:5601/app/kibana
6、测试
http://192.168.10.12:9100/
http://192.168.10.12:5601/app/kibana

image-20220830193418231

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值