Nginx Ingress Controller 集成

编辑

Nginx Ingress Controller 集成

编辑

版本

1.10.1 (查看全部)

兼容的 Kibana 版本

8.14.0 或更高版本

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

安全性
可观测性

订阅级别
这是什么?

基础

支持级别
这是什么?

Elastic

此集成定期从 Nginx Ingress Controller 实例中获取日志。它可以解析入口创建的访问日志和错误日志。

兼容性

编辑

该集成已使用 Nginx Ingress Controller v0.30.0 和 v0.40.2 进行测试。日志格式在此处描述 此处

日志

编辑
访问日志
编辑

access 数据流收集 Nginx Ingress Controller 访问日志。

示例

一个 access 的示例事件如下所示

{
    "@timestamp": "2020-02-07T11:48:51.000Z",
    "agent": {
        "ephemeral_id": "e54e6f78-d64d-4f55-ae90-25511c38de57",
        "id": "9878d192-22ad-49b6-a6c2-9959b0815d04",
        "name": "docker-fleet-agent",
        "type": "filebeat",
        "version": "8.0.0-beta1"
    },
    "data_stream": {
        "dataset": "nginx_ingress_controller.access",
        "namespace": "ep",
        "type": "logs"
    },
    "ecs": {
        "version": "8.0.0"
    },
    "elastic_agent": {
        "id": "9878d192-22ad-49b6-a6c2-9959b0815d04",
        "snapshot": false,
        "version": "8.0.0-beta1"
    },
    "event": {
        "agent_id_status": "verified",
        "category": [
            "web"
        ],
        "created": "2022-01-12T03:28:00.188Z",
        "dataset": "nginx_ingress_controller.access",
        "ingested": "2022-01-12T03:28:06Z",
        "kind": "event",
        "outcome": "success",
        "timezone": "+00:00",
        "type": [
            "info"
        ]
    },
    "host": {
        "architecture": "x86_64",
        "containerized": true,
        "hostname": "docker-fleet-agent",
        "id": "4ccba669f0df47fa3f57a9e4169ae7f1",
        "ip": [
            "172.18.0.4"
        ],
        "mac": [
            "02:42:ac:12:00:04"
        ],
        "name": "docker-fleet-agent",
        "os": {
            "codename": "Core",
            "family": "redhat",
            "kernel": "5.11.0-44-generic",
            "name": "CentOS Linux",
            "platform": "centos",
            "type": "linux",
            "version": "7 (Core)"
        }
    },
    "http": {
        "request": {
            "method": "POST"
        },
        "response": {
            "body": {
                "bytes": 59
            },
            "status_code": 200
        },
        "version": "1.1"
    },
    "input": {
        "type": "log"
    },
    "log": {
        "file": {
            "path": "/tmp/service_logs/ingress.log"
        },
        "offset": 0
    },
    "nginx_ingress_controller": {
        "access": {
            "http": {
                "request": {
                    "id": "529a007902362a5f51385a5fa7049884",
                    "length": 89,
                    "time": 0.001
                }
            },
            "remote_ip_list": [
                "192.168.64.1"
            ],
            "upstream": {
                "alternative_name": "",
                "ip": "172.17.0.5",
                "name": "default-web-8080",
                "port": 8080,
                "response": {
                    "length": 59,
                    "status_code": 200,
                    "time": 0
                }
            }
        }
    },
    "related": {
        "ip": [
            "192.168.64.1"
        ]
    },
    "source": {
        "address": "192.168.64.1",
        "ip": "192.168.64.1"
    },
    "tags": [
        "nginx-ingress-controller-access"
    ],
    "url": {
        "original": "/products"
    },
    "user_agent": {
        "device": {
            "name": "Other"
        },
        "name": "curl",
        "original": "curl/7.54.0",
        "version": "7.54.0"
    }
}
导出的字段
字段 描述 类型

@timestamp

