Dav*_*vid 92 logging elasticsearch logstash graylog2
假设您有两种非常不同类型的日志,例如技术和业务日志,您需要:
gelf输出将原始技术日志路由到graylog2服务器,elasticsearch_http输出将json业务日志存储到elasticsearch集群中.我知道,Syslog-NG例如,配置文件允许定义几个不同的输入,然后可以在分派之前单独处理; 什么Logstash似乎无法做到.即使一个实例可以使用两个特定的配置文件启动,所有日志都采用相同的通道并应用相同的处理...
我应该运行尽可能多的实例,因为我有不同类型的日志吗?
Ben*_*Lim 184
我应该运行尽可能多的实例,因为我有不同类型的日志吗?
没有!您只能运行一个实例来处理不同类型的日志.
在logstash配置文件中,您可以使用不同类型指定每个输入.然后在过滤器中,您可以使用if来区分不同的处理,并且在输出处也可以使用"if"输出到不同的目标.
input {
file {
type => "technical"
path => "/home/technical/log"
}
file {
type => "business"
path => "/home/business/log"
}
}
filter {
if [type] == "technical" {
# processing .......
}
if [type] == "business" {
# processing .......
}
}
output {
if [type] == "technical" {
# output to gelf
}
if [type] == "business" {
# output to elasticsearch
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮到你 :)
Rob*_*ang 14
我使用标签进行多个文件输入:
input {
file {
type => "java"
path => "/usr/aaa/logs/stdout.log"
codec => multiline {
...
},
tags => ["aaa"]
}
file {
type => "java"
path => "/usr/bbb/logs/stdout.log"
codec => multiline {
...
}
tags => ["bbb"]
}
}
output {
stdout {
codec => rubydebug
}
if "aaa" in [tags] {
elasticsearch {
hosts => ["192.168.100.211:9200"]
index => "aaa"
document_type => "aaa-%{+YYYY.MM.dd}"
}
}
if "bbb" in [tags] {
elasticsearch {
hosts => ["192.168.100.211:9200"]
index => "bbb"
document_type => "bbb-%{+YYYY.MM.dd}"
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56649 次 |
| 最近记录: |