大数据-190 Elasticsearch - ELK 日志分析实战 - 配置启动 Filebeat Logstash

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(正在更新…)

章节内容

上节我们完成了如下的内容:

  • ELK 日志分析配置环境
  • Nginx、Elastic、ZK、Kafka 等等

在这里插入图片描述

Filebeat

官方地址

Filebeat主要为了解决Logstash工具是消耗资源比较严重的问题,因为Logstash是Java语言编写的,需要启动一个虚拟机。官方为了优化这个问题推出了一些轻量级的采集工具,Beats系列,其中比较广泛使用的是Filebeat。

https://www.elastic.co/guide/en/beats/filebeat/7.3/index.html

对比区别

  • Logstash是运行在Java虚拟机上的,启动一个Logstash需要消耗500M的内存(所以启动特别慢),而Filebeat只需要10M左右
  • 常用的ELK日志采集中,大部分的做法就是将所有节点的日志内容通过Filebeat发送到Kafka集群,Logstash消费Kafka,再根据配置文件进行过滤,然后将过滤的文件输出到Elasticsearch中,再到Kibana去展示。

项目安装

目前我选择在 h121 节点上,你可以按照自己的情况来安装。

cd /opt/software
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.0-linux-x86_64.tar.gz

结果如下图所示:
在这里插入图片描述

解压配置

tar -zxvf filebeat-7.3.0-linux-x86_64.tar.gz
mv filebeat-7.3.0-linux-x86_64 ../servers
cd ../servers

对应的内容如下图所示:
在这里插入图片描述
修改配置文件如下:

cd /opt/servers/filebeat-7.3.0-linux-x86_64
vim filebeat.yml

当前文件内容如下所示:
在这里插入图片描述

input部分

修改为如下的内容 filebeat.inputs 部分的内容:

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /opt/wzk/logs/access.log
    #- c:\programdata\elasticsearch\logs\*

  # Exclude lines. A list of regular expressions to match. It drops the lines that are
  # matching any regular expression from the list.
  #exclude_lines: ['^DBG']

  # Include lines. A list of regular expressions to match. It exports the lines that are
  # matching any regular expression from the list.
  #include_lines: ['^ERR', '^WARN']

  # Exclude files. A list of regular expressions to match. Filebeat drops the files that
  # are matching any regular expression from the list. By default, no files are dropped.
  #exclude_files: ['.gz$']

  # Optional additional fields. These fields can be freely picked
  # to add additional information to the crawled log files for filtering
  fields:
    app: www
    type: nginx-access
  fields_under_root: true
  ### Multiline options

修改的截图如下:
在这里插入图片描述

output部分

output.kafka:
  hosts: ["h121.wzk.icu:9092"]
  topic: "nginx_access_log"

对应的截图如下所示:
在这里插入图片描述

启动服务

cd /opt/servers/filebeat-7.3.0-linux-x86_64
./filebeat -e -c filebeat.yml

如果你在这里遇到了 runtime-cgo-pthread-create-failed-operation-not-permitted 的错误,那你可以尝试将 FileBeat 的版本进行提升,我这里就遇到了,所以后续进行版本提升

遇到错误 runtime-cgo-pthread-create-failed-operation-not-permitted

如果你没有遇到,直接跳过!
我这里版本一点点的往上尝试,大致猜测是操作系统的版本可能新一些,所以原来的Go的库无法支持新的操作系统了(猜测的)。
这里我测试到 7.17 的版本就好了:

cd /opt/software
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.0-linux-x86_64.tar.gz

根据刚才的操作,我已经配置好了路劲等内容,且修改了 filebeat.yml 的配置文件内容
在这里插入图片描述
进行启动测试:

cd /opt/servers/filebeat-7.17.0-linux-x86_64
./filebeat -e -c filebeat.yml

顺利启动,启动结果如下图:
在这里插入图片描述

测试数据

启动一切正常之后,我们在Nginx刷新几次,来生成一些数据出来。

查看消费

kafka-console-consumer.sh --bootstrap-server h121.wzk.icu:9092 --topic nginx_access_log --
from-beginning