事件时间戳。

date

cloud.account.id

用于在多租户环境中识别不同实体的云帐户或组织 ID。示例:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

keyword

cloud.availability_zone

此主机运行所在的可用区。

keyword

cloud.image.id

云实例的镜像 ID。

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.instance.name

主机机器的实例名称。

keyword

cloud.machine.type

主机机器的机器类型。

keyword

cloud.project.id

Google Cloud 中项目的名称。

keyword

cloud.provider

云提供商的名称。示例值有 aws、azure、gcp 或 digitalocean。

keyword

cloud.region

此主机运行所在的区域。

keyword

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.labels

镜像标签。

object

container.name

容器名称。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

ecs.version

此事件符合的 ECS 版本。ecs.version 是一个必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合略有不同的 ECS 版本),此字段允许集成调整为事件的模式版本。

keyword

event.created

event.created 包含代理或管道首次读取事件的日期/时间。此字段与 @timestamp 不同,因为 @timestamp 通常包含从原始事件中提取的时间。在大多数情况下,这两个时间戳会略有不同。可以使用差异来计算源生成事件与代理首次处理事件之间的时间延迟。这可以用于监视代理或管道跟上事件源的能力。如果两个时间戳相同,则应使用 @timestamp。

date

event.dataset

事件数据集

constant_keyword

event.module

事件模块

constant_keyword

host.architecture

操作系统架构。

keyword

host.containerized

如果主机是容器。

boolean

host.domain

主机所属的域的名称。例如,在 Windows 上,这可能是主机的 Active Directory 域或 NetBIOS 域名。对于 Linux,这可能是主机 LDAP 提供程序的域。

keyword

host.hostname

主机的 hostname。它通常包含主机机器上 hostname 命令返回的内容。

keyword

host.id

唯一的主机 ID。由于主机名并不总是唯一的,请使用在您的环境中具有意义的值。示例:当前使用 beat.name

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。

keyword

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的内容、完全限定的域名或用户指定的名称。发送者决定使用哪个值。

keyword

host.os.build

操作系统构建信息。

keyword

host.os.codename

操作系统代号(如果有)。

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.kernel

操作系统内核版本(作为原始字符串)。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本(作为原始字符串)。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,如 t2.medium。如果为 vm,这可能是容器,例如,或在您的环境中具有意义的其他信息。

keyword

http.request.bytes

请求的总大小(以字节为单位)(包括正文和标头)。

long

http.request.id

每个 HTTP 请求的唯一标识符,用于关联客户端和服务器之间事务中的日志。该 ID 可能包含在非标准的 HTTP 标头中,例如 X-Request-IDX-Correlation-ID

keyword

http.request.method

HTTP 请求方法。该值应保留其原始事件中的大小写。例如,GETgetGeT 都被认为是此字段的有效值。

keyword

http.request.referrer

此 HTTP 请求的引用者。

keyword

http.response.body.bytes

响应正文的大小(以字节为单位)。

long

http.response.status_code

HTTP 响应状态代码。

long

http.version

HTTP 版本。

keyword

input.type

输入类型

keyword

log.file.device_id

包含文件所在文件系统的设备的 ID。

keyword

log.file.fingerprint

启用指纹识别时,文件的 sha256 指纹标识。

keyword

log.file.idxhi

与文件关联的唯一标识符的高位部分。(仅限 Windows)

keyword

log.file.idxlo

与文件关联的唯一标识符的低位部分。(仅限 Windows)

keyword

log.file.inode

日志文件的 Inode 号。

keyword

log.file.path

此事件来自的日志文件的完整路径,包括文件名。它应包括驱动器盘符(如果适用)。如果事件不是从日志文件中读取的,则不要填充此字段。

keyword

log.file.vol

包含文件的卷的序列号。(仅限 Windows)

keyword

log.offset

日志偏移量

long

nginx_ingress_controller.access.http.request.id

