Welcome to Firefly
切换语言
Firefly文档中心
最近更新: 2026-08-26 17:51:06

管理资源

管理资源用于发现设备管理器,并查询、清空或导出 BMC 管理日志。

认证与访问协议

本页接口支持 HTTP Basic Auth 和会话 Token。Token 通过请求头 X-Xsrf-Token 携带,不放在请求体中。示例中的 <protocol> 根据服务配置填写 httphttps

1 管理资源合集

1.1 查询管理资源合集

查询当前账号有权访问的管理器资源。

项目内容
方法GET
路径/redfish/v1/Managers
认证HTTP Basic Auth 或 X-Xsrf-Token
请求体
成功状态码200 OK
查询管理资源合集
curl --user '<username>:<password>' \
  --header 'Accept: application/json' \
  '<protocol>://<device-ip>:<port>/redfish/v1/Managers'

响应示例

以下是测试设备返回的真实响应。

200 OK
{
  "@odata.id": "/redfish/v1/Managers",
  "@odata.type": "#ManagersCollection.ManagersCollection",
  "Name": "Managers Collection",
  "Members@odata.count": 11,
  "Members": [
    { "@odata.id": "/redfish/v1/Managers/bmc" },
    { "@odata.id": "/redfish/v1/Managers/sub01" },
    { "@odata.id": "/redfish/v1/Managers/sub02" },
    { "@odata.id": "/redfish/v1/Managers/sub03" },
    { "@odata.id": "/redfish/v1/Managers/sub04" },
    { "@odata.id": "/redfish/v1/Managers/sub05" },
    { "@odata.id": "/redfish/v1/Managers/sub06" },
    { "@odata.id": "/redfish/v1/Managers/sub07" },
    { "@odata.id": "/redfish/v1/Managers/sub08" },
    { "@odata.id": "/redfish/v1/Managers/sub09" },
    { "@odata.id": "/redfish/v1/Managers/sub10" }
  ]
}

响应字段

字段类型说明
@odata.idstring管理资源合集路径。
@odata.typestring管理资源合集的 OData 类型。
Namestring管理资源合集名称。
Members@odata.countnumber当前账号可访问的管理器数量。
Membersarray管理器成员列表。
Members[].@odata.idstring指定管理器的资源路径。

1.2 查询指定管理资源

查询指定管理器的状态、时间、关联资源和控制台能力。以下示例使用管理器标识 bmc

项目内容
方法GET
路径/redfish/v1/Managers/{ManagerId}
路径参数ManagerId:管理器标识,例如 bmc
认证HTTP Basic Auth 或 X-Xsrf-Token
请求体
成功状态码200 OK
查询 bmc 管理资源
curl --user '<username>:<password>' \
  --header 'Accept: application/json' \
  '<protocol>://<device-ip>:<port>/redfish/v1/Managers/bmc'

响应示例

以下为真实响应的核心字段节选。

200 OK · 真实响应节选
{
  "@odata.id": "/redfish/v1/Managers/bmc",
  "@odata.type": "#Managers.v1_20_0.Managers",
  "Actions": null,
  "DateTime": "2026-08-05T02:06:31+00:00",
  "DateTimeLocalOffset": "UTC+08:00",
  "Description": "Managers",
  "Id": "bmc",
  "Links": {
    "AccountService": [{ "Id": "/redfish/v1/AccountService" }],
    "Chassis": [{ "Id": "/redfish/v1/Chassis" }],
    "Oem": [{ "Id": "/redfish/v1/Oem" }],
    "Switch": [{ "Id": "/redfish/v1/Switch" }],
    "Systems": [{ "Id": "/redfish/v1/Systems" }],
    "UpdateFwService": [{ "Id": "/redfish/v1/UpdateFwService" }],
    "UpdateFwService_V2": [{ "Id": "/redfish/v1/UpdateFwService_V2" }]
  },
  "Manufacturer": "Firefly",
  "Name": "Computer System Managers",
  "PowerState": "On",
  "SerialConsole": {
    "ConnectTypesSupported": ["Shell"],
    "MaxConcurrentSessions": 1,
    "ServiceEnabled": true
  },
  "Status": {
    "Health": "Critical",
    "HealthRollup": "",
    "State": ""
  },
  "TimeZoneName": "UTC"
}

响应字段

