📜  Logstash-支持的输出(1)

📅  最后修改于: 2023-12-03 14:44:03.908000             🧑  作者: Mango

Logstash支持的输出

Logstash是一个流行的开源数据收集引擎,支持多种输入、过滤器和输出,是ELK Stack(Elasticsearch、Logstash、Kibana)中重要的一环。

Logstash的输出插件用于将处理过的数据发送到指定的目的地,包括文件、管道、消息队列、数据库、Web服务等。下面是Logstash支持的输出插件列表。

文件输出
file

将数据输出到文件中,支持本地和远程文件系统,支持日志切割、压缩和动态配置。

output {
  file {
    path => "/var/log/myapp.log"
    codec => "line"
    rotate_every_kb => 1000
    rotate_frequency => "daily"
    compression => "gzip"
  }
}
管道输出
stdout

将数据输出到控制台标准输出,常用于调试和测试。

output {
  stdout {
    codec => rubydebug
  }
}
stderr

将数据输出到控制台标准错误输出,常用于错误日志记录。

output {
  stderr {
    codec => rubydebug
  }
}
null

将数据丢弃,用于测试、性能优化等场景。

output {
  null { }
}
消息队列输出
kafka

将数据发送到Apache Kafka消息队列中,支持自定义主题、分区、压缩和安全认证等功能。

output {
  kafka {
    bootstrap_servers => "localhost:9092"
    topic_id => "mytopic"
    compression_type => "snappy"
    security_protocol => "PLAINTEXT"
  }
}
rabbitmq

将数据发送到RabbitMQ消息队列中,支持自定义队列、交换器、路由键和持久化等功能。

output {
  rabbitmq {
    host => "localhost"
    exchange => "myexchange"
    exchange_type => "topic"
    routing_key => "mykey"
    durable => true
  }
}
activemq

将数据发送到Apache ActiveMQ消息队列中,支持自定义主题、队列、连接池和事务等功能。

output {
  activemq {
    broker_url => "tcp://localhost:61616"
    topic => "mytopic"
    application_name => "myapp"
    pool_size => 10
    transaction_support => true
  }
}
数据库输出
elasticsearch

将数据索引到Elasticsearch搜索引擎中,支持自定义索引、类型、数据源、文档ID等属性。

output {
  elasticsearch {
    hosts => ["localhost"]
    index => "myindex"
    document_id => "%{id}"
    document_type => "mytype"
  }
}
mongodb

将数据存储到MongoDB数据库中,支持自定义集合、文档、认证和批量操作等功能。

output {
  mongodb {
    uri => "mongodb://localhost:27017/mydb"
    collection => "mycollection"
    document_id => "%{id}"
    batch_size => 1000
    username => "myuser"
    password => "mypassword"
  }
}
mysql

将数据存储到MySQL数据库中,支持自定义表、列、记录和事务等功能。

output {
  jdbc {
    connection_string => "jdbc:mysql://localhost:3306/mydb"
    username => "myuser"
    password => "mypassword"
    statement => "INSERT INTO mytable VALUES(?, ?, ?)"
    parameters => ["%{id}", "%{name}", "%{age}"]
    transaction_isolation => "READ_COMMITTED"
  }
}
Web服务输出
http

将数据发送到HTTP服务端点中,支持自定义请求类型、头部和认证等功能。

output {
  http {
    url => "http://localhost:8080/myapp"
    http_method => "post"
    content_type => "application/json"
    headers => { "Authorization" => "APIKEY mykey" }
    format => "message"
  }
}
exec

将数据作为参数执行外部命令,支持自定义命令、参数和环境变量等功能。

output {
  exec {
    command => "/usr/bin/myscript"
    args => ["%{id}", "%{name}", "%{age}"]
    environment => { "PATH" => "/usr/local/bin" }
  }
}

除上述输出插件外还支持多种其他的输出插件,如S3、NSQ、TCP等。根据具体的场景和需求选择合适的输出插件是保证Logstash高效、可靠工作的关键。