请求的随机生成的 ID

text

nginx_ingress_controller.access.http.request.length

请求长度(包括请求行、标头和请求正文)

long

nginx_ingress_controller.access.http.request.time

自从从客户端读取第一个字节以来经过的时间

double

nginx_ingress_controller.access.remote_ip_list

远程 IP 地址数组。它是一个列表,因为除了客户端 IP 地址之外,还包括来自 X-Forwarded-For 等标头的 IP 地址是很常见的。实际源 IP 恢复为 source.ip

keyword

nginx_ingress_controller.access.upstream.alternative_name

备用上游的名称。

text

nginx_ingress_controller.access.upstream.ip

上游服务器的 IP 地址。如果在请求处理期间联系了多个服务器,则它们的地址用逗号分隔。

ip

nginx_ingress_controller.access.upstream.name

上游的名称。

keyword

nginx_ingress_controller.access.upstream.port

上游服务器的端口。

long

nginx_ingress_controller.access.upstream.response.length

从上游服务器获得的响应的长度

long

nginx_ingress_controller.access.upstream.response.length_list

上游响应长度数组。它是一个列表,因为在请求处理期间联系了多个上游服务器是很常见的。

keyword

nginx_ingress_controller.access.upstream.response.status_code

从上游服务器获得的响应的状态代码

long

nginx_ingress_controller.access.upstream.response.status_code_list

上游响应状态代码数组。它是一个列表,因为在请求处理期间联系了多个上游服务器是很常见的。

keyword

nginx_ingress_controller.access.upstream.response.time

接收来自上游服务器的响应所花费的时间(以秒为单位,精度为毫秒)

double

nginx_ingress_controller.access.upstream.response.time_list

上游响应持续时间数组。它是一个列表,因为在请求处理期间联系了多个上游服务器是很常见的。

keyword

nginx_ingress_controller.access.upstream_address_list

上游地址数组。它是一个列表,因为在请求处理期间联系了多个上游服务器是很常见的。

keyword

related.ip

在您的事件中看到的所有 IP。

ip

related.user

在事件中看到的所有用户名或其他用户标识符。

keyword

source.address

某些事件源地址的定义不明确。事件有时会列出 IP、域或 Unix 套接字。您应始终将原始地址存储在 .address 字段中。然后应将其复制到 .ip.domain,具体取决于它是哪一个。

keyword

source.as.number

分配给自治系统的唯一编号。自治系统号 (ASN) 唯一标识 Internet 上的每个网络。

long

source.as.organization.name

组织名称。

keyword

source.as.organization.name.text

source.as.organization.name 的多字段。

match_only_text

source.geo.city_name

城市名称。

keyword

source.geo.continent_name

洲的名称。

keyword

source.geo.country_iso_code

国家 ISO 代码。

keyword

source.geo.country_name

国家名称。

keyword

source.geo.location

经度和纬度。

geo_point

source.geo.region_iso_code

区域 ISO 代码。

keyword

source.geo.region_name

区域名称。

keyword

source.ip

源的 IP 地址(IPv4 或 IPv6)。

ip

tags

用于标记每个事件的关键字列表。

keyword

url.domain

URL 的域名,例如“https://elastic.ac.cn[www.elastic.co]”。 在某些情况下,URL 可能直接引用 IP 和/或端口,而不使用域名。在这种情况下,IP 地址将进入 domain 字段。如果 URL 包含由 [] (IETF RFC 2732) 括起来的字面 IPv6 地址,则 [] 字符也应捕获在 domain 字段中。

keyword

url.extension

该字段包含原始请求 URL 中的文件扩展名,不包括前导点。 仅当文件扩展名存在时才会设置,因为并非每个 URL 都有文件扩展名。不得包含前导句点。例如,该值必须为 "png",而不是 ".png"。请注意,当文件名具有多个扩展名 (example.tar.gz) 时,仅应捕获最后一个扩展名 (“gz”,而不是 “tar.gz”)。

