派生字段支持
日志事件包含不同格式的各种字段。使用 Site24x7 AppLogs 派生字段支持,您可以为日志字段创建自定义解析规则,以提取有用信息。例如,日志数据可能包含混合消息,而您可能希望从消息数据中提取某些信息。这时,您可以通过向消息数据添加正则表达式规则来创建派生字段,以提取所需信息。
入门
您可以参阅添加日志类型帮助文档,了解更多信息。
示例:从消息字段中提取域名和 SSL 时间
在以下示例日志中,第一行日志包含一条含有域名和 SSL 握手时间的消息。
示例日志
[Thu Aug 12 14:52:23 IST 2022|DEBUG|39]:SSL Handshake Time https://zylker.com :42
[Thu May 12 14:37:51 IST 2022|DEBUG|30]: Object.wait break after up notification received...
[Thu May 12 14:37:51 IST 2022|DEBUG|42]: Up Notification received... breaking the waiting thread....
以下是上述示例日志对应的日志模式:
日志模式
[$Datetime:date:EEE MMM dd HH:mm:ss z yyyy$|$LogLevel$|$Time$]:$Message$
使用派生字段支持,您可以创建自定义解析规则,从日志数据的消息字段中提取域名和 SSL 握手时间。
创建派生字段的步骤
- 在示例输出表中,将鼠标悬停在消息字段名称上,找到
图标并单击。您也可以单击编辑字段配置链接。 - 在打开的消息 - 字段配置窗口中,填写右侧的派生字段部分。如果您单击了编辑字段配置链接,请从左侧窗格中选择所需字段,然后填写派生字段 部分。
- 显示名称:输入显示名称。
- 正则表达式:添加自定义解析规则以解析字段。在本示例中,我们添加以下正则表达式规则:SSL\sHandshake\sTime\s(?<Domain>.*)\s:(?<SSLTime>\d+)
- 自定义字段名称(Domain 和 SSLTime)将自动添加并显示在屏幕上。为自定义字段选择正确的数据类型。目前,AppLogs 支持字符串和数字数据类型。您可以从数字下拉菜单旁边的下拉菜单中选择不同的单位,如百分比、IOPS、次数、字节或千字节。
- 单击添加规则以添加自定义解析规则。
- 您可以添加、编辑或删除规则。
- 单击应用以应用字段配置设置。
- 单击保存,并将其关联到日志配置文件

示例:从消息字段中提取 ZIP 文件的压缩长度和实际长度
以下示例日志包含一条关于提取不同长度 ZIP 文件的消息。
示例日志
[Thu Aug 12 14:52:23 IST 2022|DEBUG|39]: HttpConnection : After successful gzip extraction downloaded response(22015) was extracted to 80132 of content-length -1
以下是上述示例日志对应的日志模式:
日志模式
[$Datetime:date:EEE MMM dd HH:mm:ss z yyyy$|$LogLevel$|$Time$]:$Message$
请按照上述步骤创建派生字段,并使用以下正则表达式规则获取 Compressed 和 ActualLength 字段。
正则表达式规则
HttpConnection.response\((?<Compressed>.*)\)\swas\sextracted\sto\s(?<ActualLength>\d+).
自定义字段名称(Compressed 和 ActualLength)将自动添加并显示在屏幕上。

示例:从消息字段中提取用户邮箱和 IP 地址
以下示例日志包含一条含有用户邮箱地址和 IP 地址的消息。
示例日志
Jun 7 09:22:38 10.8.0.36 : %ASA-4-722051: Group <GroupPolicyVPNCert> User <demo123@gmail.com> IP <127.0.0.1> IPv4 Address <127.0.0.1> IPv6 address <::> assigned to session
以下是上述示例日志对应的日志模式:
日志模式
$Datetime:date$ $MachineIp$ : $Message$
请按照上述步骤创建派生字段,并使用以下正则表达式规则获取用户和 IP 字段。
正则表达式规则
User\s<(?<User>.*)>\sIP\s<(?<IP>.*?)>
自定义字段名称(User 和 IP)将自动添加并显示在屏幕上。

您可以为同一字段添加多条规则。例如,您可以将上述所有规则合并到同一消息字段中。

在下方的仪表板中,您可以看到派生字段(ssltime 和 compressed)如何提取并可视化有意义的信息(最大 SSL 时间、平均下载大小、平均 SSL 时间和最大压缩值)。

您可以使用以下查询获取 ssltime 大于 100 的日志。
logtype="EumDemo" and message_ssltime>100
查询派生字段时,应使用 fieldname_derivedfieldname 格式进行查询。例如,上述查询中的 message_ssltime 表示消息字段名称和 ssltime 派生字段名称。

以下是在派生字段上使用 group by 字段的示例查询。
logtype="EumDemo" groupby message_domain

派生字段名称中只允许使用字母字符。例如,以下正则表达式因包含非字母字符而不被允许。
User\s*<(?<User_1>.*)>\s*IP\s*<(?<IP>.*?)>
