日志服务提供服务日志功能,用于记录操作日志、消费组延迟日志、Logtail告警日志、Logtail采集日志和Logtail状态日志,帮助您实时掌握日志服务的使用状况,提高运维效率。

前提条件

已开通服务日志。更多信息,请参见开通服务日志

背景信息

监控服务日志主要分为如下两类:
  • 详细日志:记录Project内所有资源创建、修改、更新、删除等操作日志和数据读写日志。将保存在Logstore名称为internal-operation_log的指定Project中。
  • 重要日志:包括Logstore粒度的消费组消费延时日志、Logtail心跳日志。将保存在Logstore名称为internal-diagnostic_log的指定Project中。

监控Logtail心跳

您可以通过Logtail状态日志,检查Logtail的工作状态。

  • 查询Logtail状态日志
    internal-diagnostic_log Logstore的查询分析页面,执行__topic__: logtail_status。Logtail状态日志示例如下:
    {
        "os_detail": "Windows Server 2012 R2",
        "__time__": 1645164875,
        "__topic__": "logtail_status",
        "memory": "25",
        "os": "Windows",
        "__source__": "log_service",
        "ip": "203.**.**.110",
        "cpu": "0.010405",
        "project": "aliyun-test-project",
        "version": "1.0.0.22",
        "uuid": "bf00****688b0",
        "hostname": "iZ1****Z",
        "instance_id": "5897****4735",
        "__pack_meta__": "0|MTYzNjM1Mzk5NDExMTcxOTQzNw==|1|0",
        "user_defined_id": "",
        "user": "SYSTEM",
        "detail_metric": "{\n\t\"config_count\" : \"1\",\n\t\"config_get_last_time\" : \"2022-02-18 14:14:23\",\n\t\"config_prefer_real_ip\" : \"false\"...
        "status": "ok"
    }
  • 统计Logtail心跳正常个数,并配置告警。如果查询分析结果低于Logtail所绑定的机器组中的总机器数则触发告警。
    1. 查询语句
      __topic__: logtail_status | SELECT COUNT(DISTINCT ip) as ip_count
    2. 配置告警规则(此处假设总机器数为100)

      告警规则详细参数配置请参见快速设置日志告警

      如果产生告警,您可以在日志服务控制台上查看机器组状态,排查心跳异常的机器。更多信息,请参见Logtail机器组无心跳排查思路

      告警配置

查看消费组延时

在日志服务中,除了查询分析日志外,还可以通过消费组对日志进行消费。更多信息,请参见通过消费组消费日志数据

在使用消费组消费时,您可以通过消费组延时日志了解当前的消费进度,当延时较大时,可以及时调整消费者个数等方式来改进消费速度。消费组延时日志示例如下:
{
    "__time__": 1645166007,
    "consumer_group": "consumerGroupX",
    "__topic__": "consumergroup_log",
    "__pack_meta__": "1|MTYzNjM1Mzk5NDExMTg5NjU2Mg==|3|0",
    "__source__": "log_service",
    "project": "aliyun-test-project",
    "fallbehind": "9518678",
    "shard": "1",
    "logstore": "nginx-moni"
}
internal-diagnostic_log Logstore查询分析页面,执行__topic__: consumergroup_log查询语句,即可查询消费组延时日志。例如执行如下语句,查询消费组名称为consumerGroupX这个消费组的消费延时情况。
__topic__: consumergroup_log and consumer_group: consumerGroupX | SELECT max_by(fallbehind, __time__) as fallbehind

监控Logtail异常情况

您可以通过Logtail告警日志,及时发现Logtail异常状况,调整Logtail配置,确保日志不丢失。

internal-diagnostic_log Logstore查询分析页面,执行__topic__: logtail_alarm查询语句,即可查询Logtail告警日志。例如执行如下语句,查询分析15分钟内各种异常类型发生的次数。
__topic__: logtail_alarm | select sum(alarm_count)as errorCount, alarm_type  GROUP BY alarm_type

操作审计

日志服务Project下所有资源的操作日志保存在internal-operation_log Logstore中,可用于操作审计。每条操作日志记录了操作相关的信息,例如创建机器组会记录机器组名称,操作Logstore会记录Logstore名称等,还记录了操作对应的用户信息。用户信息分类如下表所示:
类型 字段
阿里云账号
  • InvokerUid:阿里云账号ID
  • CallerType:Parent
RAM用户
  • InvokerUid:RAM用户的UID
  • CallerType:Subuser
Sts
  • InvokerUid:阿里云账号ID
  • CallerType:Sts
  • RoleSessionName:session名称
操作日志的示例如下:
{
    "NetOutFlow": "1",
    "InvokerUid": "1418****2562",
    "CallerType": "Sts",
    "InFlow": "0",
    "SourceIP": "203.**.**.220",
    "__pack_meta__": "0|MTYzNjM1Mzk5MzY1NDYwODQzMg==|2|1",
    "RoleSessionName": "STS-ETL-WORKER",
    "APIVersion": "0.6.0",
    "UserAgent": "log-python-sdk-v-0.6.46, sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0), linux-consumergroup-etl-2bd3fdfdd63595d56b1ac24393bf5991",
    "InputLines": "0",
    "Status": "200",
    "__time__": 1645167812,
    "__topic__": "operation_log",
    "NetInflow": "0",
    "RequestId": "620F44C456458F67F72160A0",
    "LogStore": "nginx-moni",
    "__source__": "log_service",
    "Method": "PullData",
    "ClientIP": "203.**.**.330",
    "Latency": "2191",
    "Role": "aliyunlogetlrole",
    "NetworkOut": "0",
    "Project": "aliyun-test-project",
    "AccessKeyId": "STS.NUE****1hm",
    "Shard": "0"
}
internal-operation_log Logstore查询分析页面,查询操作失败(Status大于200)的请求数量。
Status>200 |select count(*) as pv