vRealize Log Insight 会将预定义的 vSphere 数据存储名称映射到设备 ID。由于此映射,您可以在查询中使用作为设备 ID 别名的数据存储名称。查询会查找包含数据存储名称或以该数据存储名称作为别名的设备 ID 的消息。在启用别名之前,vRealize Log Insight 必须在消息中收到键(数据存储名称)及其值(数据存储 ID)。

别名在 VMware-vSphere 内容包中定义。别名可以是静态或动态的。

静态别名

静态别名使用以下字段配置:

字段 描述
aliasFields 给定 searchFieldvaluekey 的静态映射。
name 别名字段的名称。
searchField 需要别名的字段的名称。
value 要匹配的 searchField 的值。
key 要与包含 searchField 的事件一起显示的别名。
definition 静态别名定义为:
"aliasFields":[{
    "name":"vmw_esxi_scsi_host_status",
    "searchField":"vmw_esxi_scsi_host_status_label",
    "aliases":[{
        "key":"OK",          "value":"0x0"},{
        "key":"NO_CONNECT",  "value":"0x1"},{
        "key":"BUS_BUSY",    "value":"0x2"},{
        "key":"TIME_OUT",    "value":"0x3"},{
        "key":"BAD_TARGET",  "value":"0x4"},{
        "key":"ABORT",       "value":"0x5"},{
        "key":"PARITY",      "value":"0x6"},{
        "key":"ERROR",       "value":"0x7"},{
        "key":"RESET",       "value":"0x8"},{
        "key":"BAD_INTR",    "value":"0x9"},{
        "key":"PASSTHROUGH", "value":"0xa"},{
        "key":"SOFT_ERROR",  "value":"0xb"
    }]
},{
    "name":"vmw_esxi_scsi_device_status",
    "searchField":"vmw_esxi_scsi_device_status_label",
    "aliases":[{
        "key":"GOOD",                 "value":"0x0"},{
        "key":"CHECK CONDITION",      "value":"0x2"},{
        "key":"CONDITION MET",        "value":"0x4"},{
        "key":"BUSY",                 "value":"0x8"},{
        "key":"RESERVATION CONFLICT", "value":"0x18"},{
        "key":"TASK SET FULL",        "value":"0x28"},{
        "key":"ACA ACTIVE",           "value":"0x30"},{
        "key":"TASK ABORTED",         "value":"0x40"
    }]
},{
    "name":"vmw_esxi_scsi_sense_code",
    "searchField":"vmw_esxi_scsi_sense_label",
    "aliases":[{
        "key":"NO SENSE",        "value":"0x0"},{
        "key":"RECOVERED ERROR", "value":"0x1"},{
        "key":"NOT READY",       "value":"0x2"},{
        "key":"MEDIUM ERROR",    "value":"0x3"},{
        "key":"HARDWARE ERROR",  "value":"0x4"},{
        "key":"ILLEGAL REQUEST", "value":"0x5"},{
        "key":"UNIT ATTENTION",  "value":"0x6"},{
        "key":"DATA PROTECT",    "value":"0x7"},{
        "key":"BLANK CHECK",     "value":"0x8"},{
        "key":"VENDOR SPECIFIC", "value":"0x9"},{
        "key":"COPY ABORTED",    "value":"0xA"},{
        "key":"ABORTED COMMAND", "value":"0xB"},{
        "key":"VOLUME OVERFLOW", "value":"0xD"},{
        "key":"MISCOMPARE",      "value":"0xE"
    }]
}],

对于每个现有字段,此定义将添加另一个具有用户友好名称值的字段:

  • 对于 vmw_esxi_scsi_host_status 字段,此定义将添加一个值为用户友好名称的 vmw_esxi_scsi_host_status_label 字段。例如,vmw_esxi_scsi_host_status 的字段值“0x1”将生成值为“NO_CONNECT”的 vmw_esxi_scsi_host_status_label
  • 对于 vmw_esxi_scsi_device_status 字段,此定义将添加一个值为用户友好名称的 vmw_esxi_scsi_device_status_label 字段。例如,vmw_esxi_scsi_device_status 的字段值“0x2”将生成值为“CHECK CONDITION”的 vmw_esxi_scsi_device_status_label
  • 对于 vmw_esxi_scsi_sense_code 字段,此定义将添加一个值为用户友好名称的 vmw_esxi_scsi_device_sense_label 字段。例如,vmw_esxi_scsi_sense_code 的字段值“0x3”将生成值为“MEDIUM ERROR”的 vmw_esxi_scsi_device_sense_label