字段类型说明
@odata.idstring指定管理器的资源路径。
@odata.typestring管理器资源的 OData 类型。
Actionsobject | null管理器当前公开的操作集合。
DateTimestring管理器当前日期和时间。
DateTimeLocalOffsetstring管理器报告的本地时区偏移。
Descriptionstring管理器资源描述。
Idstring管理器标识。
Linksobject管理器关联资源入口。
Links.AccountServicearray用户账号服务入口列表。
Links.AccountService[].Idstring用户账号服务路径。
Links.Chassisarray机箱资源入口列表。
Links.Chassis[].Idstring机箱资源路径。
Links.OemarrayOEM 资源入口列表。
Links.Oem[].IdstringOEM 资源路径。
Links.Switcharray交换机资源入口列表。
Links.Switch[].Idstring交换机资源路径。
Links.Systemsarray系统资源入口列表。
Links.Systems[].Idstring系统资源路径。
Links.UpdateFwServicearray固件升级服务入口列表。
Links.UpdateFwService[].Idstring固件升级服务路径。
Links.UpdateFwService_V2array第二版固件升级服务入口列表。
Links.UpdateFwService_V2[].Idstring第二版固件升级服务路径。
Manufacturerstring管理器制造商。
Namestring管理器名称。
PowerStatestring管理器电源状态。
SerialConsoleobject串行控制台能力。
SerialConsole.ConnectTypesSupportedarray支持的控制台连接类型。
SerialConsole.MaxConcurrentSessionsnumber最大并发控制台会话数。
SerialConsole.ServiceEnabledboolean串行控制台服务是否启用。
Statusobject管理器状态。
Status.Healthstring管理器健康状态。
Status.HealthRollupstring管理器汇总健康状态。
Status.Statestring管理器运行状态。
TimeZoneNamestring管理器报告的时区名称。

2 日志资源

管理日志分为四种类型。

LogServiceId说明
OperateLog管理操作日志。
RunLog管理服务运行日志。
SecurityLog登录、鉴权等安全相关日志。
UpgradeLog固件或软件升级日志。

2.1 查询日志服务合集

查询指定管理器支持的全部管理日志类型。

项目内容
方法GET
路径/redfish/v1/Managers/{ManagerId}/LogServices
认证HTTP Basic Auth 或 X-Xsrf-Token
所需权限OemDebug
请求体
成功状态码200 OK
查询管理日志服务合集
curl --user '<username>:<password>' \
  --header 'Accept: application/json' \
  '<protocol>://<device-ip>:<port>/redfish/v1/Managers/bmc/LogServices'

响应示例

