将日志导出到远程日志记录服务器

在以前的 SSMC 发行版中,支持使用 java log4j 附加程序导出应用程序和审核日志。从 SSMC 3.7 版本开始,支持使用设备中提供的 rsyslog 工具从应用程序层和设备中导出应用程序和审核日志。

默认情况下,rsyslog 工具仅将日志写入到本地文件系统中。日志记录按照标准 syslog 工具规则将日志按顺序保存在各种 /var/log/.* 日志文件中。

SSMC 中的远程日志记录功能使用 rsyslogomfwd 模块将 syslog 事件转发到配置的远程日志记录服务器。该模块可以通过 UDP 或 TCP/TLS 传输协议流式传输日志事件。

要在 SSMC 中启用日志导出,请执行以下操作:

  1. /ssmc/conf/config_security.sh 中设置各种配置参数。

  2. 执行 config_security.sh 脚本,这会配置值并启动导出服务。

注意:

如果您选择使用 TLS/TCP 设置安全传输,请按照https://www.rsyslog.com/doc/v8-stable/tutorials/tls_cert_machine.html中所述生成计算机证书。使用不超过 600 个文件权限保护证书 PEM 文件(将 ssmcadmin 作为所有者)。

下表说明了 security_config.properties 中的各种 rsyslog 相关属性,必须在执行 config_security.sh 脚本之前配置这些属性:

属性说明必需?
ssmc.rsyslog.server.host 单个远程日志记录服务器的 IPv4/IPv6 地址或 FQDN。

如果启用了 host_access 功能,请确保将远程日志记录服务器列入白名单。要获得 FQDN 支持,还要将 DNS 服务器列入白名单。

ssmc.rsyslog.server.port 远程日志记录服务器的端口号。UDP 的默认端口号为 514,TCP/TLS 的默认端口号为 6514。
ssmc.rsyslog.server.protocol TCP 或 UDP
ssmc.rsyslog.server.tls-enabled 1 表示已启用;0 表示已禁用 如果 protocol 是 TCP,则为“是”;否则忽略。
ssmc.rsyslog.cert.caroot CA 根证书的路径,该证书对设备证书(两个连接的对等项;SSMC 主机和远程日志记录服务器)进行签名。 如果 protocol=TCP 且 TLS enabled=1,则为“是”;否则忽略。
ssmc.rsyslog.cert.clientcert为了进行安全传输而为远程 syslog 连接生成的 SSMC 主机客户端证书的路径。该证书必须是有效的 PEM 编码 x.509 证书,用于标识客户端 (SSMC)。 如果 protocol=TCP 且 TLS enabled=1,则为“是”;否则忽略。
ssmc.rsyslog.cert.clientkey SSMC 主机私钥的路径。必须是有效的 PEM 编码 x.509 格式。 如果 protocol=TCP 且 TLS enabled=1,则为“是”;否则忽略。
ssmc.rsyslog.server.authMode 指定远程日志记录服务器的身份验证模式:
  • anon:无身份验证

  • x509/fingerprint:将证书指纹与 permittedPeers 属性中设置的值匹配

  • x509/certvalid:执行 PKI 路径验证

  • x509/name:使用 permittedPeers 属性中设置的值执行证书验证和主机名检查

有关详细信息,请参阅 https://www.rsyslog.com/doc/v8-stable/concepts/ns_ossl.html
如果 protocol=TCP 且 TLS enabled=1,则为“是”;否则忽略。
ssmc.rsyslog.server.permittedPeers 指定要与指纹身份验证 (SHA1) 或名称身份验证(主机名,它必须与服务器证书的 CN 匹配)进行比较的值。

例如:ssmc.rsyslog.server.permittedPeers="SHA1:1E:1C:33:C9:C9:73:F7:FD:B0:FC:A2:5C:E7:A9:3E:BC:C0:4C:D2:57" ssmc.rsyslog.server.permittedPeers="central.logging.net"

如果 protocol=TCP,TLS enabled=1 并且 authModex509/fingerprintx509/name,则为“是”;否则忽略。
ssmc.rsyslog.server.device 指定网络以太网装置名称,将通过该装置建立远程日志记录服务器连接。ESXi:装置名称为 ens160ens192(用于第二个网卡)。Hyper-V:装置名称为 eth0eth1(用于第二个网卡)。
ssmc.rsyslog.queue.maxdiskspace 指定磁盘上的缓冲区队列文件大小(以 GB 为单位)。有效值为 1 到 50(含这两个值)。Hewlett Packard Enterprise 建议将该值设置为 10 GB,以便在远程日志记录服务器临时中断期间保存至少一周的日志。
ssmc.rsyslog.smtp.alert 如果您希望在远程日志记录服务器连接断开时收到通知,请设置为 true。否则,设置为 false。
ssmc.rsyslog.smtp.server SMTP 服务器的 IPv4/IPv6 地址。

如果启用了 host_access 功能,请确保将远程日志记录服务器列入白名单。要获得 FQDN 支持,还要将 DNS 服务器列入白名单。

如果 alert 属性设置为 true,则为“是”。
ssmc.rsyslog.smtp.port SMTP 服务器的端口号。 如果 alert 属性设置为 true,则为“是”。
ssmc.rsyslog.smtp.recipient 必须将警报通知发送到的电子邮件地址列表(以逗号分隔)。例如:ssmc.rsyslog.smtp.recipient="ca@domain.com","isso@domain.com 如果 alert 属性设置为 true,则为“是”。
ssmc.rsyslog.smtp.notify-interval 在中断持续存在时发送警报的间隔时间(以秒为单位)。 如果 alert 属性设置为 true,则为“是”。
ssmc.rsyslog.smtp.mailFrom 用于发送警报通知的发件人电子邮件地址。 如果 alert 属性设置为 true,则为“是”。

允许或禁止导出 SSMC 日志

要完成配置并允许导出 SSMC 日志,请执行以下命令:

sudo /ssmc/bin/config_security.sh -o remote_syslog_appliance -a set -f

要随时停止并禁止导出日志,请执行以下命令:

sudo /ssmc/bin/config_security.sh -o remote_syslog_appliance -a reset -f

导出的日志的工具和日志级别

对于所有系统日志文件(例如 syslogauth.logmessagesuser.logcron.logkern.logmail.log),在导出到远程日志记录服务器期间将保留标准工具和详细信息。

工具日志级别标记说明
local5 debugHTTP_ACCESS SSMC HTTP 访问日志 (/opt/hpe/ssmc/ssmcbase/data/logs/HTTP*.log)
local7info SSMC SSMC Web 应用程序事务日志 (/opt/hpe/ssmc/ssmcbase/data/logs/ssmc.log)
local7info APPLIANCE SSMC 设备事务日志 (/var/log/appliance.log)
local6 infoSYSAUDIT SSMC 设备会话审核日志 (/var/log/audit/audit.log)
local6info SSMCAUDIT SSMC 应用程序身份验证和审核日志 (/opt/hpe/ssmc/ssmcbase/data/logs/audit.log)