故障排除

本节提供在使用应用程序时经常遇到的问题的描述和处理这些问题的指导。如果您确实需要联系技术支持,本节将帮助您收集技术支持需要帮助您的信息。

使用日志文件

如果您在使用安全控制台或扫描引擎时遇到问题,您可能会发现查阅日志文件以进行故障排除很有帮助。日志文件对于例行维护和调试也很有用。

该部分不涵盖与扫描事件有关的扫描日志。看到查看扫描日志

查找每个日志文件并了解其用途

日志文件位于安全控制台上的[安装_Directory] ​​/ nsc / logs目录中,扫描引擎上的[安装_directory] ​​/ nse / logs。以下日志文​​件可用:

  • access.log(仅在Security Console上):该文件捕获有关正在被访问的资源的信息,例如Web界面中的页面。在INFO级别,access.log捕获有关API事件的有用信息,例如正在调用的API、API版本和API客户端的IP地址。这对于监视API使用和排除API问题非常有用。该文件被称为访问日志在早期的产品版本中。
  • auth.log(仅在安全控制台上):此文件捕获每次登录或注销以及身份验证事件,例如身份验证失败和锁定。它对于跟踪用户会话非常有用。此文件被称为um_log在早期的产品版本中。
  • nsc.log.(仅在安全控制台上):此文件捕获安全控制台中的系统和应用程序级事件。它对于跟踪和故障排除与更新,操作的调度或具有分布式扫描引擎的通信问题的各种问题非常有用。此外,如果安全控制台进入维护模式,则可以作为全局管理员登录并使用该文件监视维护模式活动。
  • nse.log(在安全控制台和分布式扫描引擎上):此文件对于故障排除与漏洞检查相关的某些问题非常有用。例如,如果检查会产生意外结果,则可以查看nse.log文件以确定扫描目标如何指纹。在分布式扫描引擎上,此文件还捕获未在任何其他日志文件中记录的系统和应用程序级事件。
  • mem.log.(在安全控制台和分布式扫描引擎上):此文件捕获与内存使用相关的事件。对内存密集型操作的问题进行故障排除,例如扫描和报告是有用的。
  • 引导* . log。:该文件包含了采集器安装和注册的相关日志。
  • 收集器.Log *:此文件包含常规收集器错误的相关日志。
  • engine_communication.log:此文件包含安全控制台与远程扫描引擎通信的相关日志。
  • eso.log.:此文件包含用于自动操作的相关日志。
  • initdb.log:此文件包含数据库的相关日志。
  • audit.log:此文件记录安全控制台用户创建事件,删除事件,角色更改以及站点配置更改。

在早期的产品版本中,API信息存储在nsc.log中。

日志文件的结构和内容

日志文件的格式如下:

         
1
[yyyy-mm-ddthh:mm:ss gmt] [level] [线程:name] [消息]

例子:

         
1
2011-12-20T16:54:48 [INFO] [Thread: Security Console]安全控制台启动时间12分54秒

日期和时间对应于生成消息的事件的发生。

每个日志消息都有一个严重级别:

等级

意义

例子

错误

阻止系统进程成功执行的异常事件,可以阻止用户进行扫描等操作

安全控制台未能连接到数据库

警告

阻止成功执行系统进程但不完全阻止用户操作(例如扫描)的异常事件

安全控制台和远程扫描引擎之间的通信中断

信息

一个正常的、预期的事件,值得注意,因为它提供了有关系统活动的有用信息

安全控制台尝试与远程扫描引擎建立连接

调试

除了调试目的外,不需要查看的正常预期事件

在安全控制台/扫描引擎协议内执行操作

当通过日志文件读取来解决主要问题时,您可能会发现它最初有用查找错误和警告级别消息。线标识生成消息的流程。

配置显示哪些日志严重性级别

默认情况下,所有日志文件都显示具有信息级别的严重性和更高的消息。这意味着它们显示信息,警告,错误消息,并不显示调试消息。您可以更改日志文件中显示哪些严重性级别。例如,您可能希望过滤掉除了Warn和错误严重性级别的消息之外的所有消息。或者,您可能希望包含用于维护和调试目的的调试消息。

使用日志的命令

可以使用控制台命令控制安全控制台和嵌入式扫描引擎日志级别。有关配置分布式扫描引擎的日志级别的步骤,请参阅使用文件系统部分。有关控制台命令的更多信息,请参见使用命令控制台

命令

描述

例子

日志列表

列出所有日志记录配置属性

日志列表

日志集[] [value]

