文档

AHAS流量防护事件上报至SLS

本文介绍如何将AHAS流量防护的触发事件上报至SLS,其中流量防护触发事件由sentinel-block.log采集。

前提条件

  • 已开通日志服务SLS。具体操作,请参见开通日志服务

  • 已创建ACK集群。具体操作,请参见创建Kubernetes专有版集群。本教程以ACK集群为例。

  • 已使用AHAS流量防护功能,且配置了流量防护规则。

开启日志采集组件

如果在创建ACK集群时已经开启了日志服务,可以跳过该步骤,否则可以按照以下步骤开启日志采集组件。详情可参考创建集群时启用Logtail

说明

此操作仅适用于专有版Kubernetes和托管版Kubernetes。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理

  3. 日志与监控页签,找到logtail-ds,然后单击安装

接入数据

设置SLS接入的数据来源。采集Sentinel日志记录并按解析格式上报至SLS。采集文件格式,请参见数据来源与解析格式

  1. 登录日志服务控制台

  2. 接入数据区域的搜索框中输入Kubernetes,然后单击Kubernetes-文件

  3. 选择日志空间步骤,选择项目Project日志库Logstore,然后单击下一步

    其中Project选择创建的名为k8s-log-{your_k8s_cluster_id}的Project,也可以选择其他Project。日志库Logstore可以选择已有的或者新建,具体操作,请参见创建Logstore

  4. 创建机器组步骤,单击使用现有机器组,选中目标机器组(k8s-group-${your_k8s_cluster_id}),将该机器组从源机器组移动到应用机器组,单击下一步

    如果选择了其他Project,可以按照页面提示创建机器组。

  5. Logtail配置步骤,设置数据来源与解析格式。配置完成后,单击下一步

    配置项

    说明

    配置名称

    输入配置名称。

    日志路径

    • 通过SDK或者Starter方式接入,${HOME}/logs/csp/sentinel-block.log 为固定路径进行采集,其中${HOME}替换为系统的主目录。

    • 通过应用市场AHAS Sentinel pilot方式,设置为/var/lib/aliyunahas/**/sentinel-block.log

    • 其他方式或自定义日志路径的情况,以实际目录为准。

    • 具体路径,请参见重要日志

    模式

    选择完整正则模式

    日志样例

    输入如下内容进行设置。

    2023-05-15 21:32:36|1|/hello,FlowException,default,,55206,1684157556000|2,0,0

    提取字段

    打开提取字段开关。单击手动输入正则表达式并输入如下正则内容。

    (\d+-\d+-\d+\s\d+:\d+:\d+)\|1\|([\s\S]*),([a-zA-Z]+),([a-zA-Z]+),([\s\S]*),(\d+),(\d+)\|(\d+),0,(\d+)

    日志抽取内容

    输入正则内容后,单击验证显示日志抽取内容。为抽取的内容设置Key值,用于后续SLS统计。本文实例值分别为:time、resource、expType、limitApp、origin、ruleId、timestamp、blockNum以及n。

    Logtail配置示例

    路径配置.png

    正则.png

  6. 查询分析步骤,等待预览数据右侧的自动刷新完成。添加索引字段,然后单击下一步

    字段名称

    类型

    别名

    __tag__:_namespace_

    text

    namespace

    __tag__:container_name_

    text

    appName

    ruleId

    long

    无需填写

    resource

    text

    time

    text

    expType

    text

    blockNum

    double

  7. 单击查询日志返回Project。

监控上报验证

  1. 登录日志服务控制台

  2. 在对应Project可以看到监控指标已经上报至SLS新建的Logstore中。

    返回结果.png

常见问题

SLS控制台未显示相关日志

您可以登录容器服务管理控制台,单击对应的集群。在集群信息页面,单击通过CloudShell管理集群。输入如下命令进行验证。

cd ~/logs/csp/ # 替换为对应的日志路径

tail -n 10 sentinel-block.log

预期结果如下,表明已产生限流日志。如果没有产生对应日志,请检查前提条件是否配置正确,重点关注MSE控制台中流量防护规则配置是否正确以及是否发生限流。

lQLPJxda3dI_isDNAj7NCYKw-kR1uQt7qGAE9lcp8EC0AA_2434_574.png

相关文档

基于SLS的流量防护告警

  • 本页导读 (1)
文档反馈