Beats入门

Beats

简介

Beats集合了多种单一用途的数据采集器,主要有以下几种类型

  • filebeat:采集日志文件
  • metricbeat:采集系统和软件指标
  • packetbeat:采集网络数据

如果数据不需要经过处理,可以直接传给Elasticsearch中

如果数据需要经过处理,可以传给logstash处理,然后再发送给Elasticsearch

Filebeat:轻量级的日志采集器

为什么要用Filebeat

当服务器很多时,ssh登录查看会比较麻烦。启动 Filebeat 后,打开 Logs UI,直接在 Kibana 中观看对您的文件进行 tail 操作的过程

Filebeat工作流程

  • 指定数据源
  • 匹配到日志后,使用Harvester组件读取日志
  • 日志传递到spooler,然后再传到elasticsearch或logstash中

下载安装

选择对应系统的安装包,下载地址:https://www.elastic.co/cn/downloads/beats/filebeat

image.png

下载后,传到服务器上

# 解压
tar xf filebeat-7.13.0-linux-x86_64.tar.gz
# 移动并重命名
mv filebeat-7.13.0-linux-x86_64 /usr/local/filebeat

创建从控制台读取数据的配置文件

cd /usr/local/filebeat

vim mybeat.yml
# 添加以如下内容
filebeat.inputs:
- type: stdin
  enabled: true
output.console:
  pretty: true
  enable: true

启动

./filebeat -e -c mybeat.yml
image.png

输出hello,可以控制台看到json输出

image.png

创建从日志中读取数据的配置文件

vim mybeat1.yml
# 输出以下内容
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/logs/message
output.console:
  pretty: true
  enable: true
# 再次启动
 ./filebeat -e -c mybeat1.yml

# 往messages里追加一点内容
echo "hello" >> /var/log/messages

可以看到刚刚追加的内容


image.png

自定义字段

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/logs/message
  fields_under_root: true  # 自定义字段作为根节点显示 
    # 自定义字段 
  fields:
    myfields: test

output.console:
  pretty: true
  enable: true

输出到Elasticsearch中

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log
  fields:
    myfields: test
  fields_under_root: true 
output.elasticsearch:
  hosts: ["192.168.0.14:9200"]
image.png
自定义索引名称
output.elasticsearch:
  hosts: ["192.168.0.14"]
  index: "message-%{+yyyy-MM}"

setup.ilm.enabled: false
setup.template.enabled: false
setup.template.name: "index"
setup.template.pattern: "index-*"

安装chrome插件Elasticsearch Head查看结果


image.png

还可以按日志类型定义索引名称

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
  # 自定义标签
  tags: "access"
- type: log
  enabled: true
  paths:
    - /var/log/nginx/error.log

  tags: "error"
output.elasticsearch:
  hosts: ["192.168.0.14:9200"]
  indices:
    - index: "nginx-access-%{+yyyy.MM}"
      when.contains:
        tags: "access"
    - index: "nginx-error-%{+yyyy.MM}"
      when.contains:
        tags: "error"

setup.ilm.enabled: false
setup.template.name: "index"
setup.template.pattern: "index-*"
setup.template.enabled: false

image.png

filebeat的组件

harvester
  • 读取单个文件内容
  • 每个文件启动一个harvester,并且harvester负责打开和关闭这些文件
  • 每个文件启动一个harvester
  • 在harvester正在读取文件内容的时候,文件被删除或者重命名了,那么Filebeat就会续读这个文件,这就会造成一个问题,就是只要负责这个文件的harvester没用关闭,那么磁盘空间就不会被释放,默认情况下,Filebeat保存问价你打开直到close_inactive到达
prospector
  • 管理harvester,找到所有读取的文件来源
  • 如果输入类型为日志,则为每个文件启动一个harvester
  • filebeat支持的prospector:stdin和log

module

前面的日志采集都是手动配置,在Filebeat中,有大量的Module,可以简化配置,并且做了简单的处理

# 查看module列表
./filebeat modules list
# 启用module
./filebeat modules enable nginx
# 禁用module
./filebeat modules disable nginx

修改module配置

vim modules.d/nginx.yml


- module: nginx
  # Access logs
  access:
    enabled: true
    # 添加日志文件
    var.paths: ["/var/log/nginx/access.log*"]

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths:

  # Error logs
  error:
    enabled: true
    var.paths: ["/var/log/nginx/error.log*"]

配置filebeat,添加module

filebeat.inputs:
output.elasticsearch:
  hosts: ["192.168.0.20:9200"]
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false

测试

image.png

可以看到刚写入的数据己经采集到了


image.png

更多玩法,可参考官方文档:https://www.elastic.co/guide/en/beats/filebeat/current/index.html

Metricbeat

Metricbeat的组成
  • module:收集的对象,如mysql,redis,操作系统等
  • metricset:收集指标的集合:如CPU,memory,network等

使用Metricbeat的module收集Nginx数据

# 启用nginx module
./metricbeat modules enable nginx

# 配置nginx的status
location /status {
    stub_status on;
    access_log off;
}
# reload
systemctl reload nginx

vim modules.d/nginx.yml

html
  - module: nginx
#metricsets:
# - stubstatus
  period: 10s
# Nginx hosts
  hosts: ["http://127.0.0.1"]
# status的uri
  server_status_path: "status"

./metricbeat -e

测试


image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容

  • 一、logstash Logstash: 是一个灵活的数据传输和处理系统,在beats出来之前,还负责进行数...
    zpei0411阅读 21,048评论 0 7
  • 一、Beats简介   Beats是用于单用途数据托运人的平台。它们以轻量级代理的形式安装,并将来自成百上千台机器...
    无剑_君阅读 1,787评论 0 1
  • 官网:https://www.elastic.co/ 日志大数据系统的组成日志记录工具:Log4j 2、Apach...
    saoraozhe3hao阅读 1,410评论 0 0
  • 前面我们搭建了一个简单的ELK日志收集系统,可以看到其中的Logstash起的作用。Logstash 是一个实时数...
    郭艺宾阅读 1,294评论 0 1
  • 简介 ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。后文...
    mysia阅读 3,601评论 1 14