将日志记录配置属性设置为指定值。省略了的名字将所有属性设置为指定的参数价值
日志列表查看可用的属性名称

日志设置调试
日志集身份级别调试

日志重置(<名称>)

将日志记录配置属性重置为其默认值。省略了的名字参数将所有属性重置为默认值。
日志列表查看可用的属性名称。

日志重置
日志重置auth-level

发出命令后,大约30秒后应用更改。

使用文件系统

安全控制台和分布式扫描引擎的配置步骤相同。执行以下步骤配置显示的日志级别。

在User-log-settings.xml文件中,默认值是指nsc.log文件或nse.log文件,具体取决于已安装的组件是安全控制台还是分布式扫描引擎。

  1. 在文本编辑器中打开user-log-settings.xml文件,该文件位于[installation_directory]/nsc/conf目录下。
  2. 通过删除开始和结束注释标记来取消下面一行的注释:<! ---><! - -->
  3. 如果要更改nsc.log(用于安全控制台安装)或ns .log文件(用于扫描引擎安装)的日志级别,请保留该值默认的不变。否则,将值更改为以下之一以指定不同的日志文件:
    • 验证
    • 通道
    • MEM.
  4. 将行中的值更改为您喜欢的严重性级别:DEBUG、INFO、WARN或ERROR。例子:<属性名称=“默认级别”值=“debug”/>
  5. 要更改其他日志文件的日志级别,只需复制并粘贴未注释的行,相应地更改值。例子:
         
1
<属性名称=“默认级别”值=“debug”/>
2
<属性名称=“auth级”值=“debug”/>
3.
4
<属性名= " mem-level " value = "调试" / >
  1. 保存并关闭文件。

大约30秒后的变化是应用的。

将诊断日志发送到Rapid7 Support

安全控制台和扫描引擎生成的诊断日志可通过诊断页面发送至Rapid7支持部门:

  1. 在您的安全控制台中,导航到政府页面。
  2. 在“维护、存储和故障处理”区域,单击诊断
  3. 检查所需的诊断框。
  4. 点击发送日志

通过代理服务器发送日志

如果安全控制台不能直接访问internet,您可以使用代理服务器将日志发送到Rapid7 Support。

设置日志发送的代理设置。

  1. 在您的安全控制台中,导航到政府页面。
  2. 在“全局和控制台设置”部分下,单击管理
  3. 点击代理设置选项卡。
  4. 在相应字段中输入代理服务器信息。
    • “名称或地址”是代理服务器的完全限定域名或IP地址。
    • “端口”字段是代理服务器上的端口号,安全控制台在发送日志文件时连接到该端口号。
    • 安全控制台使用“域”、“用户ID”和“密码”字段中的信息在代理服务器上进行身份验证。
  5. 勾选“发送支持日志”框。
  6. 点击节省

用日志解决扫描准确性问题

如果您的扫描产生了不准确的结果,例如假阳性、假阴性或不正确的指纹,您可以使用扫描记录功能来收集数据,以帮助技术支持团队排除原因。增强的日志记录功能可以在扫描过程中收集对故障排除有用的信息,比如Windows注册表项、SSH命令执行和文件版本。

以下是来自增强型日志记录文件的示例:

         
1
2
<王牌:源id > 0 < / ace:源id >
3.
<王牌:线程活动> do-unix-create-system-fingerprint@example.com: 22 < / ace:线程活动>
4
5
freebsd版本
6
0
7
8
<王牌:stdout > 10.0版本
9
< / ace: stdout >
10
11
1443208125966
12
<王牌:end_time数据类型=“int”> 1443208125982 < / ace: end_time >
13
14
< / ace: collected_object >

使用此功能涉及两个主要步骤:

  1. 在出现不准确结果的资产上,使用完全启用增强日志记录的模板运行扫描。
  2. 将包含增强日志数据的文件发送给技术支持。

建议您扫描单个资产或具有增强日志记录的小站点。

启用自定义扫描模板中的增强日志记录

默认情况下,在资产配置导出扫描模板上启用增强日志记录。但是,您可以使用已调整的自定义模板进行扫描,以便在您的特定环境中更好地执行。要在自定义扫描模板上启用增强日志记录:

  1. 单击Administration图标。
  2. 在“扫描选项”区域中,单击“创建链接”以创建新模板或单击“管理”链接以基于现有模板创建自定义模板。
  3. 如果单击“管理”链接,请选择要基于单击“复制”图标的新模板的模板。
  4. 在新模板的配置中,单击Logging选项卡。
  5. 选择增强的日志复选框以启用增强的日志记录。
  6. 按照需要配置模板的其余部分并保存它。