动态别名

动态别名使用以下字段配置:

字段 描述
aliasRules associatedFieldsvalueFieldkeyField 的动态映射。
name 标识别名的唯一名称(仅限内部)。
keyField 应将动态别名映射到的字段。
valueField 与提供别名值的 keyField 位于同一事件中的第二个字段。
aliasFieldName 要在包含 keyField 的事件旁边显示的别名字段的名称。
associatedFields 应显示 aliasFieldName 的一个或多个字段。
definition 动态别名定义为:
"aliasRules":[{
    "name":"DatastoreFromVmFileSystem",
    "filter":"hostd VmFileSystem Label headExtent naa*",
    "keyField":"vmw_esxi_device_id",
    "valueField":"vmw_esxi_vmfs_label",
    "aliasFieldName":"vmw_esxi_vmfs_name",
    "associatedFields":[
        "vmw_esxi_device_id"
    ]
},{
    "name":"DatastoreFromScsiCorrelator",
    "filter":"scsiCorrelator storage Datastores naa*",
    "keyField":"vmw_esxi_device_id",
    "valueField":"vmw_esxi_datastore",
    "aliasFieldName":"vmw_esxi_datastore_name",
    "associatedFields":[
        "vmw_esxi_device_id"
    ]
}],

要使动态别名字段正常工作,vRealize Log Insight 需要记录特定消息以构建别名。

  • 要使 vmw_esxi_vmfs_name 字段正常工作,vRealize Log Insight 必须首先收到类似以下内容的日志消息:

    016-10-22T00:50:00.042Z host001.corp.local Hostd: info hostd[5179FB70] [Originator@6876 sub=Libs]
    VmFileSystem: uuid:57925c06-0a8a627e-9f0b-b82a72d50b06, Label:datastore001,logicalDevice:57925c05-63b188db-37da-b82a72d50b06, headExtent:naa.6b083fe0c212bd001f22e05d07099022:1

    用于与此事件匹配的查询为 hostd VmFileSystem Label headExtent naa*。对于找到的每个唯一 vmw_esxi_device_id 字段值,vRealize Log Insight 会将 vmw_esxi_vmfs_label 字段的值映射到 vmw_esxi_vmfs_name 字段。在此示例中,vmw_esxi_device_id 字段为“naa.6b083fe0c212bd001f22e05d07099022”,vmw_esxi_vmfs_label 字段为“datastore001”。记录此事件后,使用 vmw_esxi_vmfs_name 字段中包含数据存储名称的筛选器运行查询会时,将返回包含“naa.6b083fe0c212bd001f22e05d07099022”的日志消息。

  • 要使 vmw_esxi_datastore_name 字段正常工作,vRealize Log Insight 必须首先收到类似以下内容的日志消息:

    2016-11-24T03:56:47.738Z host002.corp.local vobd:  [scsiCorrelator] 4851129307827us: [esx.clear.storage.redundancy.restored]
    Path redundancy to storage device naa.6006016006502a004b1c42e756fbe411 (Datastores: "datastore002") restored. Path vmhba39:C0:T1:L2 is active again.

    用于与此事件匹配的查询为 scsiCorrelator storage Datastores naa*。对于在 vmw_esxi_device_id 字段中找到的每个唯一值,vRealize Log Insight 会将 vmw_esxi_datastore 字段的值映射到 vmw_esxi_datastore_name 字段。在此示例中,vmw_esxi_device_id 字段为“naa.6006016006502a004b1c42e756fbe411”,vmw_esxi_datastore 字段为“datastore002”。记录此事件后,使用 vmw_esxi_datastore_name 字段中包含数据存储名称的筛选器运行查询会时,将返回包含“naa.6006016006502a004b1c42e756fbe411”的日志消息。

别名的要求

要使用别名,请确保满足以下要求:

  • 您使用的是 vRealize Log Insight 4.0 或更高版本。
  • 您使用的是 VMware - vSphere 内容包 4.0 或更高版本。vRealize Log Insight 中包含此内容包。
  • ESXi 配置为将日志发送到 vRealize Log Insight
  • 第一个同时包含键和值的事件经过数据获取管道后,最少要间隔五分钟。

别名的限制

使用别名时存在以下限制:

  • 不能将别名与数学函数(例如,平均值、最小值、最大值等)一起使用。
  • 不能将别名与“存在”和“不存在”运算符一起使用。
  • 不能在日志转发中转发别名。
  • 每个节点最多可以学习 100,000 个别名,超出的别名将按 FIFO 方式轮换使用。