📅  最后修改于: 2023-12-03 14:44:03.908000             🧑  作者: Mango
Logstash是一个流行的开源数据收集引擎,支持多种输入、过滤器和输出,是ELK Stack(Elasticsearch、Logstash、Kibana)中重要的一环。
Logstash的输出插件用于将处理过的数据发送到指定的目的地,包括文件、管道、消息队列、数据库、Web服务等。下面是Logstash支持的输出插件列表。
将数据输出到文件中,支持本地和远程文件系统,支持日志切割、压缩和动态配置。
output {
file {
path => "/var/log/myapp.log"
codec => "line"
rotate_every_kb => 1000
rotate_frequency => "daily"
compression => "gzip"
}
}
将数据输出到控制台标准输出,常用于调试和测试。
output {
stdout {
codec => rubydebug
}
}
将数据输出到控制台标准错误输出,常用于错误日志记录。
output {
stderr {
codec => rubydebug
}
}
将数据丢弃,用于测试、性能优化等场景。
output {
null { }
}
将数据发送到Apache Kafka消息队列中,支持自定义主题、分区、压缩和安全认证等功能。
output {
kafka {
bootstrap_servers => "localhost:9092"
topic_id => "mytopic"
compression_type => "snappy"
security_protocol => "PLAINTEXT"
}
}
将数据发送到RabbitMQ消息队列中,支持自定义队列、交换器、路由键和持久化等功能。
output {
rabbitmq {
host => "localhost"
exchange => "myexchange"
exchange_type => "topic"
routing_key => "mykey"
durable => true
}
}
将数据发送到Apache ActiveMQ消息队列中,支持自定义主题、队列、连接池和事务等功能。
output {
activemq {
broker_url => "tcp://localhost:61616"
topic => "mytopic"
application_name => "myapp"
pool_size => 10
transaction_support => true
}
}
将数据索引到Elasticsearch搜索引擎中,支持自定义索引、类型、数据源、文档ID等属性。
output {
elasticsearch {
hosts => ["localhost"]
index => "myindex"
document_id => "%{id}"
document_type => "mytype"
}
}
将数据存储到MongoDB数据库中,支持自定义集合、文档、认证和批量操作等功能。
output {
mongodb {
uri => "mongodb://localhost:27017/mydb"
collection => "mycollection"
document_id => "%{id}"
batch_size => 1000
username => "myuser"
password => "mypassword"
}
}
将数据存储到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"
}
}
将数据发送到HTTP服务端点中,支持自定义请求类型、头部和认证等功能。
output {
http {
url => "http://localhost:8080/myapp"
http_method => "post"
content_type => "application/json"
headers => { "Authorization" => "APIKEY mykey" }
format => "message"
}
}
将数据作为参数执行外部命令,支持自定义命令、参数和环境变量等功能。
output {
exec {
command => "/usr/bin/myscript"
args => ["%{id}", "%{name}", "%{age}"]
environment => { "PATH" => "/usr/local/bin" }
}
}
除上述输出插件外还支持多种其他的输出插件,如S3、NSQ、TCP等。根据具体的场景和需求选择合适的输出插件是保证Logstash高效、可靠工作的关键。