2.Beats入门简介

使用Beat收集nginx日志和指标数据

项目需求

Nginx是一款非常优秀的web服务器,往往nginx服务会作为项目的访问入口,那么,nginx的性能保障就变得非常重要了,如果nginx的运行出现了问题就会对项目有较大的影响,所以,我们需要对nginx的运行有监控措施,实时掌握nginx的运行情况,那就需要收集nginx的运行指标和分析nginx的运行日志了。

业务流程

说明:

  • 通过Beats采集Nginx的指标数据和日志数据
  • Beats采集到数据后发送到Elasticsearch中
  • Kibana读取数据进行分析
  • 用户通过Kibana进行查看分析报表

部署Nginx

部署教程可以参考这篇博客:CentOS下如何安装Nginx?

部署完成后,我们就可以启动nginx了

启动完成后,我们通过下面命令,就可以获取到nginx中的内容了

tail -f /var/log/nginx/access.log

Beats简介

通过查看ElasticStack可以发现,Beats主要用于采集数据

官网地址:https://www.elastic.co/cn/beats/

 

 

 Beats平台其实是一个轻量性数据采集器,通过集合多种单一用途的采集器,从成百上千台机器中向Logstash或ElasticSearch中发送数据。

通过Beats包含以下的数据采集功能

  • Filebeat:采集日志文件
  • Metricbeat:采集指标
  • Packetbeat:采集网络数据
  • 如果我们的数据不需要任何处理,那么就可以直接发送到ElasticSearch中

    如果们的数据需要经过一些处理的话,那么就可以发送到Logstash中,然后处理完成后,在发送到ElasticSearch

    最后在通过Kibana对我们的数据进行一系列的可视化展示

    Filebeat

    介绍

    Filebeat是一个轻量级的日志采集器

  • 为什么要用Filebeat?

    当你面对成百上千、甚至成千上万的服务器、虚拟机和溶气气生成的日志时,请告别SSH吧!Filebeat将为你提供一种轻量型方法,用于转发和汇总日志与文件,让简单的事情不再繁华,关于Filebeat的记住以下两点:

    • 轻量级日志采集器
    • 输送至ElasticSearch或者Logstash,在Kibana中实现可视化

    架构

    用于监控、收集服务器日志文件.

  • 流程如下:

    • 首先是input输入,我们可以指定多个数据输入源,然后通过通配符进行日志文件的匹配
    • 匹配到日志后,就会使用Harvester(收割机),将日志源源不断的读取到来
    • 然后收割机收割到的日志,就传递到Spooler(卷轴),然后卷轴就在将他们传到对应的地方

    下载

    官网地址:https://www.elastic.co/cn/downloads/beats/filebeat

    选中对应版本的Filebeat,我这里是Centos部署的,所以下载Linux版本

 

下载后,我们上传到服务器上,然后创建一个文件夹

# 创建文件夹
mkdir -p /soft/beats
# 解压文件
tar -zxvf filebeat-7.9.1-linux-x86_64.tar.gz 
# 重命名
mv filebeat-7.9.1-linux-x86_64/ filebeat

然后我们进入到filebeat目录下,创建对应的配置文件

# 进入文件夹
cd filebeats
# 创建配置文件
vim mogublog.yml

添加如下内容

filebeat.inputs: # filebeat input输入
- type: stdin    # 标准输入
  enabled: true  # 启用标准输入
setup.template.settings: 
  index.number_of_shards: 3 # 指定下载数
output.console:  # 控制台输出
  pretty: true   # 启用美化功能
  enable: true

启动

在我们添加完配置文件后,我们就可以对filebeat进行启动了

./filebeat -e -c mogublog.yml

后台启动

nohup ./logstash -f ./mogu-dashboard.conf  > catalina.out  2>&1 &

 

 

 然后我们在控制台输入hello,就能看到我们会有一个json的输出,是通过读取到我们控制台的内容后输出的

 

 

 内容如下

{
    "@timestamp":"2019-01-12T12:50:03.585Z",
    "@metadata":{ #元数据信息
        "beat":"filebeat",
        "type":"doc",
        "version":"6.5.4"
    },
    "source":"",
    "offset":0,
    "message":"hello", #元数据信息
    "prospector":{
        "type":"stdin" #元数据信息
    },
    "input":{ #控制台标准输入
        "type":"stdin"
    },
    "beat":{  #beat版本以及主机信息
        "name":"itcast01",
        "hostname":"ElasticStack",
        "version":"6.5.4"
    },
    "host":{
        "name":"ElasticStack"
    }
}

读取文件

我们需要再次创建一个文件,叫 mogublog-log.yml,然后在文件里添加如下内容

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /soft/beats/logs/*.log
setup.template.settings:
  index.number_of_shards: 3
output.console:
  pretty: true
  enable: true

添加完成后,我们在到下面目录创建一个日志文件

# 创建文件夹
mkdir -p /soft/beats/logs

# 进入文件夹
cd /soft/beats/logs

# 追加内容
echo "hello" >> a.log

然后我们再次启动filebeat

 ./filebeat -e -c mogublog-log.yml

能够发现,它已经成功加载到了我们的日志文件 a.log

 

 

 同时我们还可以继续往文件中追加内容

echo "are you ok ?" >> a.log

追加后,我们再次查看filebeat,也能看到刚刚我们追加的内容

可以看出,已经检测到日志文件有更新,立刻就会读取到更新的内容,并且输出到控制台。

自定义字段

但我们的元数据没办法支撑我们的业务时,我们还可以自定义添加一些字段

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /soft/beats/logs/*.log
  tags: ["web", "test"]  #添加自定义tag,便于后续的处理
  fields:  #添加自定义字段
    from: test-web
  fields_under_root: true #true为添加到根节点,false为添加到子节点中
setup.template.settings:
  index.number_of_shards: 3
output.console:
  pretty: true
  enable: true

添加完成后,我们重启 filebeat

./filebeat -e -c mogublog-log.yml

然后添加新的数据到 a.log中

echo "test-web" >> a.log

我们就可以看到字段在原来的基础上,增加了两个

输出到ElasticSearch

我们可以通过配置,将修改成如下所示

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /soft/beats/logs/*.log
  tags: ["web", "test"]
  fields:
    from: test-web
  fields_under_root: false 
setup.template.settings:
  index.number_of_shards: 1
output.elasticsearch:
  hosts: ["127.0.0.1:9200"]

启动成功后,我们就能看到它已经成功连接到了es了

 

然后我们到刚刚的 logs文件夹向 a.log文件中添加内容

echo "hello mogublog" >> a.log

在ES中,我们可以看到,多出了一个 filebeat的索引库

 

然后我们浏览对应的数据,看看是否有插入的数据内容

 

posted @ 2022-01-20 09:39  IT搬砖者  阅读(171)  评论(0编辑  收藏  举报