通过Filebeat进行日志监控

这篇具有很好参考价值的文章主要介绍了通过Filebeat进行日志监控。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

对系统的日志监控,通用做法是使用ELK(Elasticsearch、Logstash、Kibana)进行监控和搜索日志,这里给出另一种方案:通过Filebeat接收日志到Kafka,监控平台接收Kafka,并通过WebSocket实时展示。

这种方案还可以增加Metricbeat监控机器指标。另外,监控平台可以选择其他方式展示日志,灵活性大。

这种方案适合对系统进行实时监控、以及对系统CPU、内存进行实时监控的场景。

结构图:

通过Filebeat进行日志监控,日志监控,filebeat,kafka,metricbeat,python

流程图:

通过Filebeat进行日志监控,日志监控,filebeat,kafka,metricbeat,python

数据收集

数据收集组件包括filebeat和metricbeat,寻找一个合适的本地文件夹进行部署,无需su权限。

其中,filebeat用于日志收集和结构化数据收集,metricbeat用于系统信息收集。

filebeat安装与配置

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.16.2-linux-x86_64.tar.gz

tar zxf filebeat-7.16.2-linux-x86_64.tar.gz

cd filebeat-7.16.2-linux-x86_64

vi filebeat.yml

(用实际日志文件名替换{FILE_PATH},如:/data/logs/systemx/abcd.log)

filebeat.inputs:

- type: filestream

 enabled: true

 paths:

   - FILE_PATH

output.kafka:

    enabled: true

    hosts: ["kfk-01.example.com:9092","kfk-02.example.com:9092","kfk-03.example.com:9092"]

    topic: system_x_journal

启动filebeat

nohup ./filebeat -c filebeat-[STRATEGY_ID]-jnl.yml -path.data=$PWD/data_[STRATEGY_ID]_jnl/ > filebeat-[STRATEGY_ID]-jnl.log 2>&1 &

Or

nohup ./filebeat -c filebeat-[STRATEGY_ID]-stt.yml -path.data=$PWD/data-[STRATEGY_ID]-stt/ > filebeat-[STRATEGY_ID]-stt.log 2>&1 &
 

filebeat文档在这里:Filebeat Reference [7.16] | Elastic

metricbeat安装与配置

安装

wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.16.2-linux-x86_64.tar.gz

tar zxf metricbeat-7.16.2-linux-x86_64.tar.gz

cd metricbeat-7.16.2-linux-x86_64

vi metricbeat.yml

配置

