帮助手册

派生字段支持

日志事件包含不同格式的各种字段。使用 Site24x7 AppLogs 派生字段支持,您可以为日志字段创建自定义解析规则,以提取有用信息。例如,日志数据可能包含混合消息,而您可能希望从消息数据中提取某些信息。这时,您可以通过向消息数据添加正则表达式规则来创建派生字段,以提取所需信息。

入门

  1. 登录您的 Site24x7 账户。
  2. 下载并安装 Site24x7 服务器监控代理(Windows | Linux)。
  3. 前往管理 > 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 握手时间。

创建派生字段的步骤

  1. 示例输出表中,将鼠标悬停在消息字段名称上,找到 Field configuration settings icon 图标并单击。您也可以单击编辑字段配置链接。
  2. 在打开的消息 - 字段配置窗口中,填写右侧的派生字段部分。如果您单击了编辑字段配置链接,请从左侧窗格中选择所需字段,然后填写派生字段 部分。
    1. 显示名称:输入显示名称。
    2. 正则表达式:添加自定义解析规则以解析字段。在本示例中,我们添加以下正则表达式规则:SSL\sHandshake\sTime\s(?<Domain>.*)\s:(?<SSLTime>\d+)
    3. 自定义字段名称(DomainSSLTime)将自动添加并显示在屏幕上。为自定义字段选择正确的数据类型。目前,AppLogs 支持字符串和数字数据类型。您可以从数字下拉菜单旁边的下拉菜单中选择不同的单位,如百分比、IOPS、次数、字节或千字节。
    4. 单击添加规则以添加自定义解析规则。
    5. 您可以添加、编辑或删除规则。
  3. 单击应用以应用字段配置设置。
  4. 单击保存,并将其关联到日志配置文件

示例:从消息字段中提取 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>.*?)>
自定义字段名称(UserIP)将自动添加并显示在屏幕上。

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

在下方的仪表板中,您可以看到派生字段(ssltimecompressed)如何提取并可视化有意义的信息(最大 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>.*?)>

AppLogs 保存的搜索
AppLogs 告警
多日志模式支持

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!