我使用logstash(版本1.5.3)将syslog导入elasticsearch(版本1.7.1),使用以下配置。
function Carga(){
var tablaDatos = $("#datos");
var route = "http://cmec.app/agenda";
$("#datos").empty();
$.getJson(route, function(res){
$(res).each(function(key, value){
tablaDatos.append(
"<tr><td>"+value.name+"</td><td>"+value.lastname+"</td><td>"+value.doctor+"</td><td>"+value.fecha+"</td><td>"+value.hora+"</td><td><div class='btn-group btn-group-sm' role='group'><button value="+value.id+" OnClick='Mostrar(this);' class='btn btn-danger'><i class='fa fa-trash-o'></i></button><button value="+value.id+" OnClick='Mostrar(this); ' class='btn btn-primary' data-toggle='modal' data-target='#editar-modal' ><i class='fa fa-pencil-square'></i></button></div></td></tr>");
});
});
}
我的索引是根据当前日期和时间创建的,即input{
file {
path => "somepath\*.log"
}
}
filter{
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:message_hostname} %{DATA:message_program}(?:\[%{POSINT:message_pid}\])?: %{GREEDYDATA:user_message}" }
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
output {
elasticsearch{
cluster => somecluster
host => localhost
index => "logindex-%{+YYYY-MM-dd}"
}
}
。
我想根据日期logindex-2015-08-07
创建索引,而不是使用上述格式创建当前日期syslog_timestamp
所以如果日志有时间戳{+YYYY-MM-dd}
,我的索引应该创建为2015-01-01
而不是logindex-2015-01-01
修改
使用的日志输入:
logindex-2015-08-07
Logstash调试输出
Jul 27 07:49:01 Server1 CRON[21009]: (root) CMD LTest Message
答案 0 :(得分:2)
问题可能是您计算机上的区域设置与用于生成日志的区域设置不同。因此,您应在locale
过滤器中指定date
,如下所示:
...
filter{
grok {
...
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
locale => "en"
}
}
...
<强>更新强>
根据您上面的日志输出(非常有用!!),您的date
过滤器应该在message_timestamp
字段上工作,而不是syslog_timestamp
(不存在)< / p>