keyword

url.full

如果完整的 URL 对您的用例很重要,则应将其存储在 url.full 中,无论此字段是重建的还是在事件源中存在的。

wildcard

url.full.text

url.full 的多字段。

match_only_text

url.original

事件源中看到的未修改的原始 URL。 请注意,在网络监控中,观察到的 URL 可能是完整的 URL,而在访问日志中,URL 通常仅表示为路径。 此字段旨在表示观察到的 URL,无论完整与否。

wildcard

url.original.text

url.original 的多字段。

match_only_text

url.path

请求的路径,例如 "/search"。

wildcard

url.query

query 字段描述请求的查询字符串,例如 “q=elasticsearch”。 ? 从查询字符串中排除。如果 URL 不包含 ?,则不存在 query 字段。如果存在 ? 但没有查询,则 query 字段存在且为空字符串。可以使用 exists 查询来区分这两种情况。

keyword

url.scheme

请求的方案,例如 “https”。注意:: 不是方案的一部分。

keyword

user.name

用户的简称或登录名。

keyword

user.name.text

user.name 的多字段。

match_only_text

user_agent.device.name

设备的名称。

keyword

user_agent.name

用户代理的名称。

keyword

user_agent.original

未解析的 user_agent 字符串。

keyword

user_agent.original.text

user_agent.original 的多字段。

match_only_text

user_agent.os.full

操作系统名称,包括版本或代码名称。

keyword

user_agent.os.full.text

user_agent.os.full 的多字段。

match_only_text

user_agent.os.name

操作系统名称,不带版本。

keyword

user_agent.os.name.text

user_agent.os.name 的多字段。

match_only_text

user_agent.os.version

操作系统版本(作为原始字符串)。

keyword

user_agent.version

用户代理的版本。

keyword

错误日志
编辑

error 数据流收集 Nginx Ingress Controller 错误日志。

示例

一个 error 的示例事件如下

{
    "@timestamp": "2022-01-12T03:31:51.309672Z",
    "agent": {
        "ephemeral_id": "fb7ef32a-6061-4dfa-a2c0-d885b7470e0d",
        "id": "9878d192-22ad-49b6-a6c2-9959b0815d04",
        "name": "docker-fleet-agent",
        "type": "filebeat",
        "version": "8.0.0-beta1"
    },
    "data_stream": {
        "dataset": "nginx_ingress_controller.error",
        "namespace": "ep",
        "type": "logs"
    },
    "ecs": {
        "version": "8.0.0"
    },
    "elastic_agent": {
        "id": "9878d192-22ad-49b6-a6c2-9959b0815d04",
        "snapshot": false,
        "version": "8.0.0-beta1"
    },
    "event": {
        "agent_id_status": "verified",
        "category": [
            "web"
        ],
        "created": "2022-01-12T03:32:09.037Z",
        "dataset": "nginx_ingress_controller.error",
        "ingested": "2022-01-12T03:32:10Z",
        "kind": "event",
        "timezone": "+00:00",
        "type": [
            "info"
        ]
    },
    "host": {
        "architecture": "x86_64",
        "containerized": true,
        "hostname": "docker-fleet-agent",
        "id": "4ccba669f0df47fa3f57a9e4169ae7f1",
        "ip": [
            "172.18.0.4"
        ],
        "mac": [
            "02:42:ac:12:00:04"
        ],
        "name": "docker-fleet-agent",
        "os": {
            "codename": "Core",
            "family": "redhat",
            "kernel": "5.11.0-44-generic",
            "name": "CentOS Linux",
            "platform": "centos",
            "type": "linux",
            "version": "7 (Core)"
        }
    },
    "input": {
        "type": "log"
    },
    "log": {
        "file": {
            "path": "/tmp/service_logs/error.log"
        },
        "level": "W",
        "offset": 361
    },
    "message": "Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.",
    "nginx_ingress_controller": {
        "error": {
            "source": {
                "file": "client_config.go",
                "line_number": 608
            },
            "thread_id": 8
        }
    },
    "tags": [
        "nginx-ingress-controller-error"
    ]
}
导出的字段
字段 描述 类型

