StorageGRID 中的外部系统日志服务器
外部 syslog 服务器是 StorageGRID 外部的服务器,可用于在单个位置收集系统审核信息。使用外部 syslog 服务器可以减少管理节点上的网络流量并更有效地管理信息。对于 StorageGRID,出站 syslog 消息数据包格式符合 RFC 3164。
可以发送到外部syslog服务器的审核信息类型包括:
-
包含正常系统运行期间生成的审核消息的审核日志
-
与安全相关的事件,例如登录和升级到 root
-
如果需要开立支持案例以排查您所遇到的问题,可能会被要求提供的应用程序日志
何时使用外部 syslog 服务器
如果您有大型网格、使用多种类型的 S3 应用程序或希望保留所有审核数据,则外部 syslog 服务器特别有用。向外部 syslog 服务器发送审核信息,您可以:
-
更有效地收集和管理审计消息、应用程序日志和安全事件等审计信息。
-
减少管理节点上的网络流量,因为审核信息直接从各种存储节点传输到外部 syslog 服务器,而无需通过管理节点。
当日志发送到外部 syslog 服务器时,大于 8,192 字节的单个日志将在消息末尾被截断,以符合外部 syslog 服务器实现中的常见限制。 为了在外部系统日志服务器发生故障时最大化完整数据恢复的选项,每个节点上最多维护 20 GB 的审核记录本地日志( localaudit.log)。
如何配置外部 syslog 服务器
要了解如何配置外部 syslog 服务器,请参见 "配置日志管理和外部 syslog 服务器"。
如果您计划配置使用 TLS 或 RELP/TLS 协议,则必须具有以下证书:
-
Server CA certificates:用于验证 PEM 编码的外部 syslog 服务器的一个或多个受信任的 CA 证书。如果省略,将使用默认网格 CA 证书。
-
客户端证书:用于以 PEM 编码向外部 syslog 服务器进行身份验证的客户端证书。
-
客户端私钥:PEM 编码的客户端证书私钥。
如果使用客户端证书,则还必须使用客户端私钥。如果提供加密的私钥,则还必须提供密码。使用加密私钥没有显著的安全性优势,因为必须存储密钥和密码;为简便起见,建议使用未加密的私钥(如果有)。
如何估计外部 syslog 服务器的大小
通常,您的网格大小应能达到所需的吞吐量,以每秒 S3 操作数或每秒字节数来定义。例如,您可能需要网格每秒处理 1,000 次 S3 操作,或每秒 2,000 MB 的对象提取和检索。您应根据网格的数据要求来调整外部 syslog 服务器的大小。
本节提供了一些启发式公式,可帮助您估计外部 syslog 服务器需要能够处理的各种类型的日志消息的速率和平均大小,以网格的已知或所需性能特征(每秒 S3 操作数)表示。
在估算公式中使用每秒 S3 操作数
如果您的网格大小是以每秒字节数表示的吞吐量,则必须将此大小转换为每秒 S3 操作才能使用估算公式。要转换网格吞吐量,您必须首先确定平均对象大小,可以使用现有审计日志和指标(如果有)中的信息,或利用您对将使用 StorageGRID 的应用程序的了解来确定。例如,如果网格的大小可达到 2,000 MB/秒的吞吐量,且平均对象大小为 2 MB,则网格的大小可处理每秒 1,000 次 S3 操作(2,000 MB / 2 MB)。
|
|
以下各节中的外部 syslog 服务器规模调整公式提供了常见情况估计(而不是最坏情况估计)。根据您的配置和工作负载,您可能会看到比公式预测的更高或更低的 syslog 消息速率或 syslog 数据量。这些公式仅用作指南。 |
审核日志的估算公式
如果除了网格每秒应支持的 S3 操作数之外,没有关于 S3 工作负载的信息,则可以使用以下公式估算外部 syslog 服务器需要处理的审核日志量,前提是将"审核级别"设置为默认值(所有类别都设置为"正常",但存储设置为"错误"除外):
Audit Log Rate = 2 x S3 Operations Rate Audit Log Average Size = 800 bytes
例如,如果您的网格大小为每秒 1,000 个 S3 操作,则外部 syslog 服务器的大小应支持每秒 2,000 个 syslog 消息,并且应能够以每秒 1.6 MB 的速率接收(通常存储)审核日志数据。
如果您对工作负载有更多了解,则可以进行更准确的估计。对于审核日志,最重要的附加变量是 PUT(相对于 GET)操作占 S3 操作的百分比,以及以下 S3 字段的平均大小(以字节为单位)(表中使用的 4 个字符缩写是审核日志字段名称):
| 代码 | 字段 | 问题描述 |
|---|---|---|
SACC |
S3 租户帐户名称(请求发送方) |
发送请求的用户的租户帐户名称。匿名请求为空。 |
SBAC |
S3租户帐户名称(存储桶所有者) |
存储桶所有者的租户帐户名称。用于识别跨账户或匿名访问。 |
S3BK |
S3 存储分段 |
S3 存储桶名称。 |
S3KY |
S3密钥 |
S3 密钥名称,不包括存储桶名称。存储桶上的操作不包括此字段。 |
让我们使用 P 来表示 S3 操作中 PUT 操作的百分比,其中 0 ≤ P ≤ 1(因此对于 100% PUT 工作负载,P = 1,对于 100% GET 工作负载,P = 0)。
让我们使用 K 来表示 S3 帐户名、S3 存储桶和 S3 密钥之和的平均大小。假设 S3 帐户名始终为 my-s3-account(13 个字节),存储桶具有固定长度的名称,如 /my/application/bucket-12345(28 个字节),并且对象具有固定长度的密钥,如 5733a5d7-f069-41ef-8fbd-13247494c69c(36 个字节)。则 K 的值为 90 (13+13+28+36)。
如果可以确定 P 和 K 的值,则可以使用以下公式估算外部 syslog 服务器需要处理的审核日志量,前提是将"审核级别"设置为默认值(所有类别都设置为"正常",存储设置为"错误"除外):
Audit Log Rate = ((2 x P) + (1 - P)) x S3 Operations Rate Audit Log Average Size = (570 + K) bytes
例如,如果您的网格大小为每秒 1,000 个 S3 操作,您的工作负载为 50% PUT,并且您的 S3 帐户名称、存储桶名称和对象名称平均为 90 个字节,则外部 syslog 服务器的大小应支持每秒 1,500 个 syslog 消息,并且应能够以约 1 MB/秒的速率接收(通常存储)审核日志数据。
非默认审核级别的估算公式
为审核日志提供的公式假设使用默认审核级别设置(所有类别均设置为"正常",但"存储"除外,后者设置为"错误")。用于估计非默认审核级别设置的审核消息速率和平均大小的详细公式不可用。但是,下表可用于粗略估计速率;您可以使用为审核日志提供的平均大小公式,但请注意,这可能会导致高估,因为"额外"审核消息平均小于默认审核消息。
| 条件 | 公式 |
|---|---|
复制:审核级别均设置为"调试"或"正常" |
审核日志速率 = 8 x S3 操作速率 |
擦除编码:审核级别均设置为"调试"或"正常" |
使用与默认设置相同的公式 |
安全事件的估计公式
安全事件与 S3 操作无关,通常产生的日志和数据量可以忽略不计。出于这些原因,没有提供估算公式。
应用程序日志的估算公式
如果除了网格每秒预计支持的 S3 操作数量之外,您没有关于 S3 工作负载的信息,则可以使用以下公式估算外部 syslog 服务器需要处理的应用程序日志量:
Application Log Rate = 3.3 x S3 Operations Rate Application Log Average Size = 350 bytes
因此,例如,如果您的网格大小为每秒 1,000 个 S3 操作,则外部 syslog 服务器的大小应支持每秒 3,300 个应用程序日志,并能够以每秒约 1.2 MB 的速率接收(和存储)应用程序日志数据。
如果您对工作负载有更多了解,则可以进行更准确的估算。对于应用程序日志,最重要的附加变量是数据保护策略(复制与擦除编码)、属于 PUT 的 S3 操作的百分比(与 GET/其他相比)以及以下 S3 字段的平均大小(以字节为单位)(表中使用的 4 字符缩写是审计日志字段名称):
| 代码 | 字段 | 问题描述 |
|---|---|---|
SACC |
S3 租户帐户名称(请求发送方) |
发送请求的用户的租户帐户名称。匿名请求为空。 |
SBAC |
S3租户帐户名称(存储桶所有者) |
存储桶所有者的租户帐户名称。用于识别跨账户或匿名访问。 |
S3BK |
S3 存储分段 |
S3 存储桶名称。 |
S3KY |
S3密钥 |
S3 密钥名称,不包括存储桶名称。存储桶上的操作不包括此字段。 |
示例规模估算
本节通过以下数据保护方法,说明如何使用网格估计公式的示例案例:
-
复制
-
纠删编码
如果使用复制进行数据保护
设 P 表示作为 PUT 的 S3 操作的百分比,其中 0 ≤ P ≤ 1(因此对于 100% PUT 工作负载,P = 1,对于 100% GET 工作负载,P = 0)。
让 K 表示 S3 帐户名、S3 存储桶和 S3 密钥之和的平均大小。假设 S3 帐户名始终为 my-s3-account(13 个字节),存储桶具有固定长度的名称,如 /my/application/bucket-12345(28 个字节),并且对象具有固定长度的密钥,如 5733a5d7-f069-41ef-8fbd-13247494c69c(36 个字节)。则 K 的值为 90(13+13+28+36)。
如果可以确定 P 和 K 的值,则可以使用以下公式估计外部系统日志服务器必须能够处理的应用程序日志量。
Application Log Rate = ((1.1 x P) + (2.5 x (1 - P))) x S3 Operations Rate Application Log Average Size = (P x (220 + K)) + ((1 - P) x (240 + (0.2 x K))) Bytes
因此,例如,如果您的网格大小为每秒 1,000 次 S3 操作,您的工作负载为 50% 的 PUT,并且您的 S3 帐户名称、存储桶名称和对象名称平均为 90 个字节,则外部 syslog 服务器的大小应支持每秒 1800 个应用程序日志,并将以每秒 0.5 MB 的速率接收(通常存储)应用程序数据。
如果使用擦除编码进行数据保护
设 P 表示作为 PUT 的 S3 操作的百分比,其中 0 ≤ P ≤ 1(因此对于 100% PUT 工作负载,P = 1,对于 100% GET 工作负载,P = 0)。
让 K 表示 S3 帐户名、S3 存储桶和 S3 密钥之和的平均大小。假设 S3 帐户名始终为 my-s3-account(13 个字节),存储桶具有固定长度的名称,如 /my/application/bucket-12345(28 个字节),并且对象具有固定长度的密钥,如 5733a5d7-f069-41ef-8fbd-13247494c69c(36 个字节)。则 K 的值为 90(13+13+28+36)。
如果可以确定 P 和 K 的值,则可以使用以下公式估计外部系统日志服务器必须能够处理的应用程序日志量。
Application Log Rate = ((3.2 x P) + (1.3 x (1 - P))) x S3 Operations Rate Application Log Average Size = (P x (240 + (0.4 x K))) + ((1 - P) x (185 + (0.9 x K))) Bytes
因此,例如,如果您的网格大小为每秒 1,000 次 S3 操作,您的工作负载为 50% PUTs,并且您的 S3 帐户名、存储桶名和对象名平均为 90 个字节,则您的外部 syslog 服务器的大小应支持每秒 2,250 个应用程序日志,并且应能够以每秒 0.6 MB 的速率接收(通常为存储)应用程序数据。