metricbeat.config.modules:

 path: ${path.config}/modules.d/*.yml

 reload.enabled: false

metricbeat.modules:

  - module: system

    metricsets: [core]

    core.metrics: [percentages, ticks]

processors:  

  - add_host_metadata:

      netinfo.enabled: true

output.kafka:

  enabled: true

  hosts: ["kfk-01.example.com:9092","kfk-02.example.com:9092","kfk-03.example.com:9092"]

  topic: system_x_sysinfo

启动

nohup ./metricbeat -c metricbeat.yml > metricbeat.log 2>&1 &

对于多个系统部署在一台服务器上的情况,往往会共用一份机器信息,则将配置文件的topic改为:system_x_ID_sysinfo。

注意:

1.metricbeat默认不带IP,需要在配置文件添加add_host_metadata

2.metricbeat默认不带CPU所有内核的负载,需要扩展module: system

3.传递内容及数据格式在这里:System fields | Metricbeat Reference [8.9] | Elastic

Kafka数据查看

作为中间调试步骤,可以登录到测试服务器,查看Kafka输出

cd /usr/local/kafka/bin/

sh kafka-console-consumer.sh --bootstrap-server kfk-01.example.com:9092,kfk-02.example.com:9092,kfk-03.example.com:9092 --topic YOUR_TOPIC

​​​​​​​Python(FastAPI)示例

在一个典型的Python FastAPI项目中,通过kafka consumer订阅对应策略的topic,持续消费kafka存储的日志数据,然后通过websocket服务,将日志推给连接的ws客户端。

KafkaConsumer

使用python的kafka包。

注意:安装kafka-python,不要kafka

使用 pip list | grep kafka查看是否有安装,如果已安装kafka,先卸载:

pip uninstall kafka

再安装

pip install kafka-python

FastAPI主程序示例

from web.monitors import loginfo, sysinfo

import asyncio


# 已声明 app = FastAPI()


@app.on_event("startup")

async def startup():

    loop = asyncio.get_running_loop()

    logging.info(loop)

    journal.set_config(config, loop)

    sysinfo.set_config(config)

    app.mount("/loginfo", loginfo.router_loginfo)

    app.mount("/sysinfo", sysinfo.router_sysinfo)

    logging.info("config journal and sysinfo")

附1:metricbeat机器信息返回字段

system_name:系统名称

app_cpu:系统应用占用的CPU(单位:百分比)

app_memory:系统应用占用的内存(单位:字节)

app_start_time:系统应用启动时间

app_pid:系统应用的进程ID

cpu_sys_usage:机器整体CPU系统使用(单位:百分比)

cpu_idle:机器整体CPU闲置(单位:百分比)

cpu_user_usage:机器整体CPU用户使用(单位:百分比)

cpu_cores:机器CPU内核数

cpu_cores_usage:列表,机器所有CPU核的负载(单位:百分比)

memory_usage:机器整体内存占用(单位:百分比)

memory_total:机器内存总和(单位:字节)

disk_usage:机器磁盘占用率(单位:百分比)

disk_total:机器磁盘空间总和(单位:字节)

host_name:主机名

os:主机操作系统

ip_addr:主机IP

附2:FastAPI+Websocket问题

基于解耦原则,日志的kafka消费、websocket服务模块需要放在单独的文件中,但是,通过app.include_router添加的ws路径不起作用,相关bugreport见这里。

目前的解决方案是:

在ws router服务模块中也声明app:

router_journal = FastAPI()

然后在主app文件中附加此router模块:

app.mount(router_journal)文章来源地址https://www.toymoban.com/news/detail-620941.html

到了这里,关于通过Filebeat进行日志监控的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Elk+Filebeat+Kafka实现日志收集

    Elk+Filebeat+Kafka实现日志收集

    1.实验组件 2.安装前准备 3.安装Zookeeper 1.安装Kafka 2.命令行测试  1.安装Filebeat 2.时间同步 3.配置filebeat 4.配置logstash 1.安装配置filebeat 2.配置logstash

    2024年02月05日
    浏览(15)
  • Filebeat+Kafka+ELK日志采集(五)——Elasticsearch

    Filebeat+Kafka+ELK日志采集(五)——Elasticsearch

    1、下载 2、解压: 3、配置 启动Elasticsearch,进入/bin目录下 ./elasticsearch ,不出意外的外会报以下错误: 报错1:能打开的文件或进程数太低。 解决方法: 修改/etc/security/limits.conf 配置文件,添加配置如下: 报错2: 解决方法: 修改/etc/sysctl.conf 配置文件,添加配置如下: 修

    2024年02月05日
    浏览(14)
  • 部署ELK+Kafka+Filebeat日志收集分析系统

    部署ELK+Kafka+Filebeat日志收集分析系统

    ELK是三个软件的统称,即Elasticsearch、Logstash和Kibana三个开源软件的缩写。这三款软件都是开源软件,通常配合使用,并且都先后归于Elastic.co企业名下,故被简称为ELK协议栈。ELK主要用于部署在企业架构中,收集多台设备上多个服务的日志信息,并将其统一整合后提供给用户。

    2024年02月16日
    浏览(11)
  • EFLFK——ELK日志分析系统+kafka+filebeat架构

    EFLFK——ELK日志分析系统+kafka+filebeat架构

    node1节点 192.168.40.16 elasticsearch 2c/4G node2节点 192.168.40.17 elasticsearch 2c/4G Apache节点 192.168.40.170 logstash/Apache/kibana 2c/4G filebeat节点 192.168.40.20 filebeat 2c/4G https://blog.csdn.net/m0_57554344/article/details/132059066?spm=1001.2014.3001.5501 接上期elk部署我们这次加一个filebeat节点   //准备 3 台服务器做

    2024年02月14日
    浏览(13)
  • 基于Filebeat、Kafka搭建ELK日志分析平台详细步骤

    基于Filebeat、Kafka搭建ELK日志分析平台详细步骤

    写在前头:公司一直没有搭建一个支持实时查询日志的平台,平常看日志都得去服务器下载,大大降低开发效率,前段时间有大佬同事搭建了一款日志平台,支持sit,uat等各个环境的日志实时查询,大大提高bug定位速度。因对其感兴趣特向大佬请教,学习记录下搭建流程。 选

    2024年02月06日
    浏览(18)
  • 使用Filebeat+Kafka+Logstash+Elasticsearch构建日志分析系统

    使用Filebeat+Kafka+Logstash+Elasticsearch构建日志分析系统

            随着时间的积累,日志数据会越来越多,当您需要查看并分析庞杂的日志数据时,可通过Filebeat+Kafka+Logstash+Elasticsearch采集日志数据到Elasticsearch中,并通过Kibana进行可视化展示与分析。本文介绍具体的实现方法。 Kafka是一种分布式、高吞吐、可扩展的消息队列服务,

    2024年02月04日
    浏览(10)
  • EFLK日志平台(filebeat-->kafka-->logstash-->es-->kiabana)

    EFLK日志平台(filebeat-->kafka-->logstash-->es-->kiabana)

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 1. es安装(单节点部署) 前提 安装 2.es web 查看 浏览器访问 http://esIP:9200 或者本地访问curl ‘http://localhost:9200/?pretty’ 安

    2024年02月10日
    浏览(10)
  • docker搭建Elk+Kafka+Filebeat分布式日志收集系统

    docker搭建Elk+Kafka+Filebeat分布式日志收集系统

    目录 一、介绍 二、集群环境 三、ES集群 四、Kibana  五、Logstash 六、Zookeeper 七、Kafka 八、Filebeat 八、Nginx (一)架构图  (二)组件介绍 1.Elasticsearch 是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎,基于

    2024年02月04日
    浏览(15)
  • 利用logstash/filebeat/插件,将graylog日志传输到kafka中

    利用logstash/filebeat/插件,将graylog日志传输到kafka中

    在System-outputs,选择GELF Output,填写如下内容,其它选项默认 在要输出的Stream中,选择Manage Outputs 选择GELF Output,右边选择刚才创建好的test。 下载logstash,最新版就可以。 上传到服务器,编写test.conf配置文件,内容如下 运行logstash,输入以下命令 前提:安装好kafka集群, 创建

    2024年02月13日
    浏览(9)
  • filebeat+kafka+logstash+elasticsearch+kibana实现日志收集解决方案

    filebeat+kafka+logstash+elasticsearch+kibana实现日志收集解决方案

    前言:我们使用nginx来模拟产生日志的服务,通过filebeat收集,交给kafka进行消息队列,再用logstash消费kafka集群中的数据,交给elasticsearch+kibana监控 服务器环境: 192.168.2.1:elasticsearch 192.168.2.2:filebeat+nginx 192.168.2.3:kafka 192.168.2.4:logstash elasticseatch+filebeat+kafka+logsstash(6.60)清

    2024年02月03日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包