可以看到数据已经来了:
在这里插入图片描述
我们进行一下JSON的格式化操作:

{
	"@timestamp": "2024-08-19T08:14:52.073Z",
	"@metadata": {
		"beat": "filebeat",
		"type": "_doc",
		"version": "7.17.0"
	},
	"cloud": {
		"availability_zone": "cn-north-1b",
		"service": {
			"name": "ECS"
		},
		"provider": "huawei",
		"instance": {
			"id": "ccf8173b-3e47-468e-be8a-5ea3a03c76e0"
		},
		"region": "cn-north-1"
	},
	"log": {
		"offset": 2034,
		"file": {
			"path": "/opt/wzk/logs/access.log"
		}
	},
	"message": "{ \"@timestamp\": \"2024-08-19T16:14:46+08:00\", \"remote_addr\": \"223.80.101.21\", \"remote_user\": \"-\", \"body_bytes_sent\": \"0\", \"request_time\": \"0.000\", \"status\": \"304\", \"request_uri\": \"/\", \"request_method\": \"GET\", \"http_referrer\": \"-\", \"http_x_forwarded_for\": \"-\", \"http_user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36\"}",
	"fields": {
		"app": "www",
		"type": "nginx-access"
	},
	"input": {
		"type": "log"
	},
	"agent": {
		"hostname": "h121.wzk.icu",
		"ephemeral_id": "ebc9ac86-db92-4bb1-a631-e6a868393270",
		"id": "da3cc603-7d17-4b4a-ac3b-6b557805a2e2",
		"name": "h121.wzk.icu",
		"type": "filebeat",
		"version": "7.17.0"
	},
	"ecs": {
		"version": "1.12.0"
	},
	"host": {
		"name": "h121.wzk.icu",
		"mac": ["fa:16:3e:6b:c3:30"],
		"hostname": "h121.wzk.icu",
		"architecture": "x86_64",
		"os": {
			"codename": "jammy",
			"type": "linux",
			"platform": "ubuntu",
			"version": "22.04.3 LTS (Jammy Jellyfish)",
			"family": "debian",
			"name": "Ubuntu",
			"kernel": "5.15.0-92-generic"
		},
		"id": "42ed7c7740bf4c19a180c6b736d11bbf",
		"containerized": false,
		"ip": ["192.168.0.109", "fe80::f816:3eff:fe6b:c330"]
	}
}

Logstash

官方文档

Logstash用来读取Kafka中的数据

https://www.elastic.co/guide/en/logstash/7.3/plugins-inputs-kafka.html

编写配置

cd /opt/servers/logstash-7.3.0/config
vim logstash_kafka_es.conf

修改如下的配置如何:

input {
    kafka {
        bootstrap_servers => "h121.wzk.icu:9092"
        topics => ["nginx_access_log"]
        codec => "json"
    }
}

filter {
    if [app] == "www" {
        if [type] == "nginx-access" {
            json {
                source => "message"
                remove_field => ["message"]
            }
            geoip {
                source => "remote_addr"
                target => "geoip"
                database => "/opt/wzk/GeoLite2-City.mmdb"
                add_field => ["[geoip][coordinates]", "%{[geoip][longitude]}"]
                add_field => ["[geoip][coordinates]", "%{[geoip][latitude]}"]
            }
            mutate {
                convert => ["[geoip][coordinates]", "float"]
            }
        }
    }
}

