本文介绍如何使用Logtail采集WordPress日志。
背景信息
192.0.2.0 - - [07/Jan/2020:21:06:39 +0800] "GET /wp-admin/js/password-strength-meter.min.js?ver=4.4 HTTP/1.0" 200 776 "http://wordpress.c4a1a0aecdb1943169555231dcc4adfb7.cn-hangzhou.alicontainer.com/wp-admin/install.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.0.2.1 Safari/537.36"
操作步骤
- 登录日志服务控制台。
- 在接入数据区域,选择正则-文本日志。
- 选择目标Project和Logstore,单击下一步。
- 创建机器组。
- 如果您已有可用的机器组,请单击使用现有机器组。
- 如果您还没有可用的机器组,请执行以下操作(以ECS为例)。
- 在ECS机器页签中,通过手动选择实例方式选择目标ECS实例,单击立即执行。
更多信息,请参见安装Logtail(ECS实例)。
说明 如果您的服务器是与日志服务属于不同账号的ECS、其他云厂商的服务器和自建IDC时,您需要手动安装Logtail。更多信息,请参见安装Logtail(Linux系统)或安装Logtail(Windows系统)。手动安装Logtail后,您还需要在该服务器上手动配置用户标识。具体操作,请参见配置用户标识。 - 安装完成后,单击确认安装完毕。
- 在创建机器组页面,输入名称,单击下一步。
日志服务支持创建IP地址机器组和用户自定义标识机器组,详细参数说明请参见创建IP地址机器组和创建用户自定义标识机器组。
- 在ECS机器页签中,通过手动选择实例方式选择目标ECS实例,单击立即执行。
- 选中目标机器组,将该机器组从源机器组移动到应用机器组,单击下一步。
- 在Logtail配置页签中,创建Logtail配置。
参数 说明 配置名称 Logtail配置的名称,设置后不可修改。 您也可以单击导入其他配置,导入其他Project中已创建的Logtail配置。
日志路径 指定日志的目录和文件名。 日志文件名支持完整文件名和通配符两种模式,文件名规则请参见Wildcard matching。日志文件查找模式为多层目录匹配,即指定目录(包含所有层级的目录)下所有符合条件的文件都会被查找到。例如:- /apsara/nuwa/…/*.log表示/apsara/nuwa目录(包含该目录的递归子目录)中后缀名为.log的文件。
- /var/logs/app_*/*.log表示/var/logs目录下所有符合app_*模式的目录(包含该目录的递归子目录)中包含.log的文件。
说明- 默认情况下,一个文件只能被一个Logtail配置采集。
- 目录通配符只支持星号(*)和问号(?)。
设置采集黑名单 开启该功能后,可设置黑名单配置。黑名单配置可在采集时忽略指定的目录或文件,目录和文件名支持完整匹配,也支持通配符模式匹配。例如: - 选择按目录路径,配置路径为/home/admin/dir1,则表示在采集时忽略/home/admin/dir1目录下的所有内容。
- 选择按目录路径,配置路径为/home/admin/dir*,则表示在采集时忽略/home/admin/目录下所有以dir开头的子目录下的内容。
- 选择按目录路径,配置路径为/home/admin/*/dir,则表示在采集时忽略/home/admin/目录下二级目录名为dir的子目录下的所有内容。
例如/home/admin/a/dir目录下的内容被忽略,/home/admin/a/b/dir目录下的内容被采集。
- 选择按文件路径,配置路径为/home/admin/private*.log,则表示在采集时忽略/home/admin/目录下所有以private开头,以.log结尾的文件。
- 选择按文件路径,配置路径为/home/admin/private*/*_inner.log,则表示在采集时忽略/home/admin/目录下以private开头的目录内,以_inner.log结尾的文件。
例如/home/admin/private/app_inner.log文件被忽略,/home/admin/private/app.log文件被采集。
是否为Docker文件 如果是Docker文件,可以直接配置内部路径与容器Tag,Logtail会自动监测容器创建和销毁,并根据Tag进行过滤采集指定容器的日志。关于容器文本日志采集请参见通过DaemonSet-控制台方式采集容器文本日志。 模式 配置为完整正则模式。 单行模式 关闭单行模式。 日志样例 输入如下WordPress日志样例。 192.0.2.0 - - [07/Jan/2020:21:06:39 +0800] "GET /wp-admin/js/password-strength-meter.min.js?ver=4.4 HTTP/1.0" 200 776 "http://wordpress.c4a1a0aecdb1943169555231dcc4adfb7.cn-hangzhou.alicontainer.com/wp-admin/install.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.0.2.1 Safari/537.36"
行首正则表达式 填写日志样例后,单击自动生成,生成行首正则表达式。本示例中,以IP地址表示一行的开头,行首正则表达式为\d+\.\d+\.\d+\.\d+\s-\s.*。 提取字段 开启提取字段,通过正则表达式将日志内容提取为Key-Value对。 正则表达式 本示例中,配置为(\S+) - - \[([^\]]*)] "(\S+) ([^"]+)" (\S+) (\S+) "([^"]+)" "([^"]+)",在实际场景中,根据以下方式配置正则表达式。 - 自动生成正则表达式
在日志样例框中,选中需要提取的字段,单击生成正则,自动生成正则表达式。
- 手动输入正则表达式。
单击手动输入正则表达式,手动配置。配置完成后,单击验证即可验证您输入的正则表达式是否可以解析、提取日志样例,详情请参见如何调试正则表达式。
日志抽取内容 开启提取字段后,需要设置。 通过正则表达式将日志内容提取为Value后,您需要为每个Value设置对应的Key。
使用系统时间 本示例中关闭了使用系统时间,并配置时间格式为%d/%b/%Y:%H:%M:%S,在实际场景中,根据以下方式配置。 - 打开使用系统时间开关,则日志时间为采集日志时,Logtail所在主机或容器的系统时间。
- 关闭使用系统时间开关,则您需要配置指定时间字段Key名称为日志抽取内容中的时间字段,并根据时间字段的值配置时间转换格式。时间格式详情请参见时间格式。
例如配置指定时间字段Key名称为time_local,时间转换格式为%d/%b/%Y:%H:%M:%S,则日志时间为time_local字段对应的值。
丢弃解析失败日志 - 打开丢弃解析失败日志开关,解析失败的日志不上传到日志服务。
- 关闭丢弃解析失败日志开关,日志解析失败时,原始日志将作为__raw_log__字段的值上传到日志服务。
最大监控目录深度 设置日志目录被监控的最大深度。最大深度范围:0~1000,0代表只监控本层目录。 请根据您的需求选择高级配置。如果没有特殊需求,建议保持默认配置。参数 描述 启用插件处理 打开启用插件处理开关后,您可以设置Logtail插件处理日志。更多信息,请参见概述。 说明 打开启用插件处理开关后,上传原始日志、时区属性、丢弃解析失败日志、过滤器配置、接受部分字段(分隔符模式)等功能不可用。上传原始日志 打开上传原始日志开关后,原始日志将作为__raw__字段的值与解析过的日志一起上传到日志服务。 Topic生成方式 设置Topic生成方式。更多信息,请参见日志主题。 - 空-不生成Topic:默认选项,表示设置Topic为空字符串,在查询日志时不需要输入Topic即可查询。
- 机器组Topic属性:设置为机器组Topic属性,用于明确区分不同服务器产生的日志数据。
- 文件路径正则:设置为文件路径正则,则需要设置自定义正则,用正则表达式从路径里提取一部分内容作为Topic。用于区分不同用户或实例产生的日志数据。
日志文件编码 设置日志文件编码格式,取值为utf8、gbk。 时区属性 采集日志时,日志时间的时区属性。 - 机器时区:默认为Logtail所在主机或容器的时区。
- 自定义时区:手动选择时区。
超时属性 如果一个日志文件在指定时间内没有任何更新,则认为该文件已超时。 - 永不超时:持续监控所有日志文件,永不超时。
- 30分钟超时:如果日志文件在30分钟内没有更新,则认为已超时,并不再监控该文件。
选择30分钟超时时,还需设置最大超时目录深度,范围为1~3。
过滤器配置 只采集完全符合过滤器条件的日志。例如: - 满足条件即采集,例如设置Key为level,Regex为WARNING|ERROR,表示只采集level为WARNING或ERROR类型的日志。
- 过滤不符合条件的日志。更多信息,请参见Regular-Expressions.info。
- 设置Key为level,Regex为^(?!.*(INFO|DEBUG)).*,表示不采集level中包含INFO或DEBUG类型的日志。
- 设置Key为level,Regex为^(?!(INFO|DEBUG)$).*,表示不采集level等于INFO或DEBUG类型的日志。
- 设置Key为url,Regex为.*^(?!.*(healthcheck)).*,表示不采集URL中带有healthcheck的日志。例如Key为url,Value为/inner/healthcheck/jiankong.html的日志将不会被采集。
更多信息,请参见regex-exclude-word、regex-exclude-pattern。
首次采集大小 通过首次采集大小,可以确认首次采集的新文件的内容位置。日志服务默认首次采集大小为1024 KB,即: - 首次采集时,如果文件小于1024 KB,则从文件内容起始位置开始采集。
- 首次采集时,如果文件大于1024 KB,则从距离文件末尾1024 KB的位置开始采集。
您可以通过此处修改首次采集大小,取值范围为0~10485760,单位为KB。
扩展配置 Logtail的扩展配置。更多信息,请参见advanced参数说明。 例如您想要通过当前Logtail配置去采集其他Logtail配置已匹配的文件,并指定聚合发送周期,可添加如下配置。
{ "force_multiconfig": true, "batch_send_interval": 3 }
Logtail配置完成后,日志服务开始采集WordPress日志。
- 预览数据及设置索引,单击下一步。日志服务默认开启全文索引。您也可以根据采集到的日志,手动或者自动设置字段索引。更多信息,请参见配置索引。说明 如果您要查询分析日志,那么全文索引和字段索引属性必须至少启用一种。同时启用时,以字段索引为准。