【云小课】应用平台第32课 如何通过LTS实现上云应用的日志分析和管理?
LTS支持的功能有日志接入、日志搜索、日志分析、日志告警和日志转储等,下面将为大家介绍具体的操作步骤。
日志接入
云日志服务提供实时日志采集功能,支持主机接入、云服务接入等多种日志采集方式,采集日志后,日志数据可以在云日志控制台以简单有序的方式展示,方便运维人员进行运维分析。
-
在云日志服务管理控制台,单击“日志接入”,进入日志接入页面。
-
单击右上角“接入日志”,进入选择日志接入类型页面。
-
在选择日志接入类型页面,您可以选择主机接入、云服务接入、SDK接入或者API接入。
以采集ELB日志为例:
-
登录管理控制台。
-
在控制台左上角单击
,选择区域和项目。
-
在系统首页左上角单击
,选择“网络 > 弹性负载均衡”。
-
在“负载均衡器”界面,单击需要配置访问日志的负载均衡器名称。
-
选择“访问日志”页签,单击“配置访问日志”,打开“启动日志记录”按钮,选择已创建的日志组与日志流,经ELB日志接入到云日志服务该日志组和日志流下。如未创建日志组与日志流,请先创建日志组和创建日志流。
日志搜索
您可以通过本操作设置关键字和时间范围进行日志搜索,例如搜索近一小时内ELB日志错误码为500的日志。
-
在云日志服务管理控制台,单击“日志管理”。
-
在日志组列表中,单击接入ELB日志的日志组名称。
-
在日志流列表中,单击接入ELB日志的日志流名称。
您还可以在日志流“操作”列中,单击“搜索”进入日志流详情页面。
-
在右上角选择时间范围“近1小时”。
-
在页面搜索区域,单击搜索框,在弹出的下拉列表中选择“status”并输入“500”,单击
,开始搜索。
显示近一小时内ELB日志错误码为500的日志,如图1 搜索日志所示。status字段开启快速分析后会同步现在执行正常和异常状态占比。
-
单击“查看上下文”可以查看对应日志详情及上下文,了解该问题发生时的应用运行状态。
图1 搜索日志
-
设置日志结构化后,下拉框会同步显示系统内置字段及结构化配置的字段。
-
创建快速分析后,LTS会统计对应字段在日志流的日志文件中出现的条数,并生成日志指标(百分比)。
-
日志分析
日志记录了在系统运行期间发生的事件,可以用来了解系统活动和诊断问题。例如ELB在外部流量分发时,会记录HTTP(S)详细的访问日志记录,包含URI请求、客户端IP和端口、状态码等信息,可以用来统计1周内的UV和PV、1天内所有URI请求分布条数。
前提条件
已完成ELB日志接入。
-
在日志流详情页面,单击左侧导航栏“配置中心”,选择“结构化配置”,进入日志结构化配置页面。
-
选择“结构化模板”提取方式,选择“系统模板 > ELB”,单击“保存”,如图2 配置ELB结构化模板所示。
图1 配置ELB结构化模板 -
在日志流详情页面,单击“可视化”,进入可视化页面对ELB日志进行SQL查询与分析,查询结果有五种呈现形式,依上而下分别为表格、柱状图、折线图、饼图和数字。
-
统计1周内的PV,具体SQL查询分析语句如下所示:
select count(*) as pv
图1 PV查询结果 -
统计1周内的UV,具体SQL查询分析语句如下所示:
select count(distinct remote_port) as uv
图1 UV查询结果 -
统计1天所有URI返回请求2xx/3xx/4xx/5xx(返回码),了解业务的执行结果,具体SQL查询分析语句如下所示:
select host, router_request_uri as url, count(*) as pv,
sum(case when status >= 200 and status < 300 then 1 else 0 end ) as "2xx times",
sum(case when status >= 300 and status < 400 then 1 else 0 end ) as "3xx times",
sum(case when status >= 400 and status < 500 then 1 else 0 end ) as "4xx times",
sum(case when status >= 500 and status < 600 then 1 else 0 end ) as "5xx times"
group by host, router_request_uri
order by pv desc
limit 100
查询结果选择柱状图呈现,如图为返回码查询结果。
图1 返回码查询结果
-
日志告警
用户可以通过创建SQL告警规则完成对日志的实时监控,当日志中的出现满足设定规则时产生告警,并通过短信或邮件的方式通知用户。可以用来实时监控日志中出现的异常信息。
前提条件
已使用新版结构化功能。
-
在云日志服务管理控制台,单击“告警”。
-
在告警页面默认显示“告警列表”,单击“告警规则”切换至告警规则页面。
-
单击“创建”,在界面右侧弹出“新建告警规则”页面。
-
在“新建告警规则”页面,配置告警规则相关参数。
表1 配置告警规则参数 参数名称
说明
校验规则
样例
规则名称
告警规则的名称。
名称只支持输入英文、数字、中文、中划线、下划线及小数点,且不能以小数点、下划线开头或以小数点结尾。长度为 1-64个字符。
LTS-Alarm
描述
对该规则进行简要描述。
长度不能超过64个字符。
-
统计类型
选择“SQL统计”。
-
SQL统计
相关图表
单击“选择可视化图表”或
,进入“添加可视化图表”页面,选择对应日志组、日志流下的可视化图表,单击“确定”。
若该日志流下没有图表或没有所需的图表,单击界面上的“前往添加图表”,进入可视化界面,设置完成后单击“保存并返回”返回到告警规则界面,自动打开创建规则弹框,填充新创建的图表及图表的查询语句。
可以指定图表的查询时间(1 ~ 60分钟/1 ~ 24小时),单位为分钟或小时,每个图表最多可以查询最近一天的数据,当统计周期选择1~4分钟时,图表查询时间不能超过1小时。
若想添加多个图表,可单击
继续添加。
图表不能为空,且图表中的sql查询语句不能为空。
-
统计周期
条件表达式查询的频率可以设置为:
-
每小时:表示1点整查询一次,2点整查询一次……
-
每天:需要指定几点整查询。
-
每周:需要指定周几的几点整查询。
-
固定间隔:需要指定1 ~ 60分钟/1 ~ 24小时,当图表查询时间超过1小时时,统计周期不能选择1~4分钟。
-
CRON表达式:CRON表达式的最小精度为分钟,格式为24小时制,示例如下:
-
0/10 * * * *从0分钟开始,每隔10分钟查询一次。
-
0 0/5 * * *从0点0分开始,每隔5小时查询一次。
-
0 14 * * *每天14点0分查询一次。
-
0 0 10 * *每月10日0点0分查询一次。
-
-
每天 01:00
条件表达式
输入具体的条件表达式,当条件表达式返回为true的时候,产生告警,否则不产生告警。
条件表达式不支持中文。
条件表达式支持的基础语法和多表组合语法。
-
基础语法:
-
基础运算符:支持加(+)、减(-)、乘(*)、除(/)、取模运算(%)。 示例:x * 10 + y > 100。
-
比较运算符:支持大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)、不等于(!=)。示例:x >= 100。
-
逻辑运算符:支持与(&&)、或(||)。示例:x > 0 && y < 200。
-
取反前缀:支持取反前缀(!)。 示例:!(x < 1 && x > 100)。
-
数值常量:支持数值常量,并作为64位浮点数处理。示例:x > 10。
-
字符串常量:支持字符串常量("字符串"),例如"string"。示例:str =="string"。
-
布尔常量:支持布尔常量(true、false)。示例:(x < 100)!=true。
-
括号:支持使用括号改变计算的优先级。示例:x *(y + 10)<200。
-
contains函数:支持使用contains函数判断是否包含子串,例如contains(str, "hello")返回true则表示str中包含hello子串。
-
-
多表组合语法:
-
基础运算符:(+-*/%)。
-
比较运算符:大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)、不等于(!=)。
-
逻辑运算符:与(&&)、或(||)。
-
取反前缀(!)。
-
contains函数。
-
括号()。
-
NA
$0.count + $1.total > 100
触发告警级别
包括“紧急”、“重要”、“次要”、“提示”,默认“紧急”。
-
紧急
发送通知
包括“不发送”、“发送”,默认“不发送”。
-
不发送
告警主题
当“发送通知”中选择“发送”时,需要在下拉框选择该告警的主题、配置时区/语言和消息模板,其中告警主题可多选。
若没有您想要选择的主题,请单击 “创建主题”,在消息通知服务SMN界面新建主题,具体操作如下所示。
-
创建一个主题,操作详见创建主题。例如,创建名称为Topic1的主题。
-
设置主题策略,操作详见设置主题策略。
设置主题策略时,“可发布消息的服务”必须选择“APM”,否则会导致通知发送失败
-
为主题添加相关的订阅者,即通知的接收人(例如,邮件或短信),SMN可以实时地将告警信息以广播的方式通知这些订阅者,操作详见订阅主题。
例如,订阅者设置为该运维人员的邮箱。
若您需要修改时区/语言,可单击“修改”,在账号中心里进行首选项设置。
若没有可选的消息模板,可单击创建消息模板。
当“发送通知”中选择“发送”时,该参数为必选。
-
-
-
单击“确定”。
日志转储
日志可以转储至对象存储服务OBS中长期存储,也可转储至数据接入服务DIS做大数据分析和业务系统二次开发。您可以根据业务场景选择转储类型。
前提条件
-
已完成日志接入配置。
-
已购买OBS或DIS。
转储至OBS
-
在云日志服务管理控制台,左侧导航栏中,单击“日志转储”。
-
在“日志转储”页面右上角,单击“配置转储”。
-
在“配置转储”页面,设置转储日志相关参数。
表1 配置转储参数说明 参数名称
说明
样例
日志组名称
选择已创建的日志组。
-
企业项目
选择已创建的企业项目。
-
日志流名称
选择已创建的日志流。
-
转储方式
选择转储方式为OBS。
OBS
OBS桶
-
选择已创建的OBS桶。如果没有可选择的OBS桶,单击“查看OBS”,进入对象存储服务管理控制台,创建OBS桶。
-
LTS目前仅支持存储类别为“标准存储”和“低频访问存储”的OBS桶。
-
自定义转储路径
-
开启:将日志转储至自定义路径中,用于区分不同日志流之间的转储日志文件。
格式为:/LogTanks/RegionName/自定义转储路径。格式需要符合如下规范:-
“/LogTanks/RegionName”为系统默认路径,不可以修改。
-
自定义转储路径名称不允许为空,长度限制为1~64个字符。
-
名称只能由英文大小写字母、数字、中划线“-”、下划线“_”、小数点“.”和“/”组成。
示例:输入LTS-test,则日志转储路径为:LogTanks_RegionName_LTS-test_2019_01_01_日志文件名称。
-
-
不开启:将日志转储至系统默认路径中。系统默认路径为:LogTanks_RegionName_2019_01_01_日志组_日志流_日志文件名称。
LTS-test
日志文件前缀
转储至OBS桶中的日志文件前缀。
日志文件前缀需符合如下规范:
-
名称长度限制为0~64个字符。
-
名称只能由英文大小写字母、数字、中划线“-”、下划线“_”和小数点“.”组成。
示例:输入LTS-log,则日志文件名称为:LTS-log_日志文件名称。
LTS-log
转储格式
用于配置日志的转储格式,可选择“原始日志格式”和“Json格式”。
-
原始日志格式示例:
云日志服务控制台展示的日志内容的格式为原始日志格式。Sep 30 07:30:01 ecs-bd70 CRON[3459]: (root) CMD (/opt/oss/servicemgr/ICAgent/bin/manual/mstart.sh > /dev/null 2>&1)
-
JSON格式示例:
{"host_name":"ecs-bd70","ip":"192.168.0.54","line_no":249,"message":"Sep 30 14:40:01 ecs-bd70 CRON[4363]: (root) CMD (/opt/oss/servicemgr/ICAgent/bin/manual/mstart.sh > /dev/null 2>&1)\n","path":"/var/log/syslog","time":1569825602303}
Json
是否开启转储
选择开启转储。
开启
转储周期
日志自动转储至OBS桶的时间间隔,支持2分钟、5分钟、30分钟、1小时、3小时、6小时、12小时。
3小时
-
-
单击“确定”,完成配置。
转储至DIS
-
在云日志服务管理控制台,左侧导航栏中,单击“日志转储”。
-
在“日志转储”页面右上角,单击“配置转储”。
-
在“配置转储”页面,设置转储日志相关参数。
表1 配置转储参数说明 参数名称
说明
样例
日志组名称
选择已创建的日志组。
-
企业项目
选择已创建的企业项目。
-
日志流名称
选择已创建的日志流。
-
转储方式
选择转储方式为DIS。
DIS
通道名称
选择已创建的DIS通道。如果没有可选择的通道,单击“查看DIS通道”,进入数据接入服务管理控制台,创建接入通道。
-
转储格式
用于配置日志的转储格式,可选择“原始日志格式”和“JSON格式”。
-
原始日志格式示例:
云日志服务控制台展示的日志内容的格式为原始日志格式。Sep 30 07:30:01 ecs-bd70 CRON[3459]: (root) CMD (/opt/oss/servicemgr/ICAgent/bin/manual/mstart.sh > /dev/null 2>&1)
-
JOSN格式示例:
{"host_name":"ecs-bd70","ip":"192.168.0.54","line_no":249,"message":"Sep 30 14:40:01 ecs-bd70 CRON[4363]: (root) CMD (/opt/oss/servicemgr/ICAgent/bin/manual/mstart.sh > /dev/null 2>&1)\n","path":"/var/log/syslog","time":1569825602303}
JSON
是否开启转储
选择开启转储。
开启
转储周期
日志将实时转储至DIS通道中。
实时
-
-
单击“确定”,完成配置。
- 点赞
- 收藏
- 关注作者
评论(0)