使用已启用增强日志记录的模板运行经过身份验证的扫描

如果您想用模板扫描整个站点,请将其添加到站点配置中,然后扫描站点。看到选择扫描模板

增强的日志收集大量的数据,这可能会影响磁盘空间,这取决于您扫描的资产数量。

如果要使用模板手动扫描特定资产,请在扫描对话框中添加模板。看到运行手动扫描

检索收集的增强型日志记录数据并将其发送给技术支持

访问所需扫描的摘要页面,下载增强的日志扫描数据:

  1. 首页选项卡,浏览到“站点”表。
  2. 点击“扫描状态”列对应的链接,打开您想要扫描的摘要页面。
  3. 点击下载>扫描数据
  4. 将下载的zip文件发送到Rapid7支持支持门户

笔记

如果zip文件大于25MB, Rapid7支持工程师将为您提供安全的文件传输。

报告错误识别的操作系统

单击“”,可以报告指纹错误的操作系统报告识别错误的资产图标旁边列出的操作系统资产或者节点页面。

运行诊断

您可以运行多个诊断函数来捕获可能影响系统性能的问题。

选择诊断程序

运行内部应用程序问题的诊断:

  1. 点击政府选项卡。
  2. 安全控制台显示政府页面。
  3. 点击诊断旁边故障排除.安全控制台显示故障排除页面。
  4. 单击要执行的每个诊断例程的复选框。

在执行请求的诊断之后,Security Console将显示一个结果表。每个项目都包含一个红色或绿色图标,指示各自的系统组件是否存在问题。

在启动期间解决故障

如果在启动期间发生子系统严重错误,则应用程序将尝试队列适当的维护任务以响应该故障。之后,它重新启动维护模式。

如果您是管理员,可以登录并查看失败原因。如果需要,您可以采取某些步骤来排除问题。

恢复任务有两种类型:

  • DBConfig应用程序无法连接到已配置的数据库时触发任务。它允许您测试数据库配置设置并将其保存成功。
  • 恢复任务是一个常规恢复任务,当启动期间发生未知的故障时被触发。这是非常罕见的,只有找不到一个或多个配置文件或无效时才发生。此任务允许您查看故障的原因并将支持日志上载到安全日志服务器,在那里它们可用于故障排除。

如果维护Web服务器没有可用的默认端口3780,则应用程序可能无法在维护模式下重新启动。如果已运行的实例,或者如果一个或多个密钥配置文件无效或丢失,则可能会发生这种情况。这些文件具有扩展,例如.nsc.. xml, 和.userdb

解决未能刷新会话

当Web界面会话在空闲会话中超时时,安全控制台会显示登录窗口,以便用户刷新会话。如果Web浏览器和Security Console Web服务器之间的通信问题阻止了会话刷新,用户将看到一条错误消息。如果用户有未保存的工作,他或她不应该离开页面或关闭浏览器,因为在通信问题解决后,工作可能不会丢失。

由于以下原因之一,可能会发生通信故障。如果其中任何一个是原因,请采取适当的行动:

  • 安全控制台处于脱机状态。重新启动安全控制台。
  • 安全控制台已与Internet断开连接。将安全控制台重新连接到Internet。
  • 用户的浏览器已与Internet断开连接。重新连接浏览器到Internet。
  • 安全控制台地址已更改。在托管浏览器的计算机上清除地址解析协议(ARP)表。

安全控制台对用户刷新会话请求的响应出现极端延迟也可能导致出现故障消息。

重置帐户锁定

当用户尝试使用错误密码登录太多次时,应用程序锁定用户,直到为该用户重置锁定。

默认锁定阈值为4次。全局管理员可以修改该参数安全控制台配置- web服务器页面。看到更改安全控制台Web服务器的默认设置

复位锁定有以下三种方式:

  • 如果您是全球管理员,请转到用户页面,然后单击出现在被锁定用户名字旁边的挂锁图标。
  • 运行控制台命令解锁帐户使用命令控制台
  • 重新启动安全控制台。如果被锁定的用户是组织中唯一的全局管理员,那么这是唯一可行的方法。

长扫描或挂扫描

偶尔,扫描会花很长时间,或者看起来完全停止了。

无法预测扫描应该采取的时间。扫描时间根据目标资产数量和扫描模板的彻底性或复杂性等因素而变化。但是,通过将扫描时间与之前的扫描的扫描时间进行比较,您可以观察扫描是否采取了特别长的时间。

一般来说,如果扫描在单个主机上运行超过8小时,或者在给定站点上运行超过48小时,建议检查某些问题。

