操作场景
应用程序通常首先直接将运行日志输出到本地的文件中。当运维人员需要查询日志时,登录服务器,通过操作系统的文件查看工具,比如more,vim,grep等查询需要关注的日志内容。这种场景下,由于日志分布在各个服务器上,命令行操作易出错、服务器权限等限制因素造成日志查找效率低下。
利用云日志服务,可以获得以下优势:
- 数据集中存储,无需登录多台服务器查询,这在微服务架构下尤为重要;
- 快速检索日志,告别繁琐的命令行操作,提升故障处理效率;
- 实时检测异常日志,设置告警,提升故障响应时效。
前置条件
- 开通云日志服务;
- 应用服务部署在天翼云的云主机上。
接入步骤
-
登录云日志服务控制台。
-
左侧点击【日志接入】菜单,进入日志接入页面。选择云主机-文本日志。
-
选择日志单元。
- 点击“所属日志项目”后的目标框,在下拉列表中选择具体的日志项目,若没有所需的日志项目,点击“所属日志项目”目标框后的“新建”,在弹出的创建日志项目页面创建新的日志项目。
- 点击“所属日志单元”后的目标框,在下拉列表中选择具体的日志单元,若没有所需的日志单元,点击“所属日志单元”目标框后的“新建”,在弹出的创建日志单元页面创建新的日志单元。
-
选择主机组。在主机组列表中选择一个或多个需要采集日志的主机组。
若没有所需的主机组,单击列表上方“新建主机组”,输入主机组名称,在已开通云主机列表中,选择您需要采集日志的目标云主机,点击下一步,选中的云主机将打包作为主机组。 -
安装采集器。
-
Step1:创建终端节点。安装采集器前,您需要在云主机所在的VPC中创建终端节点,以建立与日志服务的连接通道。
您需要在当前页面检查云主机所在的VPC是否已创建终端节点。若终端节点状态为“未创建”,请点击页面中的【创建终端节点】按钮,并根据页面指引进行开通。
若终端节点状态为“已创建”,您可跳过该步骤。 -
Step2:安装采集器。
- 首先获取您的AK和SK。如何获取AK/SK?
- 复制页面中的命令,并使用获取的AK、SK手动替换命令中的 {input_your_ak} 和 {input_your_sk}。填写值时不需要添加 {}。
- 以root用户登录待安装采集器的云主机,执行上述命令。当显示“Installed lmtagent successfully”时表示安装成功。
-
Step3:检查采集器状态。
点击【检测】按钮,稍等片刻后查看采集器状态,确保所有目标云主机的采集器状态均为已连通。若多次重试后仍无法连通,请查看常见问题中的“云主机采集器无法连通”进行问题排查。 -
点击下一步。
-
-
配置采集规则。
对日志采集设置具体的采集规则。具体请参考采集配置。 -
索引配置。(可选项)
具体查看索引配置。 -
点击下一步后,接入成功后,可以点击【返回接入配置列表】查看日志接入,也可单击【查询日志】查看该日志单元下的日志数据。
采集配置
您需要在日志接入流程中配置采集规则,采集器将按照该规则采集目标云主机的日志。
采集配置的具体配置参数说明如下:
-
采集规则名称:自定义采集规则名称,字符长度64以内,仅支持字母、数字、下划线(_)和连字符(-),且必须以字母和数字开头、结尾。
-
采集路径配置:填写您需要采集的日志路径与日志文件名,采集器将监听这些目录(包含子层目录)下所有匹配文件名规则的日志文件,并采集日志数据至云日志服务中。您可通过以下多种方式配置采集路径:
-
采集单一目录下的单一日志文件。示例:
/var/logs/a.log
此例中,采集器将会监听/var/log/目录下以a.log命名的日志文件。
-
支持通配符模式进行目录与文件名的模糊匹配,通配符(* )表示匹配多个任意字符,通配符(?) 表示匹配单个任意字符。示例如下:
采集路径 示例说明 /var/logs/*/a.log 此例中,表示/var/logs/目录下,任何一个目录中存在a.log,都能进行日志匹配。 /var/logs/service-*/a.log 此例中,表示/var/logs/目录下,任何一个以service-开头的目录中存在a.log,都能进行日志匹配。 /var/logs/service/a*.log 此例中,表示/var/logs/service目录下,任何一个以a开头的log类型日志文件,都能进行日志匹配。 /var/logs/*.log 此例中,表示/var/logs/目录下,后缀名为.log的日志文件,都能进行日志匹配。 -
支持使用递归路径,/**/表示当前目录以及所有子目录。示例:
/var/log/**/a.log
此例中,采集器将会监听/var/log/前缀路径下子目录中以a.log命名的日志文件,默认往里递归5个目录层级,如:
/var/logs/1/a.log /var/logs/1/2/a.log /var/logs/1/2/3/a.log /var/logs/1/2/3/4/a.log /var/logs/1/2/3/4/5/a.log
说明以上示例中的/1/2/3/4/5/,表示/var/logs目录中,往里递归的5个目录层级,在这5个目录层级中只要存在a.log,都能进行日志匹配。若您需要递归更多的目录层级,可修改当前页面中的【最大目录深度】字段。
采集路径中只能出现一次**,不能出现两个及以上。错误示例如:/var/logs/**/test/**/a.log。
采集路径中第一个层级不允许为**,以避免误采集系统文件,错误示例如:/**/logtest/a.log。
-
-
采集策略
- 全量:采集新文件时,从文件的末尾开始读;
- 增量:采集新文件时,从文件的开头开始读。(从增量改为全量,也仅从最后采集位置开始采集,若要全量采集日志,请新建采集规则。全量最大采集10GB)
-
采集黑名单:
支持对日志进行过滤采集,即通过设置黑名单,在采集时过滤指定的文件。
打开采集黑名单设置后,您需要输入完整的文件绝对路径与文件名称,代表该文件将会被采集器忽略。
支持添加多个采集黑名单。 -
最大目录深度:默认为5层,该配置控制日志采集的最大目录深度,采集器不会采集所在目录层级超过指定最大目录深度的日志文件。当您的目标采集路径包含模糊匹配时,建议配置合适的最大目录深度,避免采集器性能浪费。
-
切割模式
支持选择切割模式以实现日志的结构化解析,目前采集器提供多种结构化解析方式,详情如下:
解析方式 | 说明 |
---|---|
单行全文 | 单行全文是指一条日志仅包含一行的内容,在采集的时候,将使用换行符来作为一条日志的结束符,即在日志文件中,以换行符分隔两条日志。日志数据本身不再进行日志结构化处理,也不会提取日志字段。每条日志都会存在一个默认的字段__message__,采集器会将日志内容存放在__message__中。详情请参考单行全文模式。 |
多行全文 | 多行全文日志是指一条完整的日志数据可能跨占多行,您需要指定首行正则以进行匹配,当某行日志匹配上预先设置的正则表达式,就认为是一条日志的开头,而下一个行首出现则作为该条日志的结束标识符。日志内容同样也会存放在__message__字段中。详情请参考多行全文模式。 |
单行正则 | 单行正则模式用于处理结构化的日志,针对包含一行内容的日志,您需要指定一个正则表达式,采集器按照正则表达式将一条完整日志提取为多个 key-value 键值。详情请参考单行正则模式。 |
多行正则 | 多行正则模式用于处理结构化的日志,针对包含多行内容的日志,您需要指定一个行首正则表达式用于匹配日志的开头,并指定一个正则表达式用于提取多个值,采集器按照该正则表达式将一条完整日志提取为多个 key-value 键值。详情请参考多行正则模式。 |
单行分隔符 | 单行分隔符模式支持通过配置的分隔符将一条日志分割成多个 key-value 键值,从而实现结构化处理,该模式仅适用于单行日志,每条完整的日志以换行符为结束标识符。详情请参考单行分隔符模式。 |
JSON | 支持解析Object类型的JSON日志,提取JSON日志内容作为Key-Value对,即Object首层的键作为Key,Object首层的值作为Value。详情请参考JSON模式。 |