@timestamp

事件时间戳。

date

cloud.account.id

用于在多租户环境中识别不同实体的云帐户或组织 ID。示例:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

keyword

cloud.availability_zone

此主机运行所在的可用区。

keyword

cloud.image.id

云实例的镜像 ID。

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.instance.name

主机机器的实例名称。

keyword

cloud.machine.type

主机机器的机器类型。

keyword

cloud.project.id

Google Cloud 中项目的名称。

keyword

cloud.provider

云提供商的名称。示例值有 aws、azure、gcp 或 digitalocean。

keyword

cloud.region

此主机运行所在的区域。

keyword

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.labels

镜像标签。

object

container.name

容器名称。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

ecs.version

此事件符合的 ECS 版本。ecs.version 是一个必填字段,并且必须存在于所有事件中。当跨多个索引进行查询时(这些索引可能符合略有不同的 ECS 版本),此字段允许集成调整为事件的模式版本。

keyword

event.dataset

事件数据集

constant_keyword

event.module

事件模块

constant_keyword

host.architecture

操作系统架构。

keyword

host.containerized

如果主机是容器。

boolean

host.domain

主机所属的域的名称。例如,在 Windows 上,这可能是主机的 Active Directory 域或 NetBIOS 域名。对于 Linux,这可能是主机 LDAP 提供程序的域。

keyword

host.hostname

主机的 hostname。它通常包含主机机器上 hostname 命令返回的内容。

keyword

host.id

唯一的主机 ID。由于主机名并不总是唯一的,请使用在您的环境中具有意义的值。示例:当前使用 beat.name

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。

keyword

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的内容、完全限定的域名或用户指定的名称。发送者决定使用哪个值。

keyword

host.os.build

操作系统构建信息。

keyword

host.os.codename

操作系统代号(如果有)。

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.kernel

操作系统内核版本(作为原始字符串)。

keyword

host.os.name

操作系统名称,不带版本。

keyword

host.os.name.text

host.os.name 的多字段。

text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本(作为原始字符串)。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,如 t2.medium。如果为 vm,这可能是容器,例如,或在您的环境中具有意义的其他信息。

keyword

input.type

输入类型

keyword

log.file.device_id

包含文件所在文件系统的设备的 ID。

keyword

log.file.fingerprint

启用指纹识别时,文件的 sha256 指纹标识。

keyword

log.file.idxhi

与文件关联的唯一标识符的高位部分。(仅限 Windows)

keyword

log.file.idxlo

与文件关联的唯一标识符的低位部分。(仅限 Windows)

keyword

log.file.inode

日志文件的 Inode 号。

keyword

log.file.path

此事件来自的日志文件的完整路径,包括文件名。它应包括驱动器盘符(如果适用)。如果事件不是从日志文件中读取的,则不要填充此字段。

keyword

log.file.vol

包含文件的卷的序列号。(仅限 Windows)

keyword

log.flags

日志文件的标志。

keyword

log.level

日志事件的原始日志级别。如果事件源提供日志级别或文本严重性,则此为 log.level 中显示的内容。如果您的源未指定,则可以将事件传输的严重性放在此处(例如,Syslog 严重性)。一些示例包括 warnerriinformational

keyword

log.offset

日志偏移量

long

message

对于日志事件,message 字段包含日志消息,针对在日志查看器中查看进行了优化。 对于没有原始消息字段的结构化日志,可以将其他字段连接起来,形成事件的人工可读摘要。 如果存在多条消息,则可以将它们合并为一条消息。

match_only_text

nginx_ingress_controller.error.source.file

源文件

keyword