提示用于寻址延迟扫描操作

如果试图启动、暂停、恢复或停止扫描,并且出现了长时间的消息,表明操作正在进行中,这可能是由于安全控制台与扫描引擎通信中的网络相关延迟。在低带宽或高时延的网络中,延迟扫描操作可能会导致安全控制台/扫描引擎通信频繁超时,导致安全控制台接收扫描状态信息的时间延迟。要减少超时,可以增加扫描引擎响应超时设置。看到使用分布式扫描引擎配置安全控制台连接

扫描内存问题

由于内存问题,扫描可能会很慢,或者会失败。看到内存不足问题

扫描的复杂性

对于发现的每个目标主机,应用程序在运行任何漏洞检查之前都会扫描其端口。目标端口的范围是一个可配置的扫描模板设置。扫描时间与扫描的端口数成比例增加。

特别是,UDP端口的扫描速度可能较慢,因为默认情况下,应用程序每秒发送不超过两个UDP数据包,以避免触发大多数网络设备的TCP/IP堆栈中内置的ICMP速率限制机制。

为了提高扫描速度,考虑配置扫描以仅检查众所周知的端口或已知相关服务所知的特定端口。看到使用扫描模板并调整扫描性能

脱机扫描引擎

如果扫描期间扫描引擎离线,则扫描将显示为挂起。当扫描引擎在扫描过程中离线时,数据库将需要从未完成的扫描中删除数据。此过程会在扫描日志中留下类似以下内容的消息:DBConsistence3/10/09 12:05 PM:发现发送的扫描ID 410不一致,正在删除部分导入的扫描结果。。。

如果扫描引擎脱机,请重新启动它。然后,转到扫描引擎配置面板以确认扫描引擎处于活动状态。看看分布式扫描引擎页以获取更多信息。

查看扫描日志

您可以下载完成扫描的活动日志,或直接将扫描数据包发送到Support以进行故障排除。

要访问这些日志选项:

  1. 首页安全控制台的页面,浏览到“站点”表。单击要检查的网站的名称以打开它。
  2. 在“站点扫描摘要”部分,单击扫描历史观
  3. 浏览到“过去扫描”表:
  • 要下载您选择的过去一次扫描的扫描日志,请单击“下载日志”栏中相应的图标。
  • 要发送扫描数据包以支持故障排除,请单击“发送日志”列中的图标。

或者,扫描日志和数据选项也可从过去扫描详细信息视图的“扫描进度”部分获得。单击“已完成”列中的日期和时间链接,访问此页面以进行特定的过去扫描。

扫描数据包

扫描数据包还包括扫描日志,但要大得多,并且包含的信息仅供支持团队用于故障排除目的。

扫描被用户停止

如果另一个用户停止扫描,扫描将显示已挂起。要确定是否为这种情况,请检查日志中类似以下的消息:

         
1
InsightVM3/16/09 7:22 PM: Scan [] stopped: "maylor" <> . txt . txt

看到查看扫描日志

漫长或挂报告

偶尔,报告生成将采取异常长时间,或似乎完全停止。您可以在安全控制台日志中找到报告错误。

报告内存问题

由于内存问题,报告生成可能会很慢,或者会失败。看到内存不足问题

陈旧扫描数据

数据库速度影响报告速度。随着时间的推移,来自旧扫描的数据将积累在数据库中。这会导致数据库速度减慢。

如果您发现报告变慢了,请在安全控制台日志中查看与其他报告任务持续时间不一致的报告任务,如下面的示例所示:

         
1
nsc.log。0:Reportmanage1/5/09 3:00 AM:报表任务serviceVulnStatistics finished in 2 hours 1 minute 23 seconds

您通常可以通过清理数据库来提高报告生成速度。常规数据库维护删除剩余的扫描数据和主机信息。看到查看扫描日志数据库备份/恢复和数据保留

内存不足问题

扫描和报告是内存密集型任务,因此与这些活动相关的错误通常可能是内存问题。您可以通过更改设置来控制内存使用。一些内存问题与系统资源控制有关。

java.lang.OutofMemoryError

如果应用程序崩溃了,你可以通过检查日志文件中的以下消息来验证崩溃是由于内存不足造成的:java.lang.outofmemoryError:Java堆空间

如果您看到此消息,请联系技术支持。除非有指示,否则不要重新启动应用程序。

解决内存问题

由于扫描是内存密集型的,并且经常发生,因此控制扫描使用多少内存是很重要的,这样内存问题就不会反过来影响扫描性能。有许多策略可以确保内存限制不影响扫描。