output {
    elasticsearch {
        hosts => ["http://h121.wzk.icu:9200"]
        index => "logstash-%{type}-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}

下载依赖

我们看到这里用了一个 GeoLite2-City.mmdb,我们需要下载GeoLite2-City.mmdb:

https://github.com/P3TERX/GeoLite.mmdb?tab=readme-ov-file

这里我直接下载:

cd /opt/wzk/
wget https://git.io/GeoLite2-City.mmdb

下载过程如下图所示:
在这里插入图片描述

测试服务

cd /opt/servers/logstash-7.3.0
bin/logstash -f /opt/servers/logstash-7.3.0/config/logstash_kafka_es.conf -t

运行的结果如下图所示:
在这里插入图片描述

启动服务

cd /opt/servers/logstash-7.3.0
bin/logstash -f /opt/servers/logstash-7.3.0/config/logstash_kafka_es.conf

启动之后结果如下图:
在这里插入图片描述
Kafa对应的日志部分:
在这里插入图片描述

测试数据

我们刷新Nginx的页面,提供一些数据出来。
我们可以看到 Logstash 的控制台输出了对应的内容:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/901144.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp:上拉加载更多、下拉刷新、页面滚动到指定位置

提醒 本文实例是使用uniapp进行开发演示的。 一、需求场景 在开发商品(SKU)列表页面时,通常有三个需求: 页面下拉刷新,第一页展示最新数据;上拉加载更多数据;列表页面可以滚动到指定位置&#x…

如何为工业未来赋能?通过CodeMeter为工业企业开辟工业自动化安全与灵活性之道

在现代工业自动化领域,数字化转型已经成为不可逆的趋势。然而,要将新一代的自动化软件与传统设备集成,企业面临的不仅是技术上的复杂性,更是如何有效保护宝贵的知识产权并实现灵活管理的严峻挑战。菲尼克斯电气(Phoeni…

HTML5教程(一)- 网页与开发工具

1. 什么是网页 网页 基于浏览器阅读的应用程序,是数据(文本、图像、视频、声音、链接等)展示的载体常见的是以 .html 或 .htm 结尾的文件 网站 使用 HTML 等制作的用于展示特定内容相关的网页集合。 2. 网页的组成 浏览器 代替用户向服务…

【云原生】Kubernets1.29部署StorageClass-NFS作为存储类,动态创建pvc(已存在NFS服务端)

文章目录 在写redis集群搭建的时候,有提到过使用nfs做storageclass,那时候kubernetes是1.20版本,https://dongweizhen.blog.csdn.net/article/details/130651727 现在使用的是kubernetes 1.29版本,根据之前的修改方式并未生效,反而提示:Error: invalid argument "Re…

C语言 动态数据结构的C语言实现单向链表-2

建立一个单向链表 在单向链表中查找节点---查找尾节点 在单向链表中查找节点 --- 查找第 n 个节点 向单向链表中插入一个节点 向单向链表的尾部插入一个节点 向单向链表中某节点后插入一个节点 向单向链表中插入一个节点 删除单向链表中的某一节点 链表 vs 数组 动态数据结构

C++核心编程和桌面应用开发 第十五天(deque/stack/queue)

目录 1.deque容器 1.1构造和赋值(同vector类似) 1.2大小操作 1.3插入和删除 1.5数据存取 1.6排序(升序) 2.stack容器 3.queue容器 1.deque容器 1.1构造和赋值(同vector类似) deque内部工作原理&a…

湖北省自闭症全托管:为您推荐湖北省的自闭症服务机构

原文指路:http://www.zibizhengwang.com/page35.html 自闭症,这一复杂而神秘的神经发育障碍,长久以来困扰着无数家庭。它不仅影响着儿童的社交互动、沟通能力,还常常伴随着行为问题和感官过敏。面对这一挑战,湖北省内…

HTML静态网页作业成品(HTML+CSS)——动漫犬夜叉主题网页设计制作(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码1、HTML代码2、CSS部分代码 五、源码获取 一、作品介绍 🏷️本套采用DIVCSS布局,未使用Javacsript代码,共有1个页面。 二…

使用Python来下一场深夜雪

效果图:(真实情况是动态的) 完整代码: import turtle import random# 初始化画布 turtle.bgcolor("#001f3f") # 偏深蓝色的背景 turtle.title("下雪的画面") turtle.speed(0) turtle.hideturtle() turtle.t…

ffmpeg视频滤镜:定向模糊-dblur

滤镜简述 dblur 官网链接 > https://ffmpeg.org/ffmpeg-filters.html#dblur 有一个模糊滤镜&#xff0c;我试了一下&#xff0c;没有感觉到它的特殊之处, 这里简单介绍一下。 滤镜使用 滤镜的参数 angle <float> ..FV.....T. set angle (from 0 t…

基于neo4j的旅游知识图谱维护与问答系统

你还在为毕业设计发愁吗&#xff1f;试试这个基于Neo4j的旅游知识图谱维护与问答系统吧&#xff01;这套系统不仅功能强大&#xff0c;而且几乎涵盖了你需要的一切&#xff0c;完美助力你的毕业项目&#xff01; 系统介绍 该系统是专门针对旅游景点信息的知识图谱工具&#x…

ClickHouse在百度MEG数据中台的落地和优化

导读 百度MEG上一代大数据产品存在平台分散、质量不均和易用性差等问题&#xff0c;导致开发效率低下、学习成本高&#xff0c;业务需求响应迟缓。为了解决这些问题&#xff0c;百度MEG内部开发了图灵3.0生态系统&#xff0c;包括Turing Data Engine(TDE)计算引擎、Turing Dat…

常用排序算法总结

内容目录 1. 选择类排序 1.1 直接选择排序1.2 堆排序 2. 交换类排序 2.1 冒泡排序2.2 快速排序 3. 插入类排序 3.1 直接插入排序3.2 希尔排序 4. 其它排序 4.1 归并排序4.2 基数排序/桶排序 排序 1. 选择类排序 选择类排序的特征是每次从待排序集合中选择出一个最大值或者最…

大数据治理平台建设规划方案(71页WORD)

随着信息化时代的到来&#xff0c;大数据已成为企业管理和决策的重要基础。然而&#xff0c;大数据的快速增长和复杂性给数据的管理和治理带来了巨大挑战。为了有效应对这些挑战&#xff0c;构建一个高效、稳定的大数据治理平台显得尤为重要。 文档介绍&#xff1a; 该平台旨在…

零基础Java第十期:类和对象(一)

目录 一、拜访对象村 1.1. 什么是面向对象 1.2. 面向对象与面向过程 二、类定义和使用 2.1. 类的定义格式 2.2. 类的定义练习 三、类的实例化 3.1. 什么是实例化 3.2. 类和对象的说明 四、this引用 4.1. 什么是this引用 4.2. this引用的特性 一、拜访对象村 在…

基于SSM考研助手系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;教学秘书管理&#xff0c;考研资讯管理&#xff0c;考研名师管理&#xff0c;考研信息管理&#xff0c;系统管理 教学秘书账号功能包括&#xff1a;系统首页&#xff0c;个人中心…

让你的 IDEA 使用更流畅 | IDEA内存修改

随着idea使用越来越频繁&#xff0c;笔者最近发现使用过程中有时候会出现卡顿现象&#xff0c;例如&#xff0c;启动软件变慢&#xff0c;打开项目的速度变慢等&#xff1a; 因此如果各位朋友觉得最近也遇到了同样的困惑&#xff0c;不妨跟着笔者一起来设置IDEA的内存大小吧~ …

基于Bert+Attention+LSTM智能校园知识图谱问答推荐系统

获取更多完整项目代码数据集&#xff0c;点此加入免费社区群 &#xff1a; 首页-置顶必看 1. 项目简介 本项目旨在实现基于ALBERT模型的命名实体识别&#xff08;NER&#xff09;任务。ALBERT&#xff08;A Lite BERT&#xff09;是谷歌提出的轻量级BERT模型&#xff0c;具有…

贪心算法与盛雨水问题

啥是盛雨水问题&#xff1f;给个图就熟悉了 欸&#xff1f; 这其中的关键在于&#xff1a; 1. 容量2D化就是长 * 宽 2. 木桶效应&#xff1a;宽取决于短板。 那我们来分析&#xff0c;怎么样能达到最佳的结果呢&#xff1f;穷举一下所有可能性不就好了&#xff1f;每两个板子…

ArcGIS001:ArcGIS10.2安装教程

摘要&#xff1a;本文详细介绍arcgis10.2的安装、破解、汉化过程。 一、软件下载 安装包链接&#xff1a;https://pan.baidu.com/s/1T3UJ7t_ELZ73TH2wGOcfpg?pwd08zk 提取码&#xff1a;08zk 二、安装NET Framework 3.5 双击打开控制面板&#xff0c;点击【卸载程序】&…