Nginx 模块
编辑Nginx 模块编辑
nginx
模块解析由 Nginx HTTP 服务器创建的访问和错误日志。
ingress_controller
文件集解析由 ingress-nginx 控制器创建的访问日志。日志模式可以在控制器的 文档 中找到。
运行模块时,它在后台执行一些任务
- 设置日志文件的默认路径(但不用担心,您可以覆盖默认值)
- 确保每个多行日志事件都作为单个事件发送
- 使用 Elasticsearch 摄取管道来解析和处理日志行,将数据塑造成适合在 Kibana 中可视化的结构
- 部署用于可视化日志数据的仪表板
阅读 快速入门 以了解如何配置和运行模块。
兼容性编辑
Nginx 模块已通过版本 1.10 的日志测试。
在 Windows 上,该模块已通过从 Chocolatey 存储库安装的 Nginx 进行测试。
ingress_controller
文件集已通过 nginx-ingress-controller
的版本 v0.28.0 和 v0.34.1 进行测试。
配置模块编辑
您可以通过在 modules.d/nginx.yml
文件中指定 变量设置 或在命令行中覆盖设置来进一步优化 nginx
模块的行为。
您必须在模块中启用至少一个文件集。 文件集默认情况下处于禁用状态。
以下示例显示了如何在 modules.d/nginx.yml
文件中设置路径,以覆盖访问日志和错误日志的默认路径
- module: nginx access: enabled: true var.paths: ["/path/to/log/nginx/access.log*"] error: enabled: true var.paths: ["/path/to/log/nginx/error.log*"]
要在命令行中指定相同的设置,您使用
-M "nginx.access.var.paths=[/path/to/log/nginx/access.log*]" -M "nginx.error.var.paths=[/path/to/log/nginx/error.log*]"
以下示例显示了如何配置 ingress_controller
文件集,该文件集可在 Kubernetes 环境中使用,用于解析 ingress-nginx 日志
- module: nginx ingress_controller: enabled: true var.paths: ["/path/to/log/nginx/ingress.log"]
变量设置编辑
每个文件集都有单独的变量设置,用于配置模块的行为。如果您没有指定变量设置,nginx
模块将使用默认值。
对于高级用例,您还可以覆盖输入设置。请参阅 覆盖输入设置。
在命令行中指定设置时,请记住在设置前面加上模块名称,例如 nginx.access.var.paths
而不是 access.var.paths
。
access
日志文件集设置编辑
-
var.paths
- 一个基于 glob 的路径数组,指定查找日志文件的位置。此处也支持 Go Glob 支持的所有模式。例如,您可以使用通配符从预定义级别的子目录中获取所有文件:
/path/to/log/*/*.log
。这将获取/path/to/log
的子文件夹中的所有.log
文件。它不会获取/path/to/log
文件夹本身的日志文件。如果此设置为空,Filebeat 将根据您的操作系统选择日志路径。
error
日志文件集编辑
-
var.paths
- 一个基于 glob 的路径数组,指定查找日志文件的位置。此处也支持 Go Glob 支持的所有模式。例如,您可以使用通配符从预定义级别的子目录中获取所有文件:
/path/to/log/*/*.log
。这将获取/path/to/log
的子文件夹中的所有.log
文件。它不会获取/path/to/log
文件夹本身的日志文件。如果此设置为空,Filebeat 将根据您的操作系统选择日志路径。
ingress_controller
日志文件集编辑
-
var.paths
- 一个基于 glob 的路径数组,指定查找日志文件的位置。此处也支持 Go Glob 支持的所有模式。例如,您可以使用通配符从预定义级别的子目录中获取所有文件:
/path/to/log/*/*.log
。这将获取/path/to/log
的子文件夹中的所有.log
文件。它不会获取/path/to/log
文件夹本身的日志文件。如果此设置为空,Filebeat 将根据您的操作系统选择日志路径。
时区支持编辑
此模块解析不包含时区信息的日志。对于这些日志,Filebeat 读取本地时区并在解析时使用它来将时间戳转换为 UTC。用于解析的时区包含在 event.timezone
字段中的事件中。
要禁用此转换,可以使用 drop_fields
处理器删除 event.timezone
字段。
如果日志源自与本地时区不同的系统或应用程序,则可以使用 add_fields
处理器将 event.timezone
字段覆盖为原始时区。
请参阅 处理器 以了解如何在配置中指定处理器。
示例仪表板编辑
此模块附带示例仪表板。例如
字段编辑
有关模块中每个字段的描述,请参阅 导出字段 部分。