云服务器内容精选

  • 创建消息模板 登录 云日志 服务控制台。 左侧导航选择“日志告警”,进入告警页面,选择“告警行动规则”。 消息模板默认有以下内置模板,当您所选择的消息模板中未配置消息内容时,云日志服务默认使用内置模板。 关键词模板:关键词告警模板 keywords_template:关键词告警英文模板 sql模板:sql告警模板 sql_template:sql告警英文模板 在消息模板页签,单击“创建”,在界面右侧弹出的“创建消息模板”页面中,配置消息模板的相关参数。 邮件内容支持html标签和消息预览。 企业微信、钉钉、飞书支持markdown语法和消息预览。 针对 AOM 和LTS,最多可以创建100(包含)条消息模板,如果消息模板数量已达上限100个时,请删除不需要的消息模板后重新创建。 表1 配置消息模板参数 参数名称 说明 校验规则 样例 模板名称 消息模板的名称 输入内容只能是数字、字母、下划线、汉字、中划线,且不能以下划线、中划线等特殊符号开头和结尾。长度不能超过100个字符。 LTS-test 模板描述 对消息模板的描述 输入内容只能是数字、字母、下划线、汉字,且不能以下划线等特殊符号开头和结尾。长度不能超过1024个字符。 - 消息头语言 系统在发送消息时会默认添加消息头 中文(简体) 英文 中文:“尊敬的用户...” 英文:“Dear User...” 通知方式 消息的通知方式类型 邮件 短信 HTTP/HTTPS 钉钉 飞书 企业微信 语音 说明: 语音功能仅针对白名单用户提交工单申请使用。详细操作请参考提交工单。 - 主题 消息的主题 支持自定义主题名称和使用变量命名主题两种方式。主题名称长度不能超过512个字符。 仅邮件类型支持配置消息主题。 test 正文 消息的内容 添加变量: 规则原始名称:${event_name} 告警级别:${event_severity} 发生时间:${starts_at} 发生区域:${region_name} 华为云账号:${domain_name} 告警源:$event.metadata.resource_provider 资源类型:$event.metadata.resource_type 资源标识:${resources} 告警状态:$event.annotations.alarm_status 表达式:$event.annotations.condition_expression 当前值:$event.annotations.current_value 表达式带值:$event.annotations.condition_expression_with_value 统计周期:$event.annotations.frequency 规则名称:$event.annotations.alarm_rule_alias 通知频率:$event.annotations.notification_frequency 日志组原始名称:$event.annotations.results[0].log_group_name 日志流原始名称:$event.annotations.results[0].log_stream_name 关键词告警支持的变量 查询时间:$event.annotations.results[0].time 查询日志:(日志长度最多2KB,超过2KB被截断丢弃) $event.annotations.results[0].raw_results 查询URL: $event.annotations.results[0].url 日志组/日志流名称:$event.annotations.results[0].resource_id 说明: 只支持添加首次创建的日志组/日志流原始名称,不支持添加修改后的日志组/日志流名称。 日志流的企业项目ID:$event.annotations.results[0].eps_id 查询自定义字段$event.annotations.results[0].fields.xxx 说明: xxx表示原始日志的结构化字段和内置字段(hostIP、hostName等),日志字段长度最多1KB,超过1KB被截断丢弃。 SQL告警支持的变量 图表0的日志组/流名称:$event.annotations.results[0].resource_id 说明: 只支持添加首次创建的日志组/日志流原始名称,不支持添加修改后的日志组/日志流名称。 0代表第一个图表,1代表第二个图表,以此类推。 图表0的查询语句:$event.annotations.results[0].sql 图表0的查询时间:$event.annotations.results[0].time 图表0的查询URL:$event.annotations.results[0].url 图表0的查询日志:$event.annotations.results[0].raw_results 图表0的日志流的企业项目ID:$event.annotations.results[0].eps_id 复制模板: keywords_template sql_template sql模板 关键词模板 自定义模板(用户通过添加变量创建的消息模板) ${event_name} ${event_severity} ${starts_at} ${region_name} 配置完成后,单击“确定”。 在LTS页面创建消息模板时提示“创建消息模板失败,名称不能重复”,可以参考如下步骤进行排查处理。 请检查消息模板名称是否有重复。 若有重复,请重新修改消息模板名称。因为,LTS的消息模板数据源与AOM消息模板数据源为同一个,消息模板名称不能重复,如果在AOM中创建了名称为test的消息模板,在LTS页面不能创建同名的消息模板。 请检查消息模板数量是否超过100个。 针对AOM和LTS,最多可以创建100(包含)条消息模板,当消息模板数量已达上限100个时,请删除不需要的消息模板后重新创建。
  • 参考示例2:根据关键字出现的次数设置告警 如果您希望在一定时间范围内日志关键字出现的次数达到指定次数时,才触发告警,则您可以参考本示例设置查询分析语句和SQL告警规则。以下示例仅供参考,请以实际业务为准。 使用“SELECT count(*) as Error”在目标日志流查询当前Error总共出现90次。 图4 查询结果 查询语句:选择查询时间范围为5分钟,然后执行如下语句“SELECT count(*) as Error”,统计5分钟内出现Error关键字的次数。更多搜索语法请参考SQL分析语法介绍。 图5 查询语句 告警通知:创建上述告警规则后,只要日志中出现Error关键字超过2次,您就可以在“告警列表”收到告警通知。您还可以单击告警名称,查看告警详情,进行溯源。 图6 告警报错
  • 参考示例1:出现关键字即触发告警 如果您希望日志中出现目标关键字时,就能触发告警,则您可以参考本示例设置查询语句和关键词告警规则。以下示例仅供参考,请以实际业务为准。 设置的关键字一定是日志流存在的关键字,例如Error关键字。 图1 查询结果 查询语句:选择查询时间范围为15分钟,然后执行如下语句,查询包含Error关键字的日志。更多搜索语法请参考LTS搜索语法介绍。 图2 查询语句 告警通知:创建上述告警规则后,只要日志中出现Error关键字,您就可以在“告警列表”收到告警通知。您还可以单击告警名称,查看告警详情,进行溯源。 图3 告警报错
  • 创建多个告警规则 支持批量创建多个告警规则。 在“告警规则”页面,批量导入告警规则。 单击“导入”,进入导入告警规则页面。 下载告警模板到本地填写完成。 单击“选择文件”,选择本地填写好的文件。 确认导入的规则信息无误后,单击“导入”。 导入成功后,在规则列表下方显示告警规则明细。 单击“批量编辑”,进入批量编辑告警规则页面。 在基本配置下方,输入告警规则数量,单击“添加告警规则”。 或者单击“导入”,批量导入告警规则。 在规则列表下方默认已有1个告警规则,最多支持再添加199个数量,因此支持同时添加200个告警规则。 在规则列表下方,请参考创建关键词告警规则、创建SQL告警规则、创建单个搜索分析告警(管道符方式-邀测)设置告警规则,设置完成后,单击“提交”。 一个告警规则设置完成后,单击“应用于其他告警规则”即可将该告警规则复制到其他告警规则。 例如添加了4个告警规则,批量创建成功后,在告警规则页签下方,就会显示4条告警规则。
  • 功能优势 易于开始,便于复制。 日志接入LTS后,即可创建告警规则和通知策略,支持实时接收潜在的告警事件并响应。 高可用性与可靠性。 依托于LTS的高可用性与数据可靠性,告警服务的可用性达到99.9%,告警相关的数据可靠性高于99.99999999%。 低成本与免运维。 目前LTS暂时不收取告警规则、告警管理等其他费用,降低告警系统的运维成本和运维人员的时间成本。后续如有收费计划将至少提前1个月通知您。 短信通知按实际用量付费,详细请参考 消息通知 服务的计费说明。语音是白名单功能,具体收费请参考计费说明。 快速响应异常问题。 更全面、更智能的告警监控能力与告警行动规则能力,使告警的响应变得更迅速,提高问题解决的速度,减少因业务异常造成的损失。
  • 查看告警 登录云日志服务控制台。 左侧导航选择“日志告警”。 默认显示“告警列表”页面,在该页面默认显示30分钟(相对)的所有告警列表及其趋势图。 输入查询条件后进行搜索,页面会展示该条件下的所有告警信息及这些告警的趋势图,具体查询条件如下: 在页面上方搜索框中可根据日志组、日志流、告警级别、规则名称进行搜索。 设置时间范围,默认时间范围为30分钟(相对)。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据。 设置搜索条件后,单击,查找在已设时间范围内满足搜索条件的告警。 查询的告警默认显示在“活动告警”页签下,将鼠标放在目标告警所在行中的“告警详情”可查看告警详情。单击告警列表中对应的“名称”,界面右侧弹出该告警的详细信息。 告警故障已经解除时,可单击列表中告警所在行后的删除按钮对该告警进行清除,被执行清除操作后的告警将会显示在“历史告警”页签。 针对已设置好的搜索条件,告警列表默认需要手动刷新,如需设置自动刷新可单击告警界面右上角,在弹出的下拉列表中选择“30秒自动刷新”、“1分钟自动刷新”或“5分钟自动刷新”,若在设置自动刷新后需要手动刷新,也可在下拉列表重新选择“手动刷新”。
  • 参考示例2:根据关键字出现的次数设置告警 如果您希望在一定时间范围内日志关键字出现的次数达到指定次数时,才触发告警,则您可以参考本示例设置查询分析语句和SQL告警规则。以下示例仅供参考,请以实际业务为准。 使用“SELECT count(*) as Error”在目标日志流查询当前Error总共出现90次。 图4 查询结果 查询语句:选择查询时间范围为5分钟,然后执行如下语句“SELECT count(*) as Error”,统计5分钟内出现Error关键字的次数。更多搜索语法请参考SQL分析语法介绍。 图5 查询语句 告警通知:创建上述告警规则后,只要日志中出现Error关键字超过2次,您就可以在“告警列表”收到告警通知。您还可以单击告警名称,查看告警详情,进行溯源。 图6 告警报错
  • 设置容器日志存储路径 在CCE中创建工作负载时,添加容器后,展开“容器日志”配置区域。 图1 容器日志 单击“添加日志策略”,设置自定义日志参数,配置日志策略,以nginx为例,不同工作负载根据实际情况配置。 图2 添加日志策略 存储类型有“主机路径”和“容器路径”两种类型可供选择: 表1 配置日志策略 参数 参数说明 存储类型 主机路径:HostPath模式,将主机路径挂载到指定的容器路径(挂载路径)。用户可以在节点的主机路径中查看到容器输出在挂载路径中的日志信息。 容器路径:EmptyDir模式,将节点的临时路径挂载到指定的路径(挂载路径)。临时路径中存在的但暂未被采集器上报到AOM的日志数据在Pod实例删除后会消失。 添加容器挂载 *主机路径 请输入主机的路径,如:/var/paas/sys/log/nginx 挂载路径 请输入数据存储要挂载到容器上的路径,如:/tmp 须知: 请不要挂载到系统目录下,如“/”、“/var/run”等,否则会导致容器异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响容器启动的文件,否则文件会被替换,导致容器启动异常,工作负载创建失败。 挂载高危目录的情况下 ,建议使用低权限帐号启动,否则可能会造成宿主机高危文件被破坏。 AOM只采集最近修改过的前20个日志文件,且默认采集两级子目录。 AOM只采集挂载路径下的“.log”、“.trace”、“.out”文本日志文件。 容器中挂载点的权限设置方法,请参见为Pod或容器配置安全性上下文。 主机扩展路径 仅“主机路径”类型需要填写 通过实例的ID或者容器的名称扩展主机路径,实现同一个主机路径下区分来自不同容器的挂载。 会在原先的“卷目录/子目录”中增加一个三级目录。使用户更方便获取单个Pod输出的文件。 None:不配置拓展路径。 PodUID:Pod的ID。 PodName:Pod的名称。 PodUID/ContainerName:Pod的ID/容器名称。 PodName/ContainerName:Pod名称/容器名称。 采集路径 设置采集路径可以更精确的指定采集内容,当前支持以下设置方式: 不设置则默认采集当前路径下.log .trace .out文件 设置**表示递归采集5层目录下的.log .trace .out文件 设置*表示模糊匹配 例子: 采集路径为/tmp/**/test*.log表示采集/tmp目录及其1-5层子目录下的全部以test开头的.log文件。 注意: 使用采集路径功能请确认您的采集器ICAgent版本为5.12.22或以上版本。 日志转储 此处日志转储是指日志的本地绕接。 设置:AOM每分钟扫描一次日志文件,当某个日志文件超过50MB时,会立即对其转储(转储时会在该日志文件所在的目录下生成一个新的zip文件。对于一个日志文件,AOM只保留最近生成的20个zip文件,当zip文件超过20个时,时间较早的zip文件会被删除),转储完成后AOM会将该日志文件清空。 不设置:若您在下拉列表框中选择“不设置”,则AOM不会对日志文件进行转储。 说明: AOM的日志绕接能力是使用copytruncate方式实现的,如果选择了设置,请务必保证您写日志文件的方式是append(追加模式),否则可能出现文件空洞问题。 当前主流的日志组件例如Log4j、Logback等均已经具备日志文件的绕接能力,如果您的日志文件已经实现了绕接能力,则无需设置。否则可能出现冲突。 建议您的业务自己实现绕接,可以更灵活的控制绕接文件的大小和个数。 多行日志 有些程序打印的日志存在一条完整的日志数据跨占多行(例如 Java 程序日志)情况,日志采集系统默认是按行采集。如果您想在日志采集系统中按整条显示日志,可以开启多行日志,采用时间或正则匹配的方式,当某行日志匹配上预先设置的时间格式或正则表达式,就认为是一条日志的开头,而下一个行首出现作为该条日志的结束标识符。 分行模式: 日志时间:请输入时间通配符。时间通配符填写参考示例:如日志中的时间是2017-01-01 23:59:59,按照规则应该填写:YYYY-MM-DD hh:mm:ss。 正则模式:请输入正则表达式。 添加容器挂载 单击后可配置多条容器挂载路径,即一个主机路径可对应多个容器挂载路径。 单击“确定”,并完成创建工作负载。
  • 操作场景 CCE支持配置工作负载日志策略,便于日志的统一收集、管理和分析,以及按周期防爆处理。 CCE配合AOM收集工作负载的日志,在创建节点时会默认安装AOM的ICAgent(在集群kube-system命名空间下名为icagent的DaemonSet),ICAgent负责收集工作负载的日志并上报到AOM,您可以在CCE控制台和AOM控制台查看工作负载的日志。 默认情况下,ICAgent会采集容器的标准输出,您无需做任何设置。 您还可以在创建工作负载的时候设置容器日志存储路径,ICAgent会采集该路径下日志。 容器日志可以选择主机路径和容器路径两种模式。 主机路径:HostPath模式,将主机路径挂载到指定的容器路径(挂载路径)。用户可以在节点的主机路径中查看到容器输出在挂载路径中的日志信息。 容器路径:EmptyDir模式,将节点的临时路径挂载到指定的路径(挂载路径)。临时路径中存在的但暂未被采集器上报到AOM的日志数据在Pod实例删除后会消失。
  • 设置容器日志存储路径-使用kubectl 您可以通过在YAML定义的方式设置容器日志存储路径。 如下所示,使用EmptyDir挂载到容器的“/var/log/nginx”路径下,这样ICAgent就会采集容器“/var/log/nginx”路径下的日志。其中policy字段是CCE自定义的字段,能够让ICAgent识别并采集日志。 apiVersion: apps/v1kind: Deploymentmetadata: name: testlog namespace: defaultspec: selector: matchLabels: app: testlog template: replicas: 1 metadata: labels: app: testlog spec: containers: - image: 'nginx:alpine' name: container-0 resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi volumeMounts: - name: vol-log mountPath: /var/log/nginx policy: logs: rotate: '' volumes: - emptyDir: {} name: vol-log imagePullSecrets: - name: default-secret 使用HostPath方法如下所示,相比EmptyDir就是volume的类型变成hostPath,且需要配置hostPath在主机上的路径。下面示例中将主机上“/tmp/log”挂载到容器的“/var/log/nginx”路径下,这样ICAgent就会采集容器“/var/log/nginx”路径下的日志,且日志还会在主机的“/tmp/log”路径下存储。 apiVersion: apps/v1kind: Deploymentmetadata: name: testlog namespace: defaultspec: replicas: 1 selector: matchLabels: app: testlog template: metadata: labels: app: testlog spec: containers: - image: 'nginx:alpine' name: container-0 resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi volumeMounts: - name: vol-log mountPath: /var/log/nginx readOnly: false extendPathMode: PodUID policy: logs: rotate: Hourly annotations: pathPattern: '**' format: '' volumes: - hostPath: path: /tmp/log name: vol-log imagePullSecrets: - name: default-secret 表2 关键参数解释 参数 中文解释 说明 extendPathMode 主机扩展路径 通过实例的ID或者容器的名称扩展主机路径,实现同一个主机路径下区分来自不同容器的挂载。 会在原先的“卷目录/子目录”中增加一个三级目录。使用户更方便获取单个Pod输出的文件。 None:不配置拓展路径。 PodUID:Pod的ID。 PodName:Pod的名称。 PodUID/ContainerName:Pod的ID/容器名称。 PodName/ContainerName:Pod名称/容器名称。 policy.logs.rotate 日志转储 此处日志转储是指日志的本地绕接。 设置:AOM每分钟扫描一次日志文件,当某个日志文件超过50MB时,会立即对其转储(转储时会在该日志文件所在的目录下生成一个新的zip文件。对于一个日志文件,AOM只保留最近生成的20个zip文件,当zip文件超过20个时,时间较早的zip文件会被删除),转储完成后AOM会将该日志文件清空。 不设置:若您在下拉列表框中选择“不设置”,则AOM不会对日志文件进行转储。 说明: AOM的日志绕接能力是使用copytruncate方式实现的,如果选择了设置,请务必保证您写日志文件的方式是append(追加模式),否则可能出现文件空洞问题。 当前主流的日志组件例如Log4j、Logback等均已经具备日志文件的绕接能力,如果您的日志文件已经实现了绕接能力,则无需设置。否则可能出现冲突。 建议您的业务自己实现绕接,可以更灵活的控制绕接文件的大小和个数。 policy.logs.annotations.pathPattern 采集路径 设置采集路径可以更精确的指定采集内容,当前支持以下设置方式: 不设置则默认采集当前路径下.log .trace .out文件 设置**表示递归采集5层目录下的.log .trace .out文件 设置*表示模糊匹配 例子: 采集路径为/tmp/**/test*.log表示采集/tmp目录及其1-5层子目录下的全部以test开头的.log文件。 注意: 使用采集路径功能请确认您的采集器ICAgent版本为5.12.22或以上版本。 policy.logs.annotations.format 多行日志匹配 有些程序打印的日志存在一条完整的日志数据跨占多行(例如 Java 程序日志)情况,日志采集系统默认是按行采集。如果您想在日志采集系统中按整条显示日志,可以开启多行日志,采用时间或正则匹配的方式,当某行日志匹配上预先设置的时间格式或正则表达式,就认为是一条日志的开头,而下一个行首出现作为该条日志的结束标识符。 格式如下 { "multi": { "mode": "time", "value": "YYYY-MM-DD hh:mm:ss" }} multi表示分行模式: time:日志时间,请输入时间通配符。时间通配符填写参考示例:如日志中的时间是2017-01-01 23:59:59,按照规则应该填写:YYYY-MM-DD hh:mm:ss。 regular:正则模式,请输入正则表达式。