nginx_ingress_controller.error.source.line_number

源行号

long

nginx_ingress_controller.error.thread_id

线程 ID

long

tags

用于标记每个事件的关键字列表。

keyword

如何在本地设置和测试 Ingress Controller

编辑

Ingress Controller 基于 Kubernetes Ingress 资源构建,使用 ConfigMap 存储 NGINX 配置。因此,在启动并运行 Ingress Controller 之前,需要一个 k8s 集群。文档:https://kubernetes.github.io/ingress-nginx/

  1. k8s.md[设置 k8s 集群]。
  2. 按照 https://kubernetes.ac.cn/docs/tasks/access-application-cluster/ingress-minikube/ 设置 ingress controller
  3. 将 pod 的日志重定向到临时文件:kubectl -n kube-system logs -f nginx-ingress-controller-6fc5bcc8c9-zm8zv >> /tmp/ingresspod
  4. 配置 Beats 模块
- module: nginx
  # Ingress-nginx controller logs. This is disabled by default. It could be used in Kubernetes environments to parse ingress-nginx logs
  ingress_controller:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/tmp/ingresspod"]
  1. 在 ES 中设置管道和仪表板
  2. 启动 Filebeat
  3. 产生流量
# visit `http://hello-world.info/v2` and `http://hello-world.info` from different browser engines
# use curl and wget to access the pages with different http words ie: curl -d "param1=value1&param2=value2" -X GET hello-world.info

使用 kind 的详细示例

编辑
  1. 使用 https://kubernetes.github.io/ingress-nginx/deploy/ 下的 快速入门 指南,然后使用本地测试示例
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.1/deploy/static/provider/cloud/deploy.yaml

kubectl create deployment demo --image=httpd --port=80
kubectl expose deployment demo

kubectl create ingress demo-localhost --class=nginx \
  --rule="demo.localdev.me/*=demo:80"

kubectl port-forward --namespace=ingress-nginx service/ingress-nginx-controller 8080:80

通过访问以下网址产生流量:http://demo.localdev.me:8080/

demo.localdev.me 是 DNS 默认设置为 AWS 保留的 localhost

如果要将 ingress-nginx 配置为输出 json 格式,请在 ingress-nginx-controller 中使用以下配置

  1. 下载清单
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.1/deploy/static/provider/cloud/deploy.yaml
  1. 编辑 deploy.yaml
apiVersion: v1
data:
allow-snippet-annotations: "true"
log-format-escape-json: "true"
log-format-upstream: '{"timestamp": "$time_iso8601", "requestID": "$req_id", "proxyUpstreamName":
  "$proxy_upstream_name", "proxyAlternativeUpstreamName": "$proxy_alternative_upstream_name","upstreamStatus":
  "$upstream_status", "upstreamAddr": "$upstream_addr","httpRequest":{"requestMethod":
  "$request_method", "requestUrl": "$host$request_uri", "status": $status,"requestSize":
  "$request_length", "responseSize": "$upstream_response_length", "userAgent": "$http_user_agent",
  "remoteIp": "$remote_addr", "referer": "$http_referer", "latency": "$upstream_response_time s",
  "protocol":"$server_protocol"}}'
kind: ConfigMap
metadata:
labels:
  app.kubernetes.io/component: controller
  app.kubernetes.io/instance: ingress-nginx
  app.kubernetes.io/name: ingress-nginx
  app.kubernetes.io/part-of: ingress-nginx
  app.kubernetes.io/version: 1.3.1
name: ingress-nginx-controller
namespace: ingress-nginx
  1. 重新应用清单
