【云小课】应用平台第32课 如何通过LTS实现上云应用的日志分析和管理?

举报
应用万花筒. 发表于 2022/02/24 16:36:55 2022/02/24
【摘要】 在云时代,广泛的互联网企业纷纷上云,给云端应用运维带来了全新的挑战。开发和运维人员需要通过应用运行的日志,了解应用的运行状态、监控日志中的异常信息,并通过对日志分析来定位问题根因。云日志服务(LTS)通过收集和管理各类日志,提供运维保障,帮助用户解决日常运维过程中的问题。那么如何通过LTS实现上云应用的日志分析和管理呢?今天小云就带大家一探究竟~

1645669265502073699.jpg

LTS支持的功能有日志接入日志搜索日志分析日志告警日志转储等,下面将为大家介绍具体的操作步骤。

日志接入

云日志服务提供实时日志采集功能,支持主机接入、云服务接入等多种日志采集方式,采集日志后,日志数据可以在云日志控制台以简单有序的方式展示,方便运维人员进行运维分析。

  1. 在云日志服务管理控制台,单击“日志接入”,进入日志接入页面。

  2. 单击右上角“接入日志”,进入选择日志接入类型页面。

  3. 在选择日志接入类型页面,您可以选择主机接入、云服务接入、SDK接入或者API接入。

以采集ELB日志为例:

  1. 登录管理控制台。

  2. 在控制台左上角单击,选择区域和项目。

  3. 在系统首页左上角单击,选择“网络 > 弹性负载均衡”。

  4. 在“负载均衡器”界面,单击需要配置访问日志的负载均衡器名称。

  5. 选择“访问日志”页签,单击“配置访问日志”,打开“启动日志记录”按钮,选择已创建的日志组与日志流,经ELB日志接入到云日志服务该日志组和日志流下。如未创建日志组与日志流,请先创建日志组创建日志流


日志搜索

您可以通过本操作设置关键字和时间范围进行日志搜索,例如搜索近一小时内ELB日志错误码为500的日志。

  1. 在云日志服务管理控制台,单击“日志管理”。

  2. 在日志组列表中,单击接入ELB日志的日志组名称。

  3. 在日志流列表中,单击接入ELB日志的日志流名称。

    您还可以在日志流“操作”列中,单击“搜索”进入日志流详情页面。

  4. 在右上角选择时间范围“近1小时”。

  5. 在页面搜索区域,单击搜索框,在弹出的下拉列表中选择“status”并输入“500”,单击,开始搜索。

    显示近一小时内ELB日志错误码为500的日志,如图1 搜索日志所示。status字段开启快速分析后会同步现在执行正常和异常状态占比。

  6. 单击“查看上下文”可以查看对应日志详情及上下文,了解该问题发生时的应用运行状态。

    图1 搜索日志


    • 设置日志结构化后,下拉框会同步显示系统内置字段及结构化配置的字段。

    • 创建快速分析后,LTS会统计对应字段在日志流的日志文件中出现的条数,并生成日志指标(百分比)


日志分析

日志记录了在系统运行期间发生的事件,可以用来了解系统活动和诊断问题。例如ELB在外部流量分发时,会记录HTTP(S)详细的访问日志记录,包含URI请求、客户端IP和端口、状态码等信息,可以用来统计1周内的UV和PV、1天内所有URI请求分布条数。

前提条件

已完成ELB日志接入

  1. 在日志流详情页面,单击左侧导航栏“配置中心”,选择“结构化配置”,进入日志结构化配置页面。

  2. 选择“结构化模板”提取方式,选择“系统模板 > ELB”,单击“保存”,如图2 配置ELB结构化模板所示。

    图1 配置ELB结构化模板

  3. 在日志流详情页面,单击“可视化”,进入可视化页面对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. 在云日志服务管理控制台,单击“告警”。

  2. 在告警页面默认显示“告警列表”,单击“告警规则”切换至告警规则页面。

  3. 单击“创建”,在界面右侧弹出“新建告警规则”页面。

  4. 在“新建告警规则”页面,配置告警规则相关参数。

    表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界面新建主题,具体操作如下所示。

    1. 创建一个主题,操作详见创建主题。例如,创建名称为Topic1的主题。

    2. 设置主题策略,操作详见设置主题策略

      设置主题策略时,“可发布消息的服务”必须选择“APM”,否则会导致通知发送失败

    3. 为主题添加相关的订阅者,即通知的接收人(例如,邮件或短信),SMN可以实时地将告警信息以广播的方式通知这些订阅者,操作详见订阅主题

      例如,订阅者设置为该运维人员的邮箱。

    若您需要修改时区/语言,可单击“修改”,在账号中心里进行首选项设置

    若没有可选的消息模板,可单击创建消息模板


    当“发送通知”中选择“发送”时,该参数为必选。

    -


  5. 单击“确定”。


日志转储

日志可以转储至对象存储服务OBS中长期存储,也可转储至数据接入服务DIS做大数据分析和业务系统二次开发。您可以根据业务场景选择转储类型。

前提条件

  • 已完成日志接入配置。

  • 已购买OBS或DIS。


转储至OBS

  1. 在云日志服务管理控制台,左侧导航栏中,单击“日志转储”。

  2. 在“日志转储”页面右上角,单击“配置转储”。

  3. 在“配置转储”页面,设置转储日志相关参数。

    表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小时


  4. 单击“确定”,完成配置。


转储至DIS

  1. 在云日志服务管理控制台,左侧导航栏中,单击“日志转储”。

  2. 在“日志转储”页面右上角,单击“配置转储”。

  3. 在“配置转储”页面,设置转储日志相关参数。

    表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通道中。

    实时


  4. 单击“确定”,完成配置。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。