我一直在使用Kibana 3进行事件日志审查大约一年左右,而且效果很好.我可以为不同类型的日志创建不同的仪表板,并为最终用户(IT人员)提供所需的仪表板.
在这些仪表板中,我将有一个日期直方图,饼图,最后是查询中所有文档的表格(无论如何都是前500个).所有这些都在最终用户非常满意的一页中.
我在使用Kibana 4 Beta 3的QA环境中复制它时遇到了麻烦.
我可以创建包含"可视化"的仪表板,这是日期直方图和饼图.我甚至可以做一些很酷的新事物,因为它基于聚合.
但是,我正在努力在仪表板中包含一个文档表.在Kibana 3中,我添加了一个"表格"面板,然后选择我想要查看的字段.看来此功能已被"发现"页面取代.
在Kibana 4中可以做到这一点吗?现在我必须在Dashboard和Discover页面之间切换以获得我需要的东西.此外,如果我单击饼图的一个切片,它会在"仪表板"页面上创建一个过滤器(所有图形都会受到影响),但这不会转换为"发现"页面,因此我必须手动创建过滤器.这有点反直觉,与Kibana 3的日志审查可用性有点分离.
我打赌我只是在这里遗漏了一些东西.希望就是这种情况,有人可以帮我看清楚.谢谢!
我有一个字段"警报",其中包含一个包含空格,数字和特殊字符的长字符串.我将此字段设置为"not_analyzed".使用通配符查询我可以发出如下查询并获得我想要的结果.
POST /test-index-snort2/type-snort/_search
{
"query": {
"wildcard": {
"Alert": {
"value": "ET CNC*"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想用Kibana来实现类似的搜索.但是,这样做不会返回结果.我在Kibana的查询显示如下:
Alert:"ET CNC*"
Run Code Online (Sandbox Code Playgroud)
这反过来创建一个query_string查询,如下所示:
"query": {
"filtered": {
"query": {
"bool": {
"should": [
{
"query_string": {
"query": "Alert:\"ET CNC*\""
}
}
]
}
},
"filter": {
"bool": {
"must": [
{
"match_all": {}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法通过使用通配符查询的query_string查询在Kibana中获得相同的结果?
以下是Alert字段的映射和条目示例:
"Alert": {
"type": "string",
"index": "not_analyzed"
},
"Alert": "ET CNC Palevo Tracker Reported CnC Server TCP group 9 ",
"Alert": "ET CNC …Run Code Online (Sandbox Code Playgroud) 我有一个程序显示出看起来像是内存泄漏,但是我无法跟踪它.我写的测试程序用来证明这个行为很奇怪,我想确保理解为什么.
在该示例中,有两个数组,一个名为regexLeak,另一个名为noLeak.noLeak数组只是使用两个简单的正则表达作为基线.regexLeak数组包含使用字符集的正则表达式.
测试程序获取数组的内容,可能填充正则表达式模式,将其传递给编译正则表达式的函数,并将其放入作为参考传回的数组中.
当"test"数组设置为noLeak时,没有泄漏.当"test"数组设置为regexLeak时,会出现明显的内存泄漏.但是,如果regexLeak数组只包含一个元素,则不会发生泄漏.无论哪个元素都无关紧要.将两个元素放在数组中,然后使用内存从屋顶射出.
#!/usr/bin/perl
use strict;
use warnings;
my @regexLeak;
my @noLeak;
# Leaks only when both elements are added to @regexLeak
push(@regexLeak,'user = ([a-zA-Z0-9-_.@]+)');
push(@regexLeak,'admin = ([a-zA-Z0-9-_.@]+)');
# No leaks
push(@noLeak, 'simpleRegex');
push(@noLeak, 'anotherSimpleOne');
my @test = @regexLeak;
my $compiled = compileRegex(@test);
while (1) {
$compiled = compileRegex(@test);
# print scalar @{$compiled}."\n";
# select(undef, undef, undef, 0.25);
}
sub compileRegex {
my (@r) = @_;
my @compiled;
foreach my $regex (@r) {
my $c = qr/$regex/;
push(@compiled,$c);
} …Run Code Online (Sandbox Code Playgroud) 我安装了Elasticsearch 16GB的内存.我开始使用聚合,但在尝试发出以下查询时遇到"java.lang.OutOfMemoryError:Java堆空间"错误:
POST /test-index-syslog3/type-syslog/_search
{
"query": {
"query_string": {
"default_field": "DstCountry",
"query": "CN"
}
},
"aggs": {
"whatever": {
"terms": {
"field" : "SrcIP"
},
"aggs": {
"destination_ip": {
"terms": {
"field" : "DstIP"
},
"aggs": {
"port" : {
"terms": {
"field" : "DstPort"
}
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
query_string本身只返回1266次点击,所以我对OOM错误感到有点困惑.
我错误地使用聚合吗?如果没有,我该怎么做才能解决这个问题?谢谢!
我正在使用Term :: ReadLine :: Gnu并遇到了信号处理问题.鉴于下面的脚本和发送到脚本的TERM信号,在按下回车键之前,不会触发TERM信号的处理程序.使用Term :: ReadLine:Perl不会发生这种情况.
我已经读过Term :: ReadLine :: Gnu有自己的内部信号处理程序,但坦率地说,我不知道如何使用它们.
我已经回顾了http://search.cpan.org/~hayashi/Term-ReadLine-Gnu-1.20/Gnu.pm#Term::ReadLine::Gnu_Variables尝试将rl_catch_signals变量设置为0,但这没有帮助.理想情况下,我想与Gnu信号处理程序一起工作,但我也会满足于禁用它们.
为了绝对具体,我需要TERM处理程序在接收到信号后触发,而不是等待按下回车键.
任何帮助或建议当然感谢!
#!/usr/bin/perl
use strict;
use warnings;
use Term::ReadLine;
$SIG{TERM} = sub { print "I got a TERM\n"; exit; };
my $term = Term::ReadLine->new('Term1');
$term->ornaments(0);
my $prompt = 'cmd> ';
while ( defined (my $cmd = $term->readline($prompt)) ) {
$term->addhistory($cmd) if $cmd !~ /\S||\n/;
chomp($cmd);
if ($cmd =~ /^help$/) {
print "Help Menu\n";
}
else {
print "Nothing\n";
}
}
Run Code Online (Sandbox Code Playgroud) 当我登录到“安全与合规”页面并执行审核日志搜索时,我会看到我希望看到的事件,例如登录事件和邮箱登录(启用了邮箱审核)。我希望从 Graph API 获得同样的功能。
我创建了一个具有读取目录应用程序权限的应用程序,并且可以很好地访问 Graph API。但是,当我提取 AuditEvent 报告时,诸如 PasswordLogonInitialAuthUsingPassword 和 MailboxLogin 之类的事件根本不存在。
我继续使用 Office Management Activity API 创建了一个不同的应用程序,在开始订阅 Audit.Exchange 和 Audit.AzureActiveDirectory 后,我看到了我通常在 Web UI 中看到的所有事件。
我当然可能是错的,但似乎 Graph API 是未来,所以我更愿意在我的应用程序中利用它。Graph API 中是否提供了上述信息,或者我应该利用 Management Activity API 吗?我也有兴趣提取其他报告,例如以下似乎只存在于 Graph 中的报告:
感觉我在 Graph API 中遗漏了一些东西,所以任何指导都将不胜感激。
我正在使用Term :: ReadLine并且有一个奇怪的问题,我需要两次点击向上箭头来从addhistory中检索项目.这是我正在使用的脚本.
use Term::ReadLine;
my $term = Term::ReadLine->new('Term1');
print $term->ReadLine."\n";
while (defined(my $cmd = $term->readline())) {
$term->addhistory($cmd) if $cmd =~ /\S/;
}
Run Code Online (Sandbox Code Playgroud)
为了测试,我将输入一些"命令",然后尝试使用向上箭头检索这些命令.我点击向上箭头,最后一个项目立即出现,但我需要在检索到每个后续项目之前按两次向上箭头.
我之前在一个正在研究的小项目中遇到过这个问题,遇到了同样问题的人.该问题的解决方案是对addhistory行的修改如下:
$term->addhistory($cmd) if $cmd !~ /\S||\n/;
Run Code Online (Sandbox Code Playgroud)
它起作用所以我继续前进,直到Tanktalus在我发布的另一个问题中提出这个问题.Perl Term :: ReadLine :: Gnu信号处理的难点
他问"什么是/\S || \n /应该做什么?".好吧,让我去找那个暗示这个作为修复的页面......是的......找不到它.因此,虽然我可以使用我发布的修改工作,但是因为A我有点卡住了.我不知道它为什么修复它,而B.为什么我似乎是唯一一个有这个问题的人?
任何帮助或建议将不胜感激!:)
使用以下版本测试上述脚本:
Perl - 5.12.4 and 5.16.1
Term::ReadLine::Gnu - 1.20
Term::ReadLine::Perl - 1.0303 (Just tried it to make sure it wasn't Gnu)
Term::ReadLine - 1.10
Run Code Online (Sandbox Code Playgroud)