elasticsearch 日志存储多个日志
我正在学习一个在线教程,并获得了cars.csv文件和以下Logstash配置文件。我的日志库运行得非常好,并且在我们讲话时正在为CSV编制索引 问题是,我有另一个日志文件(完全不同的数据),我需要解析它并将其索引到不同的索引中
elasticsearch 日志存储多个日志,
elasticsearch,logstash,logstash-configuration,
elasticsearch,Logstash,Logstash Configuration,我正在学习一个在线教程,并获得了cars.csv文件和以下Logstash配置文件。我的日志库运行得非常好,并且在我们讲话时正在为CSV编制索引 问题是,我有另一个日志文件(完全不同的数据),我需要解析它并将其索引到不同的索引中 如何在不重新启动logstash的情况下添加此配置 如果上面不可能,我编辑配置文件,然后重新启动logstash-它不会重新索引整个cars文件,是吗 如果我做2。如何格式化多个日志文件样式的配置 我的新日志文件如下所示: 01-01-2017 ORDER FAILED
01-01-2017 ORDER FAILED: £12.11 Somewhere : Fraud
现有配置文件:
input {
file {
path => "/opt/cars.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
columns =>
[
"maker",
"model",
"mileage",
"manufacture_year",
"engine_displacement",
"engine_power",
"body_type",
"color_slug",
"stk_year",
"transmission",
"door_count",
"seat_count",
"fuel_type",
"date_last_seen",
"date_created",
"price_eur"
]
}
mutate {
convert => ["mileage", "integer"]
}
mutate {
convert => ["price_eur", "float"]
}
mutate {
convert => ["engine_power", "integer"]
}
mutate {
convert => ["door_count", "integer"]
}
mutate {
convert => ["seat_count", "integer"]
}
}
output {
elasticsearch {
hosts => "localhost"
index => "cars"
document_type => "sold_cars"
}
stdout {}
}
orders.log的配置文件
input {
file {
path => "/opt/logs/orders.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => { "message" => "(?<date>[0-9-]+) (?<order_status>ORDER [a-zA-Z]+): (?<order_amount>£[0-9.]+) (?<order_location>[a-zA-Z]+)( : (?<order_failure_reason>[A-Za-z ]+))?"}
}
mutate {
convert => ["order_amount", "float"]
}
}
output {
elasticsearch {
hosts => "localhost"
index => "sales"
document_type => "order"
}
stdout {}
}
输入{
文件{
path=>“/opt/logs/orders.log”
开始位置=>“开始”
sincedb_path=>“/dev/null”
}
}
滤器{
格罗克{
匹配=>{“消息”=>“(?[0-9-]+)(?[a-zA-Z]+):(?[0-9.]+)(?[a-zA-Z]+)(:(?[a-zA-Z]+))?”
}
变异{
转换=>[“订单金额”,“浮动”]
}
}
输出{
弹性搜索{
主机=>“本地主机”
索引=>“销售额”
文档类型=>“订单”
}
stdout{}
}
免责声明:我是一个完全的新手。第二天使用麋鹿。对于第1点,您可以在logstash.yml文件中设置
config.reload.automatic:true
或者,在使用conf文件执行logstash时,按如下方式运行:
bin/logstash -f conf-file-name.conf --config.reload.automatic
完成这些设置后,您可以启动日志存储,从现在起,您在conf文件中所做的任何更改都将反映出来。
2。如果无法执行上述操作,我编辑配置文件,然后重新启动logstash-它不会重新索引整个cars文件,对吗?
如果使用sincedb\u path=>“/dev/null”
,Logstash将不记得is在哪里停止读取文档,并将在每次重新启动时重新为其编制索引。如果希望Logstash记住,则必须删除此行(请参阅)
3.如何为多种样式的日志文件格式化配置。
要支持多种样式的日志文件,可以在文件输入上放置标记(请参阅),然后在文件配置中使用条件(请参阅)
像这样:
file {
path => "/opt/cars.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
tags => [ "csv" ]
}
file {
path => "/opt/logs/orders.log"
start_position => "beginning"
sincedb_path => "/dev/null"
tags => [] "log" ]
}
if csv in [tags] {
...
} else if log in [tags] {
...
}