添加日志类型
日志类型是应用程序写入日志格式的明确定义。Site24x7 默认支持30 多种不同的日志类型。启用 AppLogs,创建日志配置文件,将日志类型与其关联,然后开始收集、分析和管理您的日志。除了 Site24x7 默认支持的内容之外,您还可以创建自定义日志类型。
概要
添加自定义日志类型
如果您的日志类型未列在支持的日志类型列表中,您可以创建自定义日志类型并定义它们。转到管理> AppLogs > 日志类型> 添加日志类型。
- 显示名称:输入显示名称。
- 日志类型:为您的日志类型命名。
- 保留期: 保留期是指日志可在 Site24x7 中搜索的天数。
- 最大上传限制:您在当前计费周期内可以上传的最大日志量(对于此日志类型)。
- 自动发现:切换 启用以在与此日志类型关联的任何新服务器中自动查找此日志格式并开始上传它们。
- 示例日志:提供日志条目的三个示例行,以使我们能够发现日志模式。(注意:它至少应该有一个日期字段供您解析日志)
在上传多行日志时,添加<NewLine>以拆分多行日志,并输入日志模式。 - 日志模式:您可以通过编辑 日志模式部分中的相应字段名称来编辑示例输出字段中的任何列。
每个字段名称都应以 $ 开头和结尾(例如:$Message$)
如果遇到日期模式不匹配错误,您可以定义自定义日期模式。
属性 描述 字段名称 提供属性的描述 数据类型 这是与 FieldName 关联的数据类型。字段名可以是以下数据类型:
-数字
-字符串
-日期
-十进制
- IP(IPv4 或 IPv6)
-字
-配置
-模式格式 只有“日期”数据类型才需要。对于其他数据类型,不需要格式 - 定义数字字段
($FieldName:Number$)
此处,数字是与字段名称关联的值的数据类型。 - 定义字符串字段
($FieldName$) 或 ($FieldName:String$)
此处,String 是与字段名称关联的文本。
(注意:字符串是默认的数据类型,因此不需要单独提及)。 - 定义日期字段
($FieldName:Date:Format$)
这里,FieldName 是变量名,Date 是该变量的数据类型。但是,必须使用 Format 定义 Date 变量。
$DateTime:date:EEEE MMM dd HH:MM:SS:SSS$例如,提及- 2007 年 9 月 19 日星期二 13:34:56.123 - 格式应为 EEEE MMM dd HH:mm:ss:SSS
- 2007 年 9 月 19 日 13:34:56 123456 PST - 格式应为 MMM dd yyyy HH:mm:ss:SSSSS z
- 19-09-07 1:34:56 pm -0800 - 格式应为 dd-MM-yy(或)y hh:mm:ss a Z
- 13:34:56,262 - 格式应为 HH:mm:ss, D
- 9 月 19 日星期二 13:34:56 - 格式应为 EEE MMMM dd HH:mm:ss
- 对于 Unix 时间(以秒为单位)1190234095,格式应为 $DateTime:date:unix$
格式要求 日期格式 例子 年份 - 2 位数
yy (或者) y 17 或者 7 年份 - 4 位数字
yyyy 2017 月份 - 2 位数
MM 07 月份 - 3 个字母
MMM Sep 月份名称全称
MMMM September 日期
dd 19 一天中的小时数 (0-12)
hh 1 一天中的小时数 (0-23)
HH 13 一小时内的分钟
mm 34 一分钟几秒
ss 56 一秒毫秒
SSS 123 时区 (+0800; -1100)
时区 (PST)
时区 (-08:00)Z
z
X-0800
PST
+01:00一年中的一天
D 262 日期名称 - 3 个字母
EEE Tue 完整的日期名称
EEEE Tuesday 上午 / 下午 / 上午 / 下午
a pm Unix 时间 - 自纪元以来的秒数
unix 1190234095 Unix 时间 - 自纪元以来的毫秒数 unixm 1190234095123 -
从文件夹或文件名中获取日期值
文件夹名称通常仅包含年、月和日期字段。仅当日志行末尾包含小时、分钟和秒值时,我们才会获取日期值。$DateTime:date:@folder(yyyy-MM-dd)HH:mm:ss$
$$DateTime:date:@file(yyyy-MM-dd)HH:mm:ss$
$$DateTime:date:@filepath( yyyy-MM-dd)HH:mm:ss$ $
例如
SampleLog11:10:11 CassandraDaemon:init 日志记录已初始化
11:10:12 YamlConfigurationLoader:load 从文件加载设置
11:10:13 DatabaseDescriptor:data 数据文件目录日志模式
$DateTime:date:@folder(yyyy-MM-dd)HH:mm:ss$ $ClassName$:$Method$ $Message$文件名:D:\MyWebApp\2020-01-15\process.log
在这里,日期值存在于日志文件的父文件夹中;因此 在日志模式中提到了@folder 。
例如,以下日志行包含葡萄牙语的日期值。
示例日志
日志条目:2019 年 10 月 10 日,星期四 00:00:07 启动消息接收
日志条目:2019 年 10 月 10 日,星期四 00:00:07 获取队列中的消息 Quantity=0
日志条目:00:00:08 星期四, 2019年10月10日成功获取数量:CM_OK日志模式
日志条目: $DateTime:date:pt(HH:mm:ss EEEE, dd MMMM yyyy)$ $Message$
这里,“ pt ”表示葡萄牙语的语言代码。
- 定义十进制字段
($FieldName:Decimal$)
在这里,十进制是与字段名称关联的值的数据类型。例如:165.5 - 定义 IP 字段
( $FieldName:ip$)
这里,IP 是与字段名称关联的值的数据类型。它可以是 IPv4 或 IPv6 值。
例如: 192.0.2.1、2001 :0db8:85a3:0:0:8a2e:0370:7334 - 定义 Word 字段
($Filename:word$)
此处,Word 是与字段名称关联的值的数据类型。Word 只是 String 的一个子集,但该字段应该只包含一个单词。如果存在多个单词,则应将其定义为 String。 - 定义config字段
($FileName:config:@file$)
这里, @ file是与字段名称关联的配置类型。
例如:@folder、 @file、@ip、@host
($FieldName:config:@filepath$)
例如:C:\Program Files\cassandra\logs\server.log
在这里,如果您提到文件路径,Site24x7 AppLogs 将获取文件的完整路径并将其插入该字段。
如果要添加特定文件夹(例如 Cassandra),可以按如下方式定义字段:
$FieldName:config:@filepath:2$
- 定义模式字段
此数据类型是 JSON 文件独有的,用于为同一日志中的任何 json 对象值定义模式。
模式一:
json $log:pattern:$RemoteHost$ $RemoteLogName$ $RemoteUser$ [$DateTimefield:date:dd/EEE/yyyy:HH:mm:ss$] $Method$ $RequestURI$ $Protocol$ $Status:number$ $ResponseSize :number$ $Referer$ $UserAgent$$ $stream$ $time$在这里,日期字段位于数据类型模式字段内。
模式二:
json $log:pattern:$RemoteHost$ $RemoteLogName$ $RemoteUser$ [$DateTimefield$] $Method$ $RequestURI$ $Protocol$ $Status:number$ $ResponseSize:number$ $Referer$ $UserAgent$$ $stream$ $时间:日期:yyyy-mm-dd'T'HH:mm:ss.SSS'Z'$在这里,日期字段在数据类型模式字段之外。
示例日志:
{"log":"172.21.163.159 - - [27/Jul/2020:19:53:11] GET /test.txt HTTP/1.1 200 12 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36","stream":"stdout","time":"2020-07-28T11:29:54.295671087Z"}
{"log":"172.21.163.159 - - [27/Jul/2020:19:53:11] GET /test.txt HTTP/1.1 200 12 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36","stream":"stdout","time":"2020-07-28T11:29:54.295671087Z"}
{"log":"172.21.163.159 - - [27/Jul/2020:19:53:11] GET /test.txt HTTP/1.1 200 12 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36","stream":"stdout","time":"2020-07-28T11:29:54.295671087Z"}
- 定义数字字段
- 通过 HTTPS 端点将日志发送到 AppLogs。
- 字段配置:
- 在Sample Output表中,将鼠标悬停在字段名称上以找到 图标并单击它。
- 在打开的ThreadId - Field Configurations窗口中,从左侧窗格中选择所需的字段并填写右侧的选项。
- 显示名称:名称将根据您从左侧窗格中选择的字段自动附加。
- 该领域的单位:选择一个合适的单位。此选项仅适用于数字字段。
- 如果您希望启用它们,请针对以下选项切换到是。对于您在此处选择的所有条件(Ignore this Field除外),您可以在下面的Filter Log Lines 选项中定义值:
- 启用 Groupby:对具有相同值的条目进行分组。
- Groupby 的字符长度: 指定应该在 Groupby 查询输出中显示的字符数。您最多可以为一个字段添加 200 个字符。
- 标记为唯一字段:如果该字段包含唯一值,则将此字段指定为唯一字段。您可以在 AppLogs 搜索页面中找到突出显示为链接的特定唯一字段。单击链接以查看与该特定字段对应的日志。
- 从搜索结果中隐藏此字段:查看搜索结果时隐藏此特定字段。
- 启用屏蔽:切换到是以启用屏蔽。在正则表达式和掩码字符串中提供要掩码为捕获组的数据的表达式。
- 启用散列:切换到是以启用散列。提供表达式并将要散列的数据作为捕获组包含在正则表达式中。了解有关屏蔽和散列的更多信息。
如果您在上述步骤中选择了忽略此字段以外的选项,则可以在过滤日志行选项下定义值。您可以将此过滤器应用于上述多个选项。
- 仅在此字段时选择日志行:根据您要添加以下值的方式选择匹配或不匹配。
- 任何这些值:输入指定条件的值。
- 在源忽略此字段:切换到是以在上传之前忽略代理端本身的特定字段。
- 单击应用。
- 单击保存并将其关联到日志配置文件。你完成了。您可以开始搜索您的日志。
日志的存储期限固定为 30 天。要增加日志保留期,您可以重新索引日志。了解更多。
示例日志模式:
支持以下日志模式:
- 简单的日志模式
- 带有一些默认字符的日志模式
- 具有自定义日期格式的日志模式
- 具有字段排除的日志模式
-
简单的日志模式:
示例日志:
3489 M 04 Mar 09:13:40.537 # WARNING: The TCP backlog setting of 511 cannot be enforced
日志模式:
字段名称 | 字段值 |
PID | 3489 |
Role | M |
DateTime | 04 Mar 09:13:40.537 |
LogLevel | # |
Message | 警告:无法强制执行 511 的 TCP 积压设置 |
-
带有一些默认字符的日志模式:
示例日志:
2017/08/01 01:05:50 [error] 28148#1452: *154 FastCGI sent in stderr
日志模式:
字段名称 | 字段值 |
DateTime | 2017/08/01 01:05:50 |
LogLevel | error |
ProcessId | 28148 |
ThreadId | 1452 |
UniqueId | 154 |
Message | 在标准错误中发送的 FastCGI |
-
具有自定义日期格式的日志模式:
示例日志:
demo_user demo_db 192.168.22.10 58241 2018-01-08 11:58:23 AEDT 致命:主机没有 pghba.conf 条目
日志模式:
字段名称 | 字段值 |
User | demo_user |
DB | demo_db |
RemoteIP | 192.168.22.10 |
PID | 58241 |
DateTime | 2018-01-08 11:58:23 AEDT |
LogLevel | FATAL |
Message | 主机没有 pghba.conf 条目 |
-
带有一些字段排除的日志模式:
示例日志:
-
Aug 7 07:35:02 log-host systemd[1]: Stopping CUPS Scheduler
Aug 7 08:40:02 log-host kernel: 817216.167300] audit: type=1400
日志模式:
Field Name | Field Value - Line 1 | Field Value - Line 2 |
DateTime | Aug 7 07:35:02 | Aug 7 08:40:02 |
Host | log-host | log-host |
Application | systemd | kernel |
ProcessId | 1 | - |
Message | Stopping CUPS Scheduler | 817216.167300] audit: type=1400 |