kubectl apply -f deploy.yaml
  1. 检查日志
 kubectl logs -n ingress-nginx ingress-nginx-controller-7bf78659d-2th2m -f

 {"timestamp": "2022-09-07T09:36:15+00:00", "requestID": "92eea20d4058f5ee2b33f9366141101c", "proxyUpstreamName": "default-demo-80", "proxyAlternativeUpstreamName": "","upstreamStatus": "304", "upstreamAddr": "10.244.0.8:80","httpRequest":{"requestMethod": "GET", "requestUrl": "demo.localdev.me/", "status": 304,"requestSize": "565", "responseSize": "0", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36", "remoteIp": "127.0.0.1", "referer": "", "latency": "0.002 s", "protocol":"HTTP/1.1"}}
  {"timestamp": "2022-09-07T09:36:37+00:00", "requestID": "b5a49957c5b0861b7c55b069cef7248f", "proxyUpstreamName": "default-demo-80", "proxyAlternativeUpstreamName": "","upstreamStatus": "404", "upstreamAddr": "10.244.0.8:80","httpRequest":{"requestMethod": "GET", "requestUrl": "demo.localdev.me/fdsfdsfads", "status": 404,"requestSize": "464", "responseSize": "196", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36", "remoteIp": "127.0.0.1", "referer": "", "latency": "0.001 s", "protocol":"HTTP/1.1"}}

更新日志

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

1.10.1

错误修复 (查看拉取请求)
修复 nginx_ingress_controller.access.remote_ip_list 字段映射。

8.14.0 或更高版本

1.10.0

增强功能 (查看拉取请求)
迁移到 format_version v3。

8.14.0 或更高版本

1.9.0

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

8.6.0 或更高版本

1.8.3

错误修复 (查看拉取请求)
修复提取管道警告

8.6.0 或更高版本

1.8.2

增强功能 (查看拉取请求)
将访问和错误日志仪表板可视化迁移到 lens。

8.6.0 或更高版本

1.8.1

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

8.6.0 或更高版本

1.8.0

增强功能 (查看拉取请求)
调整字段以适应文件系统信息中的更改

8.6.0 或更高版本

1.7.3

错误修复 (查看拉取请求)
向重命名处理器添加 null 检查

8.6.0 或更高版本

1.7.2

错误修复 (查看拉取请求)
修复仪表板,方法是将 nginx_ingress_controller.access.upstream.name 的类型从 text 更改为 keyword

8.6.0 或更高版本

1.7.1

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

8.6.0 或更高版本

1.7.0

增强功能 (查看拉取请求)
更新 ingress-nginx pod 匹配条件

8.6.0 或更高版本

1.6.0

增强功能 (查看拉取请求)
使用来自 /var/log/containers 的日志

8.0.0 或更高版本

1.5.0

增强功能 (查看拉取请求)
与 Beats 模块同步并更新到 ECS 8.4.0

8.0.0 或更高版本

1.4.1

增强功能 (查看拉取请求)
处理多个上游服务器和 IPv6 地址

8.0.0 或更高版本

1.4.0

增强功能 (查看拉取请求)
将瓦片地图迁移到仪表板中的地图对象

8.0.0 或更高版本

1.3.1

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

1.3.0

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

1.2.2

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

1.2.1

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

1.2.0

增强功能 (查看拉取请求)
发布 v8.0.0 的 nginx_ingress_controller 包

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

1.1.2

增强功能 (查看拉取请求)
与指南统一

1.1.1

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

1.1.0

增强功能 (查看拉取请求)
更新到 ECS 1.12.0

1.0.0

增强功能 (查看拉取请求)
将 Nginx Ingress Controller 作为 GA 版本发布

7.14.0 或更高版本

0.3.2

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

0.3.1

增强功能 (查看拉取请求)
更新到 ECS 1.11.0

0.3.0

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

0.2.0

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

0.1.1

增强功能 (查看拉取请求)
将 ECS 版本更新到 1.10.0 并添加 event.original 选项

0.1.0

错误修复 (查看拉取请求)
修复堆栈兼容性

0.0.3

增强 (查看拉取请求)
更新软件包所有者

0.0.1

增强 (查看拉取请求)
初始发布