200 OK
{
  "@odata.context": "/redfish/v1/$metadata#Managers/Members/bmc/LogServices/$entity",
  "@odata.id": "/redfish/v1/Managers/bmc/LogServices",
  "@odata.type": "#LogServiceCollection.LogServiceCollection",
  "Members": [
    { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog" },
    { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/RunLog" },
    { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/SecurityLog" },
    { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/UpgradeLog" }
  ],
  "Members@odata.count": 4,
  "Name": "LogService Collection"
}

响应字段

字段类型说明
@odata.contextstring日志服务合集的 OData 元数据上下文。
@odata.idstring日志服务合集路径。
@odata.typestring日志服务合集的 OData 类型。
Membersarray日志服务成员列表。
Members[].@odata.idstring指定日志服务的访问路径。
Members@odata.countnumber日志服务数量。
Namestring日志服务合集名称。

2.2 查询指定日志服务

查询指定日志类型的状态、条目入口以及清空和导出操作入口。

项目内容
方法GET
路径/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}
路径参数LogServiceIdOperateLogRunLogSecurityLogUpgradeLog
认证HTTP Basic Auth 或 X-Xsrf-Token
成功状态码200 OK
查询操作日志服务
curl --user '<username>:<password>' \
  --header 'Accept: application/json' \
  '<protocol>://<device-ip>:<port>/redfish/v1/Managers/bmc/LogServices/OperateLog'

响应示例

200 OK
{
  "@odata.context": "/redfish/v1/$metadata#Managers/Members/bmc/LogServices/Members/$entity",
  "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog",
  "@odata.type": "#LogService.v1_4_0.LogService",
  "Actions": {
    "#LogService.ClearLog": {
      "ClearType@Redfish.AllowableValue": [""],
      "target": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Actions/LogService.ClearLog"
    },
    "Oem": {
      "Firefly": {
        "#LogService.ExportLog": {
          "@Redfish.ActionInfo": "/redfish/v1/Managers/bmc/LogServices/OperateLog/ExportLogActionInfo",
          "target": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Actions/Oem/Firefly/LogService.ExportLog"
        }
      }
    }
  },
  "DateTime": "2026-08-05T10:06:08.292+08:00",
  "DateTimeLocalOffset": "+08:00",
  "Description": "Collection of log services for this manager",
  "Entries": {
    "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries"
  },
  "Id": "OperateLog",
  "Name": "System Service Log",
  "OverWritePolicy": "NeverOverWrites",
  "OverWritePolicy@Redfish.AllowableValues": [
    "Unknown",
    "WrapsWhenFull",
    "NeverOverWrites"
  ],
  "ServiceEnabled": true
}

响应字段

字段类型说明
@odata.contextstring指定日志服务的 OData 元数据上下文。
@odata.idstring指定日志服务路径。
@odata.typestring日志服务的 OData 类型。
Actionsobject日志服务支持的操作集合。
Actions.#LogService.ClearLogobject清空日志操作。
Actions.#LogService.ClearLog.ClearType@Redfish.AllowableValuearray清空类型允许值;当前返回一个空字符串。
Actions.#LogService.ClearLog.targetstring清空日志的 POST 路径。
Actions.OemobjectOEM 操作集合。
Actions.Oem.FireflyobjectFirefly 日志操作集合。
Actions.Oem.Firefly.#LogService.ExportLogobject导出日志操作。
Actions.Oem.Firefly.#LogService.ExportLog.@Redfish.ActionInfostring导出操作的 ActionInfo 路径。
Actions.Oem.Firefly.#LogService.ExportLog.targetstring导出日志的 POST 路径。
DateTimestring服务端生成响应时的本地日期和时间。
DateTimeLocalOffsetstring本地时间与 UTC 的偏移。
Descriptionstring日志服务描述。
Entriesobject日志条目合集入口。
Entries.@odata.idstring日志条目合集路径。
Idstring日志服务标识。
Namestring日志服务名称。
OverWritePolicystring当前日志覆盖策略。
OverWritePolicy@Redfish.AllowableValuesarray支持的日志覆盖策略。
ServiceEnabledboolean日志服务是否启用。

2.3 查询日志条目合集

分页查询指定日志服务的条目路径。

项目内容
方法GET
路径/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}/Entries
查询参数skip:从零开始跳过的条目数;默认 0
查询参数top:返回区间的结束序号;省略时使用当前日志总数
认证HTTP Basic Auth 或 X-Xsrf-Token
成功状态码200 OK

top 不是返回数量

当前后端按 skip + 1top 的序号区间生成成员。例如 skip=0&top=3 返回第 1 至第 3 条;skip=1&top=3 只返回第 2 至第 3 条。top 当前不是常见分页语义中的“返回数量”。

查询前三条操作日志
curl --user '<username>:<password>' \
  --header 'Accept: application/json' \
  '<protocol>://<device-ip>:<port>/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries?skip=0&top=3'

响应示例

200 OK
{
  "@odata.context": "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection",
  "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries",
  "@odata.type": "#LogEntryCollection.LogEntryCollection",
  "Description": "Collection of entries for this log service",
  "Members": [
    { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/1" },
    { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/2" },
    { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/3" }
  ],
  "Members@odata.count": 3,
  "Name": "Log Service Entries Collection",
  "Oem": {
    "Firefly": {
      "MaxCount": 30
    }
  }
}

响应字段

字段类型说明
@odata.contextstring日志条目合集的 OData 元数据上下文。
@odata.idstring日志条目合集路径;不包含查询字符串。
@odata.typestring日志条目合集的 OData 类型。
Descriptionstring日志条目合集描述。
Membersarray当前查询区间内的日志条目列表。
Members[].@odata.idstring指定日志条目的访问路径。
Members@odata.countnumber当前响应实际返回的成员数量。
Namestring日志条目合集名称。
OemobjectOEM 扩展信息。
Oem.FireflyobjectFirefly 日志扩展信息。
Oem.Firefly.MaxCountnumber指定日志服务当前保存的日志总数。

2.4 查询指定日志条目

根据条目序号查询一条管理日志的内容。

项目内容
方法GET
路径/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}/Entries/{EntryId}
路径参数EntryId:从日志条目合集的 Members[].@odata.id 获取
认证HTTP Basic Auth 或 X-Xsrf-Token
成功状态码200 OK
查询第 1 条操作日志
curl --user '<username>:<password>' \
  --header 'Accept: application/json' \
  '<protocol>://<device-ip>:<port>/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/1'

响应示例

以下响应来自真实日志条目,其中客户端地址已替换为占位符。

200 OK · 客户端地址已脱敏
{
  "@odata.context": "/redfish/v1/$metadata#Managers/Members/bmc/LogServices/OperateLog/Entries/Members/$entity",
  "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/1",
  "@odata.type": "#LogEntry.v1_1_4.LogEntry",
  "Created": "2026-05-14T10:22:16.795+08:00",
  "Description": "Manager OperateLog Log",
  "EventTimestamp": "2026-05-14T10:22:16.795+08:00",
  "Id": "1",
  "Message": "访问:/redfish/v1/UpdateFwService/Actions/UpdateFwService.SimpleUpdate;操作:控制 SimpleUpdate_Queue fail;原因:The property 'ImageURI' is a required property and must be included in the request.",
  "Name": "Log Entry 1",
  "Oem": {
    "Firefly": {
      "Client": "<client-ip>",
      "Interface": "LAN",
      "User": ""
    }
  },
  "Severity": "Critical"
}

响应字段

字段类型说明
@odata.contextstring日志条目的 OData 元数据上下文。
@odata.idstring指定日志条目路径。
@odata.typestring日志条目的 OData 类型。
Createdstring日志记录创建时间。
Descriptionstring日志条目描述。
EventTimestampstring日志事件发生时间。
Idstring当前查询中的日志条目序号。
Messagestring日志消息正文。
Namestring日志条目名称。
OemobjectOEM 扩展信息。
Oem.FireflyobjectFirefly 日志扩展信息。
Oem.Firefly.Clientstring发起相关请求的客户端地址。
Oem.Firefly.Interfacestring请求来源接口;当前固定返回 LAN
Oem.Firefly.Userstring发起相关请求的用户名。
Severitystring日志严重级别,可能为 OKWarningCritical

2.5 清空日志

永久删除指定管理器和日志类型下的全部记录。

项目内容
方法POST
路径/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}/Actions/LogService.ClearLog
请求体空 JSON 对象 {}
认证HTTP Basic Auth 或 X-Xsrf-Token
所需权限OemDebug
成功状态码200 OK

不可恢复操作

该接口会从数据库中永久删除指定类型的全部日志,并整理日志数据库空间。执行前应先通过导出接口备份日志。本次实机验证未执行清空操作。

清空操作日志
curl --request POST \
  --user '<username>:<password>' \
  --header 'Content-Type: application/json' \
  --data '{}' \
  '<protocol>://<device-ip>:<port>/redfish/v1/Managers/bmc/LogServices/OperateLog/Actions/LogService.ClearLog'

响应示例

200 OK
{
  "@odata.type": "#Message.v1_1_1.Message",
  "Timestamp": "1785836138",
  "MessageId": "Base.1.11.0.Success",
  "Message": "The request completed successfully.",
  "MessageArgs": [],
  "MessageSeverity": "OK",
  "Severity": "",
  "Oem": null,
  "RelatedProperties": null,
  "Resolution": "None"
}

响应字段

字段类型说明
@odata.typestringRedfish 消息资源的 OData 类型。
Timestampstring服务端生成响应时记录的时间戳。
MessageIdstring消息标识,成功时为 Base.1.11.0.Success
Messagestring请求处理结果说明。
MessageArgsarray消息格式化参数列表;本响应为空数组。
MessageSeveritystring消息严重级别,成功时为 OK
Severitystring兼容保留的严重级别字段;本响应为空字符串。
Oemobject | nullOEM 扩展消息;本响应为 null
RelatedPropertiesarray | null与消息相关的属性路径;本响应为 null
Resolutionstring建议的处理方式;成功时为 None

2.7 导出日志

将指定日志类型导出为 Microsoft Excel 2007+ 格式的 .xlsx 文件。

项目内容
方法POST
路径/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}/Actions/Oem/Firefly/LogService.ExportLog
ActionInfo/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}/ExportLogActionInfo
请求体空请求体
认证HTTP Basic Auth 或 X-Xsrf-Token
所需权限OemDebug
成功状态码200 OK
响应类型XLSX 二进制文件

必须发送 Content-Length

当前代理会拒绝没有 Content-Length 的 POST,并返回 502 POST or PUT without Content-Length。curl 示例使用 --data '' 发送长度为零的请求体,确保请求包含 Content-Length: 0

导出操作日志
curl --request POST \
  --user '<username>:<password>' \
  --header 'Content-Type: application/json' \
  --data '' \
  --output 'bmc_OperateLog.xlsx' \
  '<protocol>://<device-ip>:<port>/redfish/v1/Managers/bmc/LogServices/OperateLog/Actions/Oem/Firefly/LogService.ExportLog'

响应示例

实机使用 Basic Auth 和 Token 均返回 200 OK,下载文件通过 ZIP 结构检查,可识别为 Microsoft Excel 2007+ 文件。以下为 Basic Auth 验证时的真实响应头:

200 OK
Content-Disposition: attachment;filename=bmc_OperateLog.xlsx
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Length: 7561

响应字段

响应头类型说明
Content-Dispositionstring下载文件名,格式为 {ManagerId}_{LogServiceId}.xlsx
Content-TypestringXLSX 文件的媒体类型。
Content-Lengthnumber本次导出文件的字节数,随日志内容变化。

导出文件字段

XLSX 的首行包含 IDCreatedAtLevelcallermsgtypelog_idcorename 八列。导出操作会新增操作日志,因此再次查询日志总数时可能比导出前增加。

本页目录