Apache 集成

编辑

版本

1.26.0 (查看全部)

兼容的 Kibana 版本

8.13.0 或更高版本

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

安全性
可观测性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

此集成定期从 Apache 服务器获取指标。它可以解析 Apache 服务器创建的访问日志和错误日志。

兼容性

编辑

Apache 数据集已使用 Apache 2.4.12 和 2.4.46 进行了测试,预计可与所有 >= 2.2.31 和 >= 2.4.16 的版本一起使用(与操作系统无关)。

日志

编辑
访问日志
编辑

访问日志收集 Apache 访问日志。

示例

以下是 access 的示例事件

{
    "@timestamp": "2024-06-21T13:03:30.000Z",
    "agent": {
        "ephemeral_id": "a8296a9f-087a-48ae-af44-8f064213f161",
        "id": "9326664e-5848-4401-a0fb-4494a1538c2e",
        "name": "docker-fleet-agent",
        "type": "filebeat",
        "version": "8.13.0"
    },
    "apache": {
        "access": {
            "remote_addresses": [
                "127.0.0.1"
            ]
        }
    },
    "data_stream": {
        "dataset": "apache.access",
        "namespace": "ep",
        "type": "logs"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "9326664e-5848-4401-a0fb-4494a1538c2e",
        "snapshot": false,
        "version": "8.13.0"
    },
    "event": {
        "agent_id_status": "verified",
        "category": [
            "web"
        ],
        "created": "2024-06-21T13:03:44.637Z",
        "dataset": "apache.access",
        "ingested": "2024-06-21T13:03:56Z",
        "kind": "event",
        "outcome": "success"
    },
    "host": {
        "architecture": "x86_64",
        "containerized": true,
        "hostname": "docker-fleet-agent",
        "id": "8259e024976a406e8a54cdbffeb84fec",
        "ip": [
            "192.168.240.7"
        ],
        "mac": [
            "02-42-C0-A8-F0-07"
        ],
        "name": "docker-fleet-agent",
        "os": {
            "codename": "focal",
            "family": "debian",
            "kernel": "3.10.0-1160.118.1.el7.x86_64",
            "name": "Ubuntu",
            "platform": "ubuntu",
            "type": "linux",
            "version": "20.04.6 LTS (Focal Fossa)"
        }
    },
    "http": {
        "request": {
            "method": "GET"
        },
        "response": {
            "body": {
                "bytes": 45
            },
            "status_code": 200
        },
        "version": "1.1"
    },
    "input": {
        "type": "log"
    },
    "log": {
        "file": {
            "path": "/tmp/service_logs/access.log"
        },
        "offset": 0
    },
    "related": {
        "ip": [
            "127.0.0.1"
        ]
    },
    "source": {
        "address": "127.0.0.1",
        "ip": "127.0.0.1"
    },
    "tags": [
        "apache-access"
    ],
    "url": {
        "original": "/",
        "path": "/"
    },
    "user_agent": {
        "device": {
            "name": "Other"
        },
        "name": "curl",
        "original": "curl/7.64.0",
        "version": "7.64.0"
    }
}

ECS 字段参考

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

导出的字段
字段 描述 类型 单位

@timestamp

事件时间戳。

date

apache.access.http.request_headers

HTTP 请求标头。

keyword

apache.access.identity

客户端的身份,如 RFC 1413 中所指定,由客户端计算机上的 identd 确定。

keyword

apache.access.remote_addresses

远程地址数组。它是一个列表,因为它通常除了包含客户端 IP 地址之外,还包含来自诸如 X-Forwarded-For 等标头的 IP 地址。

keyword

apache.access.response_time

服务请求的时间(以微秒为单位)。

long

micros

apache.access.ssl.cipher

SSL 密码名称。- 名称:nginx.access

keyword

apache.access.ssl.protocol

SSL 协议版本。

keyword

apache.access.tls_handshake.error

TLS 握手错误。

keyword

cloud.image.id

云实例的镜像 ID。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

event.dataset

事件数据集

constant_keyword

event.module

事件模块

constant_keyword

host.containerized

如果主机是容器。

boolean

host.os.build

操作系统构建信息。

keyword

host.os.codename

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

keyword

input.type

输入类型

keyword

log.offset

日志偏移

long

访问日志支持的格式为

  • 通用日志格式

    • 通用的 LogFormat 可以按如下方式使用

      %h %l %u %t \"%r\" %>s %b

    • 示例

      127.0.0.1 user-identifier frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326

  • 组合日志格式

    • 组合的 LogFormat 可以按如下方式使用

      1. %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"
      1. %A:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"
      1. %h:%p %l %u %t \"%{req}i %U %H\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"
    • 示例

      1. 127.0.0.1 user-identifier frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://datawarehouse.us.oracle.com/datamining/contents.htm" "Mozilla/4.7 [en] (WinNT; I)"
      1. 127.0.0.1:80 127.0.0.1 - - [20/Jun/2024:16:23:43 +0530] "\x16\x03\x01" 400 226 "-" "-"
      1. 127.0.0.1:80 - - [20/Jun/2024:16:31:41 +0530] "<SCRIPT>NXSSTEST</SCRIPT> / HTTP/1.1" 403 4897 "-" "-"
  • 组合日志格式 + X-Forwarded-For 标头

    • 具有 x-forwarded-for 标头的组合 LogFormat 可以按如下方式使用

      %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" X-Forwarded-For=\"%{X-Forwarded-For}i\"

    • 示例

      127.0.0.1 user-identifier frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://datawarehouse.us.oracle.com/datamining/contents.htm" "Mozilla/4.7 [en] (WinNT; I)" X-Forwarded-For="10.225.192.17, 10.2.2.121"

错误日志
编辑

错误日志收集 Apache 错误日志。

示例

以下是 error 的示例事件

{
    "@timestamp": "2024-07-03T11:17:00.781Z",
    "agent": {
        "ephemeral_id": "7abcc15c-0d38-4f16-843e-622a20dcfe13",
        "id": "7417c67c-5b97-401f-b722-6becf94a2f17",
        "name": "docker-fleet-agent",
        "type": "filebeat",
        "version": "8.13.0"
    },
    "apache": {
        "error": {
            "module": "mpm_event"
        }
    },
    "data_stream": {
        "dataset": "apache.error",
        "namespace": "ep",
        "type": "logs"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "7417c67c-5b97-401f-b722-6becf94a2f17",
        "snapshot": false,
        "version": "8.13.0"
    },
    "event": {
        "agent_id_status": "verified",
        "category": [
            "web"
        ],
        "dataset": "apache.error",
        "ingested": "2024-07-03T11:17:27Z",
        "kind": "event",
        "timezone": "+00:00",
        "type": [
            "info"
        ]
    },
    "host": {
        "architecture": "x86_64",
        "containerized": true,
        "hostname": "docker-fleet-agent",
        "id": "8259e024976a406e8a54cdbffeb84fec",
        "ip": [
            "192.168.246.7"
        ],
        "mac": [
            "02-42-C0-A8-F6-07"
        ],
        "name": "docker-fleet-agent",
        "os": {
            "codename": "focal",
            "family": "debian",
            "kernel": "3.10.0-1160.118.1.el7.x86_64",
            "name": "Ubuntu",
            "platform": "ubuntu",
            "type": "linux",
            "version": "20.04.6 LTS (Focal Fossa)"
        }
    },
    "input": {
        "type": "log"
    },
    "log": {
        "file": {
            "path": "/tmp/service_logs/error.log"
        },
        "level": "notice",
        "offset": 0
    },
    "message": "AH00489: Apache/2.4.46 (Unix) configured -- resuming normal operations",
    "process": {
        "pid": 1,
        "thread": {
            "id": 139928782480512
        }
    },
    "tags": [
        "apache-error"
    ]
}

ECS 字段参考

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

导出的字段
字段 描述 类型

@timestamp

事件时间戳。

date

apache.error.module

生成日志消息的模块。

keyword

cloud.image.id

云实例的镜像 ID。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

event.dataset

事件数据集

constant_keyword

event.module

事件模块

constant_keyword

host.containerized

如果主机是容器。

boolean

host.os.build

操作系统构建信息。

keyword

host.os.codename

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

keyword

input.type

输入类型

keyword

log.offset

日志偏移

long

指标

编辑
状态指标
编辑

服务器状态流从 Apache 状态模块收集数据。它从 mod_status 模块生成的网页中抓取状态数据。

示例

以下是 status 的示例事件

{
    "@timestamp": "2022-12-09T03:56:04.531Z",
    "agent": {
        "ephemeral_id": "de9a4641-fef3-4e54-b95a-cd2c722fb9d3",
        "id": "46343e0c-0d8c-464b-a216-cacf63027d6f",
        "name": "docker-fleet-agent",
        "type": "metricbeat",
        "version": "8.5.0"
    },
    "apache": {
        "status": {
            "bytes_per_request": 0,
            "bytes_per_sec": 0,
            "connections": {
                "async": {
                    "closing": 0,
                    "keep_alive": 0,
                    "writing": 0
                },
                "total": 0
            },
            "cpu": {
                "children_system": 0,
                "children_user": 0,
                "load": 0.133333,
                "system": 0.01,
                "user": 0.01
            },
            "load": {
                "1": 1.79,
                "15": 1.04,
                "5": 1.5
            },
            "requests_per_sec": 0.933333,
            "scoreboard": {
                "closing_connection": 0,
                "dns_lookup": 0,
                "gracefully_finishing": 0,
                "idle_cleanup": 0,
                "keepalive": 0,
                "logging": 0,
                "open_slot": 325,
                "reading_request": 0,
                "sending_reply": 1,
                "starting_up": 0,
                "total": 400,
                "waiting_for_connection": 74
            },
            "total_accesses": 14,
            "total_bytes": 0,
            "uptime": {
                "server_uptime": 15,
                "uptime": 15
            },
            "workers": {
                "busy": 1,
                "idle": 74
            }
        }
    },
    "data_stream": {
        "dataset": "apache.status",
        "namespace": "ep",
        "type": "metrics"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "46343e0c-0d8c-464b-a216-cacf63027d6f",
        "snapshot": false,
        "version": "8.5.0"
    },
    "event": {
        "agent_id_status": "verified",
        "dataset": "apache.status",
        "duration": 6186792,
        "ingested": "2022-12-09T03:56:04Z",
        "module": "apache"
    },
    "host": {
        "architecture": "x86_64",
        "containerized": false,
        "hostname": "docker-fleet-agent",
        "id": "66392b0697b84641af8006d87aeb89f1",
        "ip": [
            "172.18.0.7"
        ],
        "mac": [
            "02-42-AC-12-00-07"
        ],
        "name": "docker-fleet-agent",
        "os": {
            "codename": "focal",
            "family": "debian",
            "kernel": "5.15.49-linuxkit",
            "name": "Ubuntu",
            "platform": "ubuntu",
            "type": "linux",
            "version": "20.04.5 LTS (Focal Fossa)"
        }
    },
    "metricset": {
        "name": "status",
        "period": 30000
    },
    "service": {
        "address": "http://elastic-package-service-apache-1:80/server-status?auto=",
        "type": "apache"
    }
}

ECS 字段参考

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

导出的字段
字段 描述 类型 单位 指标类型

@timestamp

事件时间戳。

date

agent.id

keyword

apache.status.bytes_per_request

每个请求的字节数。

scaled_float

gauge

apache.status.bytes_per_sec

每秒的字节数。

scaled_float

gauge

apache.status.connections.async.closing

异步关闭的连接数。

long

gauge

apache.status.connections.async.keep_alive

异步保持活动的连接数。

long

gauge

apache.status.connections.async.writing

异步连接写入。

long

gauge

apache.status.connections.total

总连接数。

long

counter

apache.status.cpu.children_system

子系统 CPU。

scaled_float

gauge

apache.status.cpu.children_user

子用户 CPU。

scaled_float

gauge

apache.status.cpu.load

CPU 负载。

scaled_float

gauge

apache.status.cpu.system

系统 CPU。

scaled_float

gauge

apache.status.cpu.user

CPU 用户负载。

scaled_float

gauge

apache.status.load.1

过去一分钟的平均负载。

scaled_float

gauge

apache.status.load.15

过去 15 分钟的平均负载。

scaled_float

gauge

apache.status.load.5

过去 5 分钟的平均负载。

scaled_float

gauge

apache.status.requests_per_sec

每秒的请求数。

scaled_float

gauge

apache.status.scoreboard.closing_connection

正在关闭连接。

long

gauge

apache.status.scoreboard.dns_lookup

DNS 查找。

long

gauge

apache.status.scoreboard.gracefully_finishing

正常完成。

long

gauge

apache.status.scoreboard.idle_cleanup

空闲清理。

long

gauge

apache.status.scoreboard.keepalive

保持活动状态。

long

gauge

apache.status.scoreboard.logging

日志记录

long

gauge

apache.status.scoreboard.open_slot

打开的插槽。

long

gauge

apache.status.scoreboard.reading_request

正在读取请求。

long

gauge

apache.status.scoreboard.sending_reply

正在发送回复。

long

gauge

apache.status.scoreboard.starting_up

正在启动。

long

gauge

apache.status.scoreboard.total

总计。

long

gauge

apache.status.scoreboard.waiting_for_connection

正在等待连接。

long

gauge

apache.status.total_accesses

访问请求总数。

long

counter

apache.status.total_bytes

已服务的总字节数。

long

byte

counter

apache.status.uptime.server_uptime

服务器正常运行时间(以秒为单位)。

long

counter

apache.status.uptime.uptime

服务器正常运行时间。

long

counter

apache.status.workers.busy

繁忙工作线程的数量。

long

gauge

apache.status.workers.idle

空闲工作线程的数量。

long

gauge

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.provider

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

keyword

cloud.region

此主机运行所在的区域。

keyword

container.id

唯一的容器 ID。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

event.dataset

事件数据集

constant_keyword

event.module

事件模块

constant_keyword

host.containerized

如果主机是容器。

boolean

host.name

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

keyword

host.os.build

操作系统构建信息。

keyword

host.os.codename

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

keyword

service.address

从中收集有关此服务的数据的地址。这应为 URI、网络地址 (ipv4:port 或 [ipv6]:port) 或资源路径(套接字)。

keyword

异常检测配置

编辑

当您拥有与 清单中指定的查询匹配的数据时,这些异常检测作业在 Kibana 的 Machine Learning 应用程序中可用。

Apache 访问日志
编辑

查找 HTTP 访问日志中的异常活动。

作业 描述

visitor_rate_apache

HTTP 访问日志:检测异常访问者率

status_code_rate_apache

HTTP 访问日志:检测异常状态代码率

source_ip_url_count_apache

HTTP 访问日志:检测异常源 IP - URL 的高不同计数

source_ip_request_rate_apache

HTTP 访问日志:检测异常源 IP - 高请求率

low_request_rate_apache

HTTP 访问日志:检测低请求率

变更日志

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

1.26.0

增强 (查看拉取请求)
弃用第三方 REST API 导入选项。

8.13.0 或更高版本

1.25.0

增强 (查看拉取请求)
允许在 apache 访问日志数据流中配置忽略较旧的事件。

8.13.0 或更高版本

1.24.0

增强 (查看拉取请求)
允许 @custom 管道访问 event.original,而无需设置 preserve_original_event。

8.13.0 或更高版本

1.23.0

增强 (查看拉取请求)
更新 grok 模式以支持访问和错误日志格式。

8.13.0 或更高版本

1.22.0

增强 (查看拉取请求)
为状态数据流添加处理器支持。

8.13.0 或更高版本

1.21.0

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

8.13.0 或更高版本

1.20.0

增强 (查看拉取请求)
在访问日志中添加可选的响应时间字段。

8.10.2 或更高版本

1.19.0

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

8.10.2 或更高版本

1.18.0

增强 (查看拉取请求)
为无服务器准备软件包。

增强 (查看拉取请求)
添加机密支持。

增强 (查看拉取请求)
向指标仪表板添加筛选器。

Bug 修复 (查看拉取请求)
删除重复和不明确的字段定义。

Bug 修复 (查看拉取请求)
修复 event.category 和 event.type 字段数组的规范化。

8.10.2 或更高版本

1.17.2

Bug 修复 (查看拉取请求)
在 Apache 错误可视化中,将字段 “apache2.error.integration” 重命名为 “apache.error.module”。

8.10.2 或更高版本

1.17.1

Bug 修复 (查看拉取请求)
更新 grok 以接受用户身份。

8.10.2 或更高版本

1.17.0

增强 (查看拉取请求)
限制请求跟踪器日志计数为 5。

8.10.2 或更高版本

1.16.0

增强 (查看拉取请求)
将 Uptime 指标可视化迁移到 Lens。

8.10.2 或更高版本

1.15.1

Bug 修复 (查看拉取请求)
为重命名处理器添加空值检查和 ignore_missing 检查

8.8.0 或更高版本

1.15.0

增强 (查看拉取请求)
添加为日志和指标设置条件的功能。

8.8.0 或更高版本

1.14.0

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

8.8.0 或更高版本

1.13.0

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

8.7.1 或更高版本

1.12.0

增强 (查看拉取请求)
添加一个新标志以启用请求跟踪

8.7.1 或更高版本

1.11.0

增强 (查看拉取请求)
为 TSDB 启用添加状态数据流的维度字段。

8.3.0 或更高版本

1.10.0

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

8.3.0 或更高版本

1.9.0

增强 (查看拉取请求)
概述 仪表板可视化迁移到 Lens。

8.3.0 或更高版本

1.8.2

Bug 修复 (查看拉取请求)
修复可能导致三个可视化空白的错误

8.0.0 或更高版本

1.8.1

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

8.0.0 或更高版本

1.8.0

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

8.0.0 或更高版本

1.7.0

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

8.0.0 或更高版本

1.6.0

增强 (查看拉取请求)
添加对 x_forwarded_for 标头的支持

8.0.0 或更高版本

1.5.1

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

8.0.0 或更高版本

1.5.0

增强 (查看拉取请求)
为源许可证和订阅使用新标签

8.0.0 或更高版本

1.4.1

Bug 修复 (查看拉取请求)
为 event.created 添加正确的字段映射

8.0.0 或更高版本

1.4.0

增强 (查看拉取请求)
将日志仪表板中的平铺地图迁移到地图

1.3.6

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

1.3.5

增强 (查看拉取请求)
将 ML 模块添加到自述文件

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

1.3.4

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

1.3.3

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

1.3.2

Bug 修复 (查看拉取请求)
修复 ML 模块清单查询以忽略冻结层和冷层

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

1.3.1

Bug 修复 (查看拉取请求)
修复跟踪日志级别的解析

1.3.0

增强 (查看拉取请求)
支持 Kibana 8.0

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

1.2.0

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

1.1.1

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

1.1.0

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

7.14.0 或更高版本

1.0.0

增强 (查看拉取请求)
发布 GA 版本的 Apache

0.9.2

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

0.9.1

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

0.9.0

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

0.8.1

增强 (查看拉取请求)
添加对 Splunk 授权令牌的支持

0.8.0

Bug 修复 (查看拉取请求)
设置 event.module 和 event.dataset

0.7.1

Bug 修复 (查看拉取请求)
修复第三方 REST API 摄取管道中的错误

0.7.0

增强 (查看拉取请求)
更新至 ECS 1.10.0 并添加所有软件包应有的项目

0.6.0

增强 (查看拉取请求)
在导出的字段表中呈现单位和指标类型

0.5.1

增强 (查看拉取请求)
将 ecs.version 移动到摄取管道,并使 event.original 可选

0.5.0

增强 (查看拉取请求)
添加 ML 作业以查找 HTTP 访问日志中的异常活动

0.4.1

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

0.3.5

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

0.3.4

Bug 修复 (查看拉取请求)
source.portsource.ip 使用正确的类型

0.1.0

增强 (查看拉取请求)
初始版本