IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 三阶段--elk日志分析(1)filebeat -> 正文阅读

[大数据]三阶段--elk日志分析(1)filebeat

新款的集中式的便捷的日志管理平台elk,通过web页面的形式,对大量日志做集中管理,划重点

ELK架构

怎么部署的?

通过一系列工具进行信息搜集:filebeat和logstash
收集信息后,信息交到ElasticSearch(ES)集群上,
通过kibana平台来展示从ES集群中得到的信息。

Filebeat

用于收集日志的工具,根据要求发送到指定目标上。可以是机器、终端、屏幕。
需要配置,配置什么?告诉他要收集啥日志。

  • 第一次会从每个文件的开头一直读到当前文件的最后一行。
  • 每一行称为一个事件,格式是一个包含很多字段的大字典,也是JSON格式的数据,在Filebeat中负责完成这个动作的官方称为Harvester(收割机、矿工)
  • 这个事件将来会被保存到ES集群中。
  • 收割机读到文件最后,会停止工作,知道文件有新的内容才继续工作。

在这里插入图片描述
实验准备:三台服务器,一台4G,另外两台最少3G
02 7‘38
elk1

##下载filebeat包
filebeat-7.13.2-linux-x86_64.tar.gz
## 移动解压后的包,并改名
mv filebeat-7.13.2-linux-x86_64 /usr/local/filebeat


##配置systemd方式的filebeat启动文件

vim /usr/lib/systemd/system/filebeat.service

[Unit]
Description=Filebeat sends log files to Logstash or directly to Elasticsearch.
Wants=network‐online.target
After=network‐online.target

[Service]
ExecStart=/usr/local/filebeat/filebeat ‐c /usr/local/filebeat/filebeat.yml
Restart=always

[Install]
WantedBy=multi‐user.target

systemctl daemon-reload 建立系统进程,重新装载一下

filebeat简单使用

创建一个新文件,在/tmp/access.log用来测试数据

# vim /tmp/access.log 
123.127.39.50 ‐ ‐ [04/Mar/2021:10:50:28 +0800] "GET /logo.jpg HTTP/1.1" 200 14137 "http://81.68.233.173/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36" "‐"
vim /usr/local/filebeat/filebeat.yml

filebeat.inputs:
- type: log
  enabled: true			#true加载
  paths:
    - /tmp/*.log		#paths,日志去哪里拿,日志地址

filebeat.config.modules:
#
  path: ${path.config}/modules.d/*.yml
#安装路径,是filebeat的内置变量
  reload.enabled: false
#这里如果开的话会影响收集日志的过程,配好之后手动重启就完了。

setup.template.settings:
#设定临时的template,index共享的索引数量,默认值
  index.number_of_shards: 1

output.console:			#console控制台的意思,输出到屏幕上。这两句是要手动添加上去的。
  pretty: true			#不用了的话改成false

processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
# processors处理,添加此主机的源数据信息到输出数据中,如ip mac os等信息。
# ~表示为空

filebeat的测试行为

##运行测试
/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml

##专用日志搜集模块
/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml modules list

##模块配置文件存储位置
/usr/local/filebeat/modules.d

##禁用模块
/usr/local/filebeat/filebeat modules disable +模块名

##启用模块
/usr/local/filebeat/filebeat modules enable +模块名

示例模块——nginx模块的使用

  1. 准备nginx示例日志
  • 访问日志示例文件
# vim /var/log/access.log 
123.127.39.50 ‐ ‐ [04/Mar/2021:10:50:28 +0800] "GET /logo.jpg HTTP/1.1" 200 14137 "http://81.68.233.173/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36" "‐"
  • 错误日志示例文件
# vim /var/log/error.log 
2021/03/04 10:50:28 [error] 11396#0: *5 open() "/farm/bg.jpg" failed (2: No such file or directory), client: 123.127.39.50, server: localhost, request: "GET /bg.jpg HTTP/1.1", host: "81.68.233.173", referrer: "http://81.68.233.173/"
  1. 启用nginx模块
    /usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml modules enable nginx

  2. 修改模块的默认日志路径为非默认路径,用于测试
    默认的nginx路径在/var/log/nginx/access.log* /var/log/nginx/error.log*

vim /usr/local/filebeat/modules.d/nginx.yml

- module: nginx
  access:
    enabled: true
    var.paths: ["/var/log/access.log"]
    ##var.paths属性是用于搜集日志真实路径和手机模块默认不一致时使用,如果不设置此选项,Filebeat将根据您的操作系统选择路径选择使用默认值。
  error:
    enabled: true
    var.paths: ["/var/log/error.log"]
  ingress_controller:
    enabled: false
##可以写成一个属组
##var.paths: [ "/opt/nginx/log/nginx/access.log*","/opt/nginx/log/error.log*" ]

测试
/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml -e
再开一台机器,修改日志文件,可以看见日志输出正常。

output的配置(输出属性)

Filebeat是用于搜集日志,之后把日志推送到某个接收的系统中,这些系统或者装置再filebeat中称为output。

  • console 终端屏幕
  • elasticsearch 存放日志,并提供查询
  • logstash进一步对日志数据进行处理
  • kafka 消息队列
    详细output列表参考filebeat官方文档

##两种输出到屏幕的配置:

  1. 完整
output.console:
  pretty: true
  1. 某些字段,定义输出的格式
output.console:
  codec.format: 
##codec代码 format格式---codec.format代码格式,也就是输出格式
  string: '%{[@timestamp]} %{[message]}'

##输出到elasticsearch

output.elasticsearch:
  hosts: ['http://es01:9200', 'http://es02:9200']

##输出到logstash

output.logstash:
  hosts: ["127.0.0.1:5044"]

重读日志文件

反复重读日志文件可能会出现一个问题,什么问题呢?会出现文件锁死的一个情况,如下:
Exiting: data path already locked by another beat. Please make sure that multiple beats are not sharing the same data path (path.data)
rm -rf /usr/local/filebeat/data锁文件在这里
这个时候,查看进程,
ps -ef | grep 'filebea[t]'
如果有的话,杀死。

precessors模块 处理过滤和增强数据

用来追加主机元数据信息,再推送出来,除了加东西,还可以减东西,日志里某些东西不需要,就扔掉
vim /usr/local/filebeat/filebeat.yml

# ---------------------------- Elasticsearch Output ----------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
#  hosts: ["localhost:9200"]
processors:
  - drop_event:		#丢弃事件
      when:		#当
        regexp:		#表示下面有正则表达式
          message: "^DBG"		#消息里带DBG的,都扔掉。
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~

##向输出的数据中添加某些自定义字段

processors: 
  ‐ add_fields: 
      target: project # 要添加的自定义字段key名称 
      fields: 
        name: myproject 
        id: '574734885120952459'

##删某些字段

processors: 
  ‐ drop_fields: 
      fields: ["field1", "field2", ...] 
      ignore_missing: false

例如:

‐ drop_fields: 
    fields: ['input', "ecs.version"]
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 10:59:11  更:2021-07-14 10:59:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 8:36:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码