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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Logstash数据处理服务的输入插件Input常见类型以及基本使用 -> 正文阅读

[大数据]Logstash数据处理服务的输入插件Input常见类型以及基本使用

Logstash数据处理服务的输入插件Input常见类型以及基本使用

1.Input插件常用的类型

logstash的插入插件通常有stdin(用于调试)、file、redis、kafka、beats(filebeat)类型。

2.Logstash Input常用配置参数

Input中通用的一些配置自动,这些字段可以在Redis、kakfa、filebeat、file等等各种类型的输入插件中使用。

add_field:添加一个字段到一个事件,放到事件顶部,一般用于标记日志来源。例如属于哪个项目,哪个应用

tags:添加任意数量的标签,用于标记日志的其他属性,例如表明访问日志还是错误日志

type: 为所有输入添加一个字段,例如表明日志类型

这三个配置字段都是在收集的一条日志数据中增加上这些字段信息,这三个字段只需要选择一个进行配置就可以了,在outpost输出插件中可以根据字段和值进行匹配,分别将不同字段的日志数据存储到不同的ES索引库中。

1.配置logstash
[root@elkstack-1 ~]# vim /data/elk/logstash/conf.d/test.conf 
input {
    file {
        path => "/var/log/test/*.log"
        exclude => "error.log"
        start_position =>  "beginning"
        tags => "web"					#增加一个标签
        type => "nginx"					#增加一个字段type,值为nginx
        add_field => {					#在日志数据的最前面增加字段信息,project为web,app为nginx
            "project" => "web"
            "app" => "nginx"
        }
    }
}

filter {

}

output {
    file {
        path => "/tmp/log.txt"
    }
}

2.重载配置
[root@elkstack-1 ~]# ps aux | grep logstash | grep -v grep | awk '{print $2}' |xargs kill -HUPUP

观察收集的日志数据信息,增加了我们配置的一些字段属性

{"message":"web field","app":"nginx","path":"/var/log/test/access.log","tags":["web"],"host":"elkstack-1","project":"web","@version":"1","@timestamp":"2021-12-09T09:18:58.735Z","type":"nginx"}

收集来的日志数据都是json格式,可以放到json解析器中展示

image-20211209172508186

3.Input配置File类型的输入插件

以/var/log/messages为例,通过logstash将message中的日志输出到/tmp/log.txt文件中。

3.1.经典案例

1.编写配置文件
[root@elkstack-1 logstash]# cat conf.d/test.conf 
input {						#定义日志的来源
	file {							#类型为file,从文件中读取日志数据
		path => "/var/log/message"				#日志路径
	}
}

filter {			#过滤器

}

output {					#定义日志输出的存储路径
	file {
		path => "/tmp/log.txt"			#日志路径
	}
}

2.重载logstash
[root@elkstack-1 logstash]# ps aux | grep logstash | grep -v grep | awk '{print $2}' |xargs kill -HUP
或者
[root@elkstack-1 logstash]# systemctl restart logstash

观察/tmp/log.txt文件中有没有logstash写入的数据内容。

1.向/var/log/messages中插入日志数据
[root@elkstack-1 ~]# echo "123456" >> /var/log/messages

3.追踪/tmp/log.txt观察日志是输出
[root@elkstack-1 ~]# tail -f /tmp/log.txt
{"path":"/var/log/messages","host":"elkstack-1","@version":"1","@timestamp":"2021-12-09T08:12:43.656Z","message":"123456"}

image-20211209161310062

3.2.File类型的常用字段

path:日志的存放路径,支持通配符匹配。

exclude:排除不需要采集的日志文件。

start_position:指定日志文件从什么位置开始读取,默认是从结尾开始读取,指定参数值为beginning表示从文件开头开始读取。

示例:读取/var/log/test目录中所有的日志文件,但是排除error.log这个文件。

1.logstash配置文件内容
[root@elkstack-1 ~]# vim /data/elk/logstash/conf.d/test.conf 
input {
	file {
		path => "/var/log/test/*.log"		#读取test目录下的所有日志文件
		exclude => "error.log"					#不采集error日志文件
		start_position =>  "beginning"				#从文件的开头开始读取
	}
}

filter {

}

output {
	file {
		path => "/tmp/log.txt"
	}
}

2.重载logstash
[root@elkstack-1 ~]# ps aux | grep logstash | grep -v grep | awk '{print $2}' |xargs kill -HUP

观察日志采集的效果

1.向access日志中写入数据
[root@elkstack-1 ~]# echo access12332 > /var/log/test/access.log 
[root@elkstack-1 ~]# echo access1 >> /var/log/test/access.log 

2.日志被logstash正常的采集到了
[root@elkstack-1 ~]# tail -f /tmp/log.txt 
{"path":"/var/log/test/access.log","message":"2","@version":"1","host":"elkstack-1","@timestamp":"2021-12-09T08:53:54.953Z"}
{"path":"/var/log/test/access.log","message":"access1","@version":"1","host":"elkstack-1","@timestamp":"2021-12-09T08:53:59.969Z"}

3.写入error日志则不会被采集
[root@elkstack-1 ~]# echo abc >> /var/log/test/access.log

image-20211209165801998

4.logstash beats类型的插入插件

Beats插件是用来接收来自Beats数据采集器发送来的数据,常见的数据采集器有Filebeat、Metricbeat、Packetbeat、Winlogbeat、Auditbeat、Heartbeat、Functionbeat等等。

示例如下:

 1.配置logstash
 [root@elkstack-1 ~]# vim /data/elk/logstash/conf.d/test.conf 
 input {
     beats {
         host => "0.0.0.0"
         port => 5044
     }
 }
 
 filter {
 
 }
 
 output {
     file {
         path => "/tmp/log.txt"
     }
 }
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-23 10:53:19  更:2022-04-23 10:55:53 
 
开发: 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年11日历 -2024/11/24 3:17:58-

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