Logstash基础入门与配置实践
Logstash 学习笔记是一份针对初学者的指南,介绍了如何入门和使用 Logstash 这个强大的日志管理和数据管道工具。Logstash 主要用于实时数据收集、处理和传输,它能够将各种来源的数据整合到一起,并将其发送到不同的目标,如 Elasticsearch、Kafka 或者标准输出(stdout)。以下是从笔记中提炼出的关键知识点: 1. **命令行使用**: - `bin/logstash -e` 是Logstash 的执行命令,用于指定配置文件。默认情况下,输入是来自标准输入(stdin),输出则直接打印到标准输出(stdout)。 - `-f` 参数用于指定配置文件路径,允许用户通过外部文件定义复杂的输入和输出处理逻辑。 2. **日志管理**: - `-l` 参数用于设置日志级别和位置,比如 `bin/logstash -l logs/logstash.log`,可以指定日志文件的路径和输出格式。 3. **插件管理**: - `bin/plugin list` 可以查看已安装的Logstash 插件,这些插件可以扩展 Logstash 功能,如GeoIP 插件用于地理位置信息提取,mutate 插件用于数据转换。 4. **输出配置示例**: - Kafka 输出用于将数据发送到Kafka 集群,包括指定主题(topic_id)、服务器地址(bootstrap_servers)以及批量发送大小(batch_size)等参数。 - Elasticsearch 输出则将数据存储到Elasticsearch 集群,通过hosts参数指定多个节点,以及设置flush_size和idle_flush_time来控制数据的写入策略。 5. **过滤器**: - filter 部分是Logstash 的核心,通过如geoip和mutate这样的过滤器对数据进行预处理。geoip过滤器可以根据IP地址获取地理位置信息,并转换成特定的格式(如整数、浮点数或字符串)。 6. **与其他工具集成**: - Logstash 可以与Flume 进行集成,接收Flume 传递过来的数据,尽管没有在提供的部分中详细描述,但通常 Flume 会作为数据收集器,将数据先传输到Logstash。 7. **数据类型处理**: - 在GeoIP过滤器中,对不同类型的地理编码结果(如IP地址)进行了类型转换,确保后续处理的准确性。 这篇笔记提供了关于Logstash 基础配置、命令行操作、插件管理和数据处理的基本指导,对于想要学习和实践Logstash 的初学者来说是非常有用的资源。在实际应用中,根据需求灵活组合输入、过滤器和输出,可以构建出高效的数据管道解决方案。
效果等同于:bin/logstash -e 'input {stdin { }}output {stdout { }}’
'' 默认配置为:input {
stdin { }
}
output {
stdout { }
}
2.--config 或 -f 表示指定启动的配置文件
3. --log 或 -l 意即日志。Logstash 默认输出日志到标准错误。生产环境下你可以通过 bin/logstash -l logs/logstash.log 命令来统一存储日志。
4. bin/plugin list 查看本机现在有多少插件可用。(其实就在vendor/bundle/jruby/1.9/gems/ 目录下)
5. output{stdout{codec=>rubydebug}} 在控制台显示输出相关信息
6.logstash和flume比较
flume在高可用(可靠性)方面做得比较好,对数据保护更强。logstash则更简洁,且插件多,功能强大。
flume偏向于数据收集和传输,logstash偏向 于数据收集和数据处理。
logstash进kafka
input {
stdin{}
}
output {
kafka{
topic_id => "test4"
bootstrap_servers => "192.168.5.128:9092"
batch_size => 5
}
stdout{
codec => rubydebug
}
kafka进logstash进elasticsearch
input{
kafka{
codec => "plain"
group_id => "logstash1"
auto_offset_reset => "smallest"
reset_beginning => true
topic_id => "test4"
zk_connect => "192.168.5.128:42182"
}
}
output{
elasticsearch{
hosts => ["hadoop0:9200","hadoop1:9200","hadoop2:9200","hadoop3:9200"]
index => "ecm2"
flush_size => 20000
idle_flush_time => 5
}
}
IP过滤
filter {
geoip {
source => "message" //这里输入的message为IP,可根据具体消息具体配置
fields => ["","",""] //可以选择要添加字段,不配置此项则显示所有字段
剩余6页未读,继续阅读
- 粉丝: 404
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展