减少扫描复杂性

随着目标主机的数量增加,存储扫描信息所需的内存量也会增加。如果扫描的主机具有过多的漏洞,扫描可能会因内存短缺而挂起。

为了降低给定扫描的复杂性,可以尝试以下几种方法:

  • 通过在站点配置中排除IP地址来减少目标主机的数量。
  • 通过从扫描模板中排除较低优先级检查来减少目标漏洞的数量。

修补一次扫描发现的漏洞后,将排除的IP地址或漏洞添加到站点配置中,并再次运行扫描。

有关更多信息,请参见分布式扫描引擎使用扫描模板并调整扫描性能

减少扫描计数

同时运行几次扫描可能会导致安全控制台内存不足。减少同时扫描的次数以节省内存。

升级主机

如果扫描始终耗尽内存,请考虑向服务器添加更多内存。要增加内存,可能还需要升级服务器操作系统。在64位操作系统上,应用程序可以比在32位操作系统上运行时寻址更多的内存。然而,它需要8gb内存才能在64位操作系统上运行。

有关更详细的信息,请参阅以下章节以更详细的信息更加内存友好:

更新失败

系统更新偶尔会失败。您可以通过检查系统日志来找出原因。

腐败的更新表

该应用程序会跟踪更新表中先前应用的更新。如果更新表已损坏,则应用程序将不知道需要下载和应用哪些更新。

如果由于更新表损坏而无法安装更新,则扫描控制台日志将包含类似如下的消息:

         
1
autoupdatejo3 / 12/09 5:17 AM:NSC更新失败:com.rapid7.updater.updateException:java.io.eofexception
2
在com.rapid7.updater.updatepackageProcessor.getupdatteable(未知来源)
3.
com.rapid7.updater.updatepackageProcessor.getUpdates(未知来源)
4
com.rapid7.updater.updatepackageProcessor.getUpdates(未知来源)
5
在com.rapid7.nexpose.nsc.U。执行(未知源)
6
com.rapid7.scheduler.Scheduler _A.run美元(未知来源)

如果出现上述情况,请联系技术支持。看到查看扫描日志(医生:故障排除# viewing-the-scan-log。

中断更新

默认情况下,应用程序会自动下载并安装更新。应用程序可能会下载更新,但其安装尝试可能不成功。

您可以通过查看扫描日志来确定是否发生了这种情况。

检查显示长时间不活动的更新时间戳。

         
1
AU-BE37EE72A11 / 3/08 5:56 PM:更新文件:NSC / HTROT / HELP / HTML / 757.HTM
2
NSC 11/3/08 9:57 PM:日志已初始化(系统时区为SystemV/PST8PDT)

你可以使用现在更新命令提示符重新尝试手动更新:

  1. 点击政府标签去政府页面。
  2. 点击运行console命令。的命令控制台出现页面。
  3. 输入的命令现在更新在文本框中单击执行

安全控制台显示一条消息,指示更新尝试是否成功。看见查看扫描日志

腐败文件

如果应用程序由于损坏文件而无法执行更新,则扫描控制台日志将包含类似于以下内容的消息:

         
1
AU-892F7C6793/7/09 1:19 AM:申请更新id 919518342
2
AU-892F7C6793/7/09 1:19 AM:打开zip文件错误
3.
AutoUpdateJo3/7/09 1:19 AM: NSC update failed: com.rapid7.updater.UpdateException:
4
打开zip文件时出现错误
5
在com.rapid7.updater.updatepackageprocessor.b(未知来源)
6
com.rapid7.updater.updatepackageProcessor.getUpdates(未知来源)
7
com.rapid7.updater.updatepackageProcessor.getUpdates(未知来源)
8
在com.rapid7.nexpose.nsc.U。执行(未知源)
9
com.rapid7.scheduler.Scheduler _A.run美元(未知来源)

如果更新失败是由于一个损坏的文件,这意味着更新文件下载成功,但无效。如果出现上述情况,请联系技术支持。看到查看扫描日志

中断与更新服务器的连接

如果无法在Security Console和更新服务器之间建立连接,它将出现在日志中,并显示类似如下的消息。

         
1
AU-A7F0FF3623/10/09下午4:53:下载更新:919518342
2
AutoUpdateJo3/10/09下午4:54:NSC更新失败:java.net.SocketTimeoutException

java.net.sockettimeoutexception是一个符号,即无法对更新服务器进行连接。如果连接已中断,则失败之前的其他更新将成功。

您可以使用现在命令提示符的更新来手动重新尝试更新。看到中断更新查看扫描日志