所以,我有一个Web平台,每个请求打印一个JSON文件,其中包含有关该请求的一些日志数据.我可以配置几个关于何时记录内容的规则,仅限于某些级别等...
现在,我一直在玩Logstash + Elasticsearch + Kibana3堆栈,我很想找到一种在Kibana中查看这些日志的方法.我的问题是,有没有办法让Logstash导入这些类型的文件,还是我必须为它编写自定义输入插件?我一直在寻找和看到我所看到的,插件是用Ruby编写的,这是一种我没有经验的语言.
我们使用ELK进行日志聚合.是否可以搜索特定时间范围内发生的事件.让我们说我希望看到上个月上午10点到11点之间发生的所有例外情况.
是否有可能从@timestamp中提取时间部分并以某种方式对其进行范围搜索(类似于SQL中的date())?
是否可以使用Kibana(最好是闪亮的新版本4 beta)来执行应用程序端连接?
我知道ES/Kibana不是为了取代关系数据库而构建的,通常更好的做法是对数据进行非规范化.然而,在这个用例中,这不是最好的方法,因为索引大小正在爆炸并且性能正在下降:
我正在索引数十亿个包含网络流的会话信息的文档,如:source ip,source port,destination ip,destination port,timestamp.
现在我也想收集每个IP地址的其他信息,如地理位置,ASN,反向DNS等将此信息添加到每一个会话文件,使整个数据库不可收拾:现在有成千上万的文件具有相同的IP地址和冗余向所有这些文档添加相同的附加信息会导致巨大的膨胀和无响应的用户体验,即使在具有数百GB内存的集群上也是如此.
相反,我想创建一个单独的索引,其中只包含唯一的IP地址和我收集到的每个元数据的元数据.
问题是:我怎样才能使用kibana分析我的数据?对于查询返回的每个文档,kibana应该在ip-index中执行查找,并使用此信息"虚拟地丰富"每个ip地址.像添加虚拟字段的东西,所以结构看起来像这样(在运行中):
source ip,source port,source country,source asn,source fqdn
我知道这会以多次查询为代价.
我想在kibana 4"Discover"页面中通过查询运行一个简单的sql组.我的弹性搜索索引中的每条记录代表一个日志并有3列:process_id (not unique value), log_time, log_message.
例:
process_id log_time log_message
---------------- -------------------- -------------- ------
1 2014/12/11 01:00 msg1
1 2014/12/11 01:10 msg2
1 2014/12/11 01:20 msg3
2 2014/12/11 11:00 msg4
2 2014/12/11 11:10 msg5
我想在kibana中生成一个表格,如下所示:
process_id first log_time last log_time
---------------- ------------------------ ---------- ----------
1 2014/12/11 01:00 2014/12/11 01:20
2 2014/12/11 11:00 2014/12/11 11:10
在sql中,查询很简单:通过process_id从logs_table group中选择process_id,max(log_time),min(log_time)
如何在Kibana中运行此查询?是否可以在"发现"页面中运行查询,还是应该创建一个面板(可视化页面)?
谢谢.
Kibana 4具有添加脚本字段和编写自定义脚本的新功能.我希望编写一个使用聚合的脚本.它很容易在脚本脚本中进行简单的算术运算,但是为了进行聚合,我很困惑.我是Kibana和elasticsearch的新来者,我正在寻找一个开始的示例脚本..
我想创建一个仪表板,显示有关一组有限的请求值的信息:
request:("/path1" OR "/path2" OR "/path3")
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试过的:
他们是使用Dashboard编辑器执行此操作的方法还是需要通过Settings-> Objects-> Dashboards进行一些json脚本编写?如果是这样,你能指出我对这个(转义)语法的一个很好的参考吗?
在Kibana 3中,您可以定义"或者"类型的过滤器.Kibana 4中是否存在此功能?
我正在使用Kibana 4.0.2
我正在将Elasticsearch和Kibana设置为我们办公室的集中式日志记录平台.
我们有许多自定义实用程序和插件,我想跟踪用户的使用情况以及用户是否遇到任何错误.更不用说还有我想跟踪的服务器和预定工作.
因此,如果我有许多不同的日志数据源,所有这些源都会转到同一个弹性搜索集群,那么它们如何组织成索引和文档类型的约定或最佳实践呢?
Logstash使用的默认索引值是"logstash-%{+YYYY.MM.dd}".所以看起来最好用当前日期后缀任何索引名称,因为这样可以很容易地清除旧数据.
但是,Kibana允许添加可以在UI中选择的多个"索引模式".然而,我读过的所有教程都只提到创建一个单一的模式logstash-*.
如何在实践中使用多种索引模式?我是否只为我的数据的所有来源命名?如:
BackupUtility-%{+YYYY.MM.dd}
UserTracker-%{+YYYY.MM.dd}
ApacheServer-%{+YYYY.MM.dd}
Run Code Online (Sandbox Code Playgroud)
我在一些具有弹性搜索目标的工具中使用nLog.nLog和其他类似日志框架的约定是为源代码中的每个类都有一个"记录器".这些记录器是否应该转换为弹性搜索中的索引?
MyCompany.CustomTool.FooClass-%{+YYYY.MM.dd}
MyCompany.CustomTool.BarClass-%{+YYYY.MM.dd}
MyCompany.OtherTool.BazClass-%{+YYYY.MM.dd}
Run Code Online (Sandbox Code Playgroud)
或者这对于弹性搜索索引名称来说太过细化了,最好只坚持应用程序的单个日期索引?
CustomTool-%{+YYYY.MM.dd}
Run Code Online (Sandbox Code Playgroud) 我正在探索grafana我的日志管理和系统监控.我发现kibana也用于相同的过程.我只是不知道何时使用kibana以及何时使用grafana以及何时使用zabbix?
我最近使用redis 2.8.24,Elasticsearch 1.2.2和Kibana 3.1升级了我的ELK堆栈(使用redis 3.2.3,Elasticsearch 2.3.5和Kibana 4.5.4的logstash 2.3.4)(logstash 1.4.1/1.4.2) 0.1).升级进行得很顺利,但升级后我有一些字段有冲突类型.此特定字段由logstash动态创建,因此Elasticsearch中没有整体映射.我花了相当多的时间搜索如何改变它.每篇在线文章都说我不能简单地改变现有数据的字段类型.我引用的许多文章都需要重新索引,但未能解释如何.以下是我更改类型和重新索引的确切步骤.
从需要更改字段类型的当前索引获取映射:
curl -XGET http://localhost:9200/logstash-2016.05.30/_mapping?pretty=1 > logstash-2016.05.30
Run Code Online (Sandbox Code Playgroud)
编辑logstash-2016.05.30文件,删除文件中的第二行(索引名称)和第二行(花括号).如果不这样做,将不会更新映射.我想如果你将索引名称编辑为新名称它可以工作,但我没有尝试(应该尝试我猜).
编辑logstash-2016.05.30文件并更改类型(即long为string或string为long).您可以使用类似字段使用的确切定义.
"http_status" : {
"type" : "string",
"norms" : {
"enabled" : false
},
"fields" : {
"raw" : {
"type" : "string",
"index" : "not_analyzed",
"ignore_above" : 256
}
}
},
Run Code Online (Sandbox Code Playgroud)
改成:
"http_status" : {
"type" : "long"
},
Run Code Online (Sandbox Code Playgroud)
接下来创建新索引(追加_new或任何你想要的)
curl -XPUT http://localhost:9200/logstash-2016.05.30_new -d @logstash-2016.05.30
Run Code Online (Sandbox Code Playgroud)
仔细检查映射是否已正确创建
curl -XGET http://localhost:9200/logstash-2016.05.30_new/?pretty
Run Code Online (Sandbox Code Playgroud)
使用以下方法重新索引:
curl -XPOST http://localhost:9200/_reindex -d '{
"source": {
"index" : "logstash-2016.05.30"
},
"dest" …Run Code Online (Sandbox Code Playgroud) 我无法使用浏览器访问AWS Elasticsearch Kibana.
我在我的VPC中设置了一个完全如此处所述的Elasticsearch实例;
https://aws.amazon.com/blogs/aws/amazon-elasticsearch-service-now-supports-vpc/
我使用默认的IAM访问策略模板,该模板基本上是所有当前的IAM配置文件(*)
我的EC2 webapp(xenforo论坛)很愉快地联系在一起并且正在消失.
我想通过浏览器从家用PC访问我的elasticsearch域kibana端点.
我附加到群集配置的安全组包括允许从我的家庭宽带固定IP地址入站的所有TCP的规则.
我登录AWS控制台,点击elasticsearch域概述中的Kibana链接,然后......没有,超时.
我已经阅读了有关此事的所有内容.没有快乐 - 除非我应该签署我的https请求,这看起来很复杂,我的理解是IP访问应该可以配置安全组吗?
任何人都可以澄清吗?