• flume 通过syslog协议读取系统日志



    申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址
    全文共计2077字,阅读大概需要3分钟

    一、 任务描述

    本实验任务主要完成基于ubuntu环境使用flume通过syslog协议读取日志信息。通过完成本实验任务,要求学生了解并掌握flume通过syslog协议去读日志信息的语法和使用的命令,为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。

    二、 任务目标

    熟悉Flume基本组件Source,Sink,Channel
      理解Syslog Source,Syslog UDP Source和Multiport Syslog Source

    三、 任务环境

    本次环境是:Ubuntu16.04+flume-ng-1.5.0-cdh5.3.6

    四、 任务分析

    Syslog是很多应用写日志消息的众所周知的形式,集成了syslog的Flume可以接收TCP和UDP消息。Flume提供了两种syslog Source:Syslog UDP Source和Multiport Syslog Source.这两种Source都能解析syslog消息,抽取几个字段到Flume事件的header,可以用HDF Sink分桶。如果syslog消息不符合Syslog RFCs,事件将包含一个带有值为Invalid flume.syslog.status的header. Syslog UDP Source认为整个UDP数据报文是一个Syslog事件,并将其转换一个Flume事件。本实验采用Syslog Source+Memory Channel+Logger Sink方式

    ♥ 知识链接
    zooKeeper于Flume的作用
      Flume采用了多Master的方式。为了保证配置数据的一致性,Flume引入了ZooKeeper,用于保存配置数据,ZooKeeper本身可保证配置数据的一致性和高可用,另外,在配置数据发生变化时,ZooKeeper可以通知Flume Master节点。Flume Master间使用gossip协议同步数据。

    五、 任务实施

    步骤1、操作步骤

    创建agent文件
    在目录/simple/flume/conf下,创建文件
    touch syslog_tcp.conf,并编辑内容如下:

    1.	# 配置agent
    2.	a1.sources = syslog
    3.	a1.sinks = k1
    4.	a1.channels = c1
    5.	
    6.	# Describe/configure the  source
    7.	a1.sources.syslog.type =  syslogtcp
    8.	a1.sources.syslog.port =  5140
    9.	a1.sources.syslog.host =  localhost
    10.	a1.sources.syslog.channels  = c1
    11.	
    12.	# Describe the sink
    13.	a1.sinks.k1.type = logger
    14.	
    15.	# Use a channel which  buffers events in memory
    16.	a1.channels.c1.type =  memory
    17.	a1.channels.c1.capacity =  1000
    18.	a1.channels.c1.transactionCapacity  = 100
    19.	
    20.	# Bind the source and sink  to the channel
    21.	a1.sources.r1.channels = c1
    22.	a1.sinks.k1.channel = c1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    根据配置好syslog_tcp.conf的配置信息,启动flume agent,进入目录:cd /simple/flume
      执行如下启动脚本:./bin/flume-ng agent -c . -f conf/syslog_tcp.conf -n a1 -Dflume.root.logger=INFO,console。如图1所示

    在这里插入图片描述

    图1 启动flume

    一些配置的说明:

    nameValue
    -f指定flume服务端启动监听的agent配置文件,
    -n指定启动的flume agent别名,
    -Dflume.root.logger=DEBUG,console 表示数据在控制台打印出,

    启动flume agent后,可以看到如下信息:
    syslog tcp source starting,此时会不停扫描syslog_tcp.conf,
    启动成功信息,如图2所示:

    在这里插入图片描述

    图2 扫描syslog_tcp.conf启动信息

    再启动一个终端。
    测试产生syslog;
    在新启动的命令终端任意目录下,执行:echo “hello flume: syslog tcp” | nc localhost 5140
    数据向终端发送成功的信息,红框表示终端收到的数据(如果syslog消息不符合Syslog RFCs,RFC-3146或RFC-5424,事件中将包含一个带有值为Invalid flume.syslog.status的header)。如图3所示:

    在这里插入图片描述

    图3 查看数据

  • 相关阅读:
    C++类型转换与函数
    Linux高级---configmap和secret
    nginx设置开启自启动
    heic批量转jpg文件
    红队专题-新型webshell的研究
    域名一定需要备案吗?什么情况下不用备案?
    uniapp uview 头像裁剪组件的问题
    Vue复习笔记 (二)SPA单页面应用(优化首屏加载)
    《无与伦比》Centos7 安装git
    Java SPI的本质
  • 原文地址:https://blog.csdn.net/qq_44807756/article/details/125632900