我们从服务器发送日志,并在每台服务器上使用logstash进行装运。 所以我们从glob "/root/Desktop/Logstash-Input/**/*_log"读取日志。 input { file{ path => "/root/Desktop/Logstash-Input/**/*_log" start_position => "beginning" } } 从这个glob我们从我们想要添加到事件的path提取字段 。 例如:从目录path提取server , logtype等。我们这样做: filter { grok { match => ["path", "/root/Desktop/Logstash-Input/(?<server>[^/]+)/(?<logtype>[^/]+)/(?<logdate>[\d]+.[\d]+.[\d]+)/(?<logfilename>.*)_log"] } } 然后我们使用lumberjack输出插件将这些日志输出到中央logstash服务器。 output { lumberjack { hosts => ["xx.xx.xx.xx"] port => 4545 ssl_certificate => "./logstash.pub" } stdout { codec => rubydebug } } 问题在于,运送到中央服务器的日志会丢失使用grok添加的字段。 例如中央服务器上不存在server , logtype等。 […]
我想知道我怎样才能logging用户在服务器上使用的SSH命令行。 例如,如果我的服务器上的用户Alex正在执行以下一组命令: $ cd /tmp $ touch myfile $ ssh [email protected] $ ssh [email protected] $ vim anotherfile $ ssh [email protected] 我想将服务器上使用的ssh命令logging在如下所示的文件中: [2014-07-25 10:10:10] Alex : ssh [email protected] [2014-07-25 10:18:20] Alex : ssh [email protected] [2014-07-25 11:15:10] Alex : ssh [email protected] 我不在乎他在ssh会议期间做了什么,我只是想知道WHEN和他在哪里与另一台服务器build立连接。 用户没有使用bash,我想避免操作.bash_history,因为用户可以修改它。 任何线索? 谢谢 :) 编辑:更具体: 用户连接到服务器A,然后从服务器A连接到服务器B.我想跟踪他通过服务器A通过SSH连接的服务器。
这个问题不考虑Windows Server 2003和较老的操作系统。 我知道,对于本地login(事件ID 4624)logintypes也被logging(交互,远程等)。 有没有办法通过只收集域控制器日志来识别logintypes还有域authentication? 也就是说,可以通过在他的工作站(通过键盘)和用户或服务在networking上进行authentication的用户身份validation来生成事件ID(如4771和4768),如果有,是否有办法从日志中知道这一点4771或4768)? 或者是通过networking身份validation始终覆盖事件ID 4769,因此事件ID 4771和4768仅用于本地身份validation?
我最近检查了一个SQL Server 2012实例,只看到硬盘已满,在调查发生了什么之后,它是全文search信息行,每分钟填充日志文件和磁盘空间。 它添加了几GB的日志信息,如下面的行: 2015-01-26 14:08:58.40 spid42s Informational: Resuming full-text population for table or indexed view '[db].[dbo].[table]' in database 'db' (table or indexed view ID '690817523', database ID '5'). Prior number of documents processed: 0, error encountered: 0. 我的问题是如何防止SQL Server通过全文search引擎向日志文件写入任何“信息”细节,或者(不太首选的方法)如何禁用它的完全日志?
我有我的nginx设置阻止某些查阅者如此: if ($http_referer ~* (site_name) ) { return 403; } 这工作正常,但是我想也阻止引用到日志文件。 我尝试添加 access_log /path/to/server/bad_domain.log; 在if语句中; 然而这是行不通的。 有任何想法吗? 谢谢。 编辑: 我也试过这个无济于事。 if ($http_referer ~* (site_name) ) { set $crawler 'yes'; return 403; } location ~ .* { if ($crawler = 'yes') { access_log /path/to/server/bad_domain.log; } } 编辑2: 试 map $http_referer $log_referer { domain1.com 1; default 0; […]
我试图让aws启动我的日志服务,并且我有我的日志stream和已经添加的日志组。 当我到达VPC仪表板时,我感兴趣的Flow Log的status如下: Access Error. The IAM role for your flow logs does not have sufficient permissions to send logs to the CloudWatch log group. 但是,当我查看与此Flow日志关联的IAMangular色时,我发现我的权限与此处指定的定制策略完全相同(在该链接中,search“在策略文档”字段中查找策略I'我正在谈论)。 有什么可以阻止我的IAMangular色现在访问日志? 日志stream是完全空白的。 谢谢。
在我的Nginxconfiguration中,我有一些IP块,以对抗垃圾邮件和漫游器。 这是非常有效的,但结果是,我的错误日志得到了超快的错误消息,如下所示: 2015/12/16 00:56:28 [error] 27748#0:* 120462规则访问被禁止,客户端:167.114.xxx.xxx,服务器:bla bla …. 现在我不想完全禁用错误日志logging,因为我想知道什么地方出了问题。 我只想禁用这些“被规则禁止”消息的日志logging。 任何想法如何做到这一点?
当一些HTTP代码被触发时,我想通过电子邮件得到警告,所以我想根据请求的HTTP代码在不同的文件之间调度日志。 就像我可以把这些文件的观察员,然后通过邮件得到警告。 而且,如果HTTP代码在单独的文件中,日志文件应该更轻,所以它会增加我的日志分析器速度。 我试图在没有成功的情况下find有关Apache文档的信息,看起来像我必须使用SetEnvIf类似的东西: SetEnvIf ??http_code?? 403 403log CustomLog ${APACHE_LOG_DIR}/403.log vhost_combined env=403log SetEnvIf ??http_code?? 404 404log CustomLog ${APACHE_LOG_DIR}/404.log vhost_combined env=404log SetEnvIf ??http_code?? 406 406log CustomLog ${APACHE_LOG_DIR}/406.log vhost_combined env=406log etc … 不幸的是,似乎“http_code”看起来像Apache中不存在的一个variables 问:有没有办法根据Apache中的HTTP代码来调度访问日志? 谢谢阅读。
我运行我的小公司的网站和几个服务,在一个VPS上(运行CentOS 6.8),我有充分的pipe理权限。 由于试图查明PHP脚本中的内存泄漏问题,我一直在监视VPS一段时间,我再一次查看了日志。 我所看到的是一串长长的日志消息,比如: 错误消息的屏幕截图 我想解决任何configuration问题导致这些错误“污染”系统日志,因为他们使日志无法使用。 每5秒钟,我会得到一批这样的: Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty2) main process (1381) terminated with status 1 Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty2) main process ended, respawning Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty1) main process (1382) terminated with status 1 Feb 17 12:43:03 vpsxxxxx init: tty (/dev/tty1) main process […]
想象一下一些带有各种脚本的Linux系统(主要是PERL,但它可能是写入STDERR的任何东西),它们由不同用户运行几百次,需求稍有不同。 日志保存在输出中,每个脚本的警告/错误(stderr)都会运行。 这意味着1000个日志正在积累。 用户犯错误。 而开发人员并不总是写干净的代码等 我们希望从日志中看出发生了什么事情,在每种情况下(以编程方式)以及(在行政上,分析上)理解随着时间的推移趋势。 这个问题也可以考虑在一个web服务器/ cgi的情况下,因为这往往会产生100s的脚本运行,但我不寻找特殊的解决scheme访问/错误日志。 一般而言,通常存在哪些免费/开源软件工具来识别和分析来自这样的日志集合的exception输出,其中每个日志代表一个过程的一个运行? 有用的function可能包括: 可以比较此运行的stdout / stderr与历史输出,并确定标准输出或stderr的哪些部分不常见或值得注意 可以通过以纯文本存储所有日志来实现“压缩”,无需存储100次或更多的相同错误 可以分析整个商店的趋势(这个消息比以前显示的更less或更多)以及计数(最常见的错误是这些) 有一个可浏览的graphics和数据输出types的用户界面 例如,可以从stderr中获取所有日志,并将它们通过sort和uniq -c运行,然后重新sorting,以便从最不频繁到最常见的错误string列表。 也可以开始将日志转储到某种SQL数据库中。 这可能会成为一个工具的基石,但也许有完整的软件包,已经做了这些,更多。 所以我想我会问看看其他人使用什么。 你们是否为这类事情开发内部工具?还是有很好的开源替代品?