Traefik 集成

编辑

版本

2.3.0 (查看全部)

兼容的 Kibana 版本

8.13.0 或更高版本

支持的无服务器项目类型
这是什么?

安全
可观测性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

概述

编辑

Traefik 是一种现代反向代理和负载均衡器,可帮助管理和路由传入的 Web 流量到用户的应用程序。它旨在动态调整用户基础设施的变化,使其易于部署和扩展用户的服务。Traefik 与容器化环境集成良好,并提供诸如自动 SSL 证书管理和对多个后端的支持等功能。

使用 Traefik 集成来

  • 收集与访问相关的日志。
  • 创建信息丰富的可视化,以跟踪使用趋势、衡量关键日志并获得可操作的业务见解。
  • 设置警报,通过在故障排除期间快速参考相关日志来最大程度地缩短平均检测时间 (MTTD) 和平均解决时间 (MTTR)。

数据流

编辑

Traefik 集成收集日志数据。

日志帮助用户记录用户机器上发生的事件。用户可以通过访问 Log 数据流来监控和排除 Traefik 实例的性能故障,其中包括客户端 IP、主机、用户名、请求地址、持续时间和内容。

数据流

  • access:收集与客户端 IP、主机、用户名、请求地址、持续时间和内容相关的信息。

注意

  • 用户可以在 Discoverlogs-* 索引模式中监控和查看 Traefik 摄取文档中的日志。

兼容性

编辑

Traefik 数据集已在 Traefik 1.6、1.7 和 2.9 版本中进行过测试。

先决条件

编辑

用户需要 Elasticsearch 来存储和搜索用户的数据,以及 Kibana 来可视化和管理数据。用户可以使用我们 Elastic Cloud 上托管的 Elasticsearch 服务(推荐),或在用户自己的硬件上自行管理 Elastic Stack。

设置

编辑

有关如何设置集成的分步说明,请参阅入门指南。

验证

编辑

成功配置集成后,单击 Traefik 集成的“资产”选项卡应显示可用仪表板的列表。单击为用户配置的数据流提供的仪表板。它应填充所需的数据。

指标

编辑

注意

  • 用于收集指标的 /health API 端点已从 Traefik v2 版本中删除。有关更多信息,请参阅此问题
  • 我们目前正在使用建议的替代方法来收集指标。请关注此问题以获取更多更新。

日志

编辑

访问日志

编辑

access 数据流收集 Traefik 访问日志。此数据流收集与客户端 IP、主机、用户名、请求地址、持续时间和内容相关的日志。

access 的示例事件如下

示例

access 的示例事件如下

{
    "@timestamp": "2024-02-09T11:53:32.609696286Z",
    "destination": {
        "address": "10.1.25.243",
        "ip": "10.1.25.243",
        "port": 80
    },
    "ecs": {
        "version": "8.11.0"
    },
    "event": {
        "category": [
            "web"
        ],
        "created": "2020-04-28T11:07:58.223Z",
        "duration": 59518533,
        "ingested": "2024-02-13T16:08:40.190327617Z",
        "kind": "event",
        "original": "{\"ClientAddr\": \"10.10.8.105:48376\",\"ClientHost\": \"175.16.199.10\",\"ClientPort\": \"48376\",\"ClientUsername\": \"-\",\"DownstreamContentSize\": 88,\"DownstreamStatus\": 200,\"Duration\": 59518533,\"OriginContentSize\": 88,\"OriginDuration\": 59428568,\"OriginStatus\": 200,\"Overhead\": 89965,\"RequestAddr\": \"api-students.unpad.ac.id\",\"RequestContentSize\": 0,\"RequestCount\": 75,\"RequestHost\": \"api-students.unpad.ac.id\",\"RequestMethod\": \"GET\",\"RequestPath\": \"/api/v1/study/140410210038/card/comment\",\"RequestPort\": \"-\",\"RequestProtocol\": \"HTTP/1.0\",\"RequestScheme\": \"http\",\"RetryAttempts\": 0,\"RouterName\": \"app-unpad-students-api-prod-app-unpad-students-api-api-students-unpad-ac-id-api@kubernetes\",\"ServiceAddr\": \"10.1.25.243:80\",\"ServiceName\": \"app-unpad-students-api-prod-app-unpad-students-api-80@kubernetes\",\"ServiceURL\": {\"Scheme\": \"http\",\"Opaque\": \"\",\"User\": null,\"Host\": \"10.1.25.243:80\",\"Path\": \"\",\"RawPath\": \"\",\"OmitHost\": false,\"ForceQuery\": false,\"RawQuery\": \"\",\"Fragment\": \"\",\"RawFragment\": \"\"},\"StartLocal\": \"2024-02-09T11:53:32.609696286Z\",\"StartUTC\": \"2024-02-09T11:53:32.609696286Z\",\"entryPointName\": \"web\",\"level\": \"info\",\"msg\": \"\",\"time\": \"2024-02-09T11:53:32Z\"}",
        "outcome": "success",
        "type": [
            "access"
        ]
    },
    "http": {
        "request": {
            "body": {
                "bytes": 0
            },
            "method": "GET"
        },
        "response": {
            "body": {
                "bytes": 88
            },
            "status_code": 200
        },
        "version": "1.0"
    },
    "log": {
        "level": "info"
    },
    "network": {
        "community_id": "1:Mgo2d5qbyedZ2JnxvcBh0BuPcWk=",
        "transport": "tcp"
    },
    "observer": {
        "egress": {
            "interface": {
                "name": "app-unpad-students-api-prod-app-unpad-students-api-80@kubernetes"
            }
        },
        "ingress": {
            "interface": {
                "name": "web"
            }
        },
        "product": "traefik",
        "type": "proxy",
        "vendor": "traefik"
    },
    "related": {
        "ip": [
            "10.10.8.105",
            "10.1.25.243"
        ]
    },
    "source": {
        "address": "10.10.8.105:48376",
        "ip": "10.10.8.105",
        "port": 48376
    },
    "tags": [
        "preserve_original_event"
    ],
    "traefik": {
        "access": {
            "origin": {
                "content_size": 88,
                "duration": 59428568,
                "status_code": 200
            },
            "overhead": 89965,
            "request_count": 75,
            "retry_attempts": 0,
            "router": {
                "name": "app-unpad-students-api-prod-app-unpad-students-api-api-students-unpad-ac-id-api@kubernetes"
            },
            "service": {
                "url": {
                    "domain": "10.1.25.243:80",
                    "force_query": false,
                    "fragment": "",
                    "opaque": "",
                    "path": "",
                    "raw_path": "",
                    "raw_query": "",
                    "user": null
                }
            }
        }
    },
    "url": {
        "domain": "api-students.unpad.ac.id",
        "original": "/api/v1/study/140410210038/card/comment",
        "scheme": "http"
    },
    "user": {
        "name": "-"
    }
}

ECS 字段参考

有关 ECS 字段的详细信息,请参阅以下文档

导出的字段
字段 描述 类型

@timestamp

事件时间戳。

date

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

event.dataset

事件数据集

constant_keyword

event.module

事件模块

constant_keyword

http.request.headers.*

受监控的 HTTP 请求的规范标头。

object

http.response.headers.*

受监控的 HTTP 响应的规范标头。

object

input.type

输入类型

keyword

log.offset

日志偏移量

long

traefik.access.origin.content_size

源服务器指定的内容长度,如果未指定则为 0。

long

traefik.access.origin.duration

源服务器(上游)返回其响应所花费的时间(以纳秒为单位)。

long

traefik.access.origin.headers.*

受监控的 HTTP 请求的规范标头。

object

traefik.access.origin.status_code

源服务器返回的 HTTP 状态代码。如果请求由此 Traefik 实例处理(例如,使用重定向),则此值将不存在 (0)。

long

traefik.access.origin.status_line

OriginStatus + 状态代码说明

keyword

traefik.access.overhead

Traefik 造成的处理时间开销(以纳秒为单位)

long

traefik.access.request_count

自 Traefik 实例启动以来收到的请求数。

long

traefik.access.retry_attempts

请求重试的次数

long

traefik.access.router.name

Traefik 路由器的名称

keyword

traefik.access.service.address

Traefik 后端的 IP:端口(从 ServiceURL 中提取)

keyword

traefik.access.service.duration

源服务器(上游)返回其响应所花费的时间(以纳秒为单位)。

long

traefik.access.service.url.domain

URL 的域

keyword

traefik.access.service.url.force_query

Traefik 特定的 URL 字段

boolean

traefik.access.service.url.fragment

URL 的片段

keyword

traefik.access.service.url.opaque

Traefik 特定的 URL 字段

keyword

traefik.access.service.url.original

通用日志格式中使用的 Traefik URL

keyword

traefik.access.service.url.path

URL 的路径

keyword

traefik.access.service.url.query

URL 的查询字符串

keyword

traefik.access.service.url.raw_path

Traefik 特定的 URL 字段

keyword

traefik.access.service.url.raw_query

Traefik 特定的 URL 字段

keyword

traefik.access.service.url.scheme

URL 的方案

keyword

traefik.access.service.url.username

URL 的用户名

keyword

traefik.access.user_identifier

是否为客户端的 RFC 1413 标识

keyword

变更日志

编辑
变更日志
版本 详细信息 Kibana 版本

2.3.0

增强功能 (查看拉取请求)
为运行状况数据流添加处理器支持。

8.13.0 或更高版本

2.2.0

增强功能 (查看拉取请求)
ECS 版本更新至 8.11.0。删除了 import_mappings。将 kibana 约束更新为 ^8.13.0。修改了字段定义,以删除 ecs@mappings 组件模板中多余的 ECS 字段。

8.13.0 或更高版本

2.1.0

增强功能 (查看拉取请求)
在 data_stream.dataset 上添加全局过滤器以提高性能。

8.9.0 或更高版本

2.0.0

增强功能 (查看拉取请求)
支持 traefik v2.x 访问日志。

8.9.0 或更高版本

1.11.1

增强功能 (查看拉取请求)
内联“通过引用”可视化。

8.9.0 或更高版本

1.11.0

增强功能 (查看拉取请求)
将包 format_version 更新为 3.0.0。

8.9.0 或更高版本

1.10.0

增强功能 (查看拉取请求)
为指标数据集启用时间序列数据流。这大大减少了指标的存储空间,并有望逐步提高查询性能。有关更多详细信息,请参阅https://elastic.ac.cn/guide/en/elasticsearch/reference/current/tsds.html

8.9.0 或更高版本

1.9.1

增强功能 (查看拉取请求)
health 数据流添加 metric_type 映射。

8.9.0 或更高版本

1.9.0

增强功能 (查看拉取请求)
health 数据流添加维度映射。

8.0.0 或更高版本

1.8.1

错误修复 (查看拉取请求)
向重命名处理器添加空值检查和 ignore_missing 检查。

8.0.0 或更高版本

1.8.0

增强功能 (查看拉取请求)
将所有权从 obs-service-integrations 重命名为 obs-infraobs-integrations。

8.0.0 或更高版本

1.7.0

增强功能 (查看拉取请求)
将可视化迁移到 lens。

8.0.0 或更高版本

1.6.1

增强功能 (查看拉取请求)
添加了类别和/或子类别。

8.0.0 或更高版本

1.6.0

增强功能 (查看拉取请求)
将 ECS 版本更新至 8.5.1。

8.0.0 或更高版本

1.5.0

增强功能 (查看拉取请求)
添加了基础设施类别。

8.0.0 或更高版本

1.4.2

错误修复 (查看拉取请求)
修复 ingest 管道中 community_id 处理器的 if 条件。

8.0.0 或更高版本

1.4.1

增强功能 (查看拉取请求)
删除未使用的可视化。

8.0.0 或更高版本

1.4.0

增强功能 (查看拉取请求)
在日志仪表板中将切片地图迁移到地图。

8.0.0 或更高版本

1.3.1

增强功能 (查看拉取请求)
添加多字段文档。

7.14.0 或更高版本
8.0.0 或更高版本

1.3.0

增强功能 (查看拉取请求)
更新至 ECS 8.0

7.14.0 或更高版本
8.0.0 或更高版本

1.2.2

错误修复 (查看拉取请求)
使用新的 GeoIP 数据库重新生成测试文件。

7.14.0 或更高版本
8.0.0 或更高版本

1.2.1

错误修复 (查看拉取请求)
将测试公共 IP 更改为支持的子集。

7.14.0 或更高版本
8.0.0 或更高版本

1.2.0

增强 (查看拉取请求)
发布 v8.0.0 的 traefik 包。

7.14.0 或更高版本
8.0.0 或更高版本

1.1.2

增强 (查看拉取请求)
与指南保持一致。

7.14.0 或更高版本

1.1.1

错误修复 (查看拉取请求)
修复检查 forwarded 标签的逻辑。

1.1.0

增强 (查看拉取请求)
更新至 ECS 1.12.0。

7.14.0 或更高版本

1.0.0

增强 (查看拉取请求)
发布 Traefik 作为正式版 (GA)。

0.4.3

增强 (查看拉取请求)
转换为生成的 ECS 字段。

0.4.2

增强 (查看拉取请求)
更新至 ECS 1.11.0。

0.4.1

增强 (查看拉取请求)
转义文档中的特殊字符。

0.4.0

增强 (查看拉取请求)
更新集成描述。

0.3.0

增强 (查看拉取请求)
设置 "event.module" 和 "event.dataset"。

0.2.0

增强 (查看拉取请求)
更新至 ECS 1.10.0 并添加 event.original 选项。

0.1.2

错误修复 (查看拉取请求)
设置要求的最低 Kibana 版本为 7.13.0。

0.1.1

增强 (查看拉取请求)
解析 commonlog 或 json 格式的日志。

增强 (查看拉取请求)
更新至 ECS 1.9.0。

0.1.0

增强 (查看拉取请求)
首次发布。