用于文件信号的Nginx模块不解析访问日志

Uro*_*s K 2 nginx elasticsearch elastic-stack filebeat

我正在使用nginx模块进行文件拍,以将日志数据发送到elasticsearch。这是我的文件拍配置:

output:
  logstash:
    enabled: true
    hosts:
      - logstash:5044
    timeout: 15

filebeat.modules:
- module: nginx
  access:
    enabled: true
    var.paths: ["/var/log/nginx/access.log"]
  error:
    enabled: true
    var.paths: ["/var/log/nginx/error.log"]
Run Code Online (Sandbox Code Playgroud)

问题是未解析日志。这是我在Kibana中看到的:

{   "_index": "filebeat-2017.07.18",   "_type": "log",   "_id": "AV1VLXEbhj7uWd8Fgz6M",   "_version": 1,   "_score": null,   "_source": {
    "@timestamp": "2017-07-18T10:10:24.791Z",
    "offset": 65136,
    "@version": "1",
    "beat": {
      "hostname": "06d09033fb23",
      "name": "06d09033fb23",
      "version": "5.5.0"
    },
    "input_type": "log",
    "host": "06d09033fb23",
    "source": "/var/log/nginx/access.log",
    "message": "10.15.129.226 - - [18/Jul/2017:12:10:21 +0200] \"POST /orders-service/orders/v1/sessions/update/FUEL_DISPENSER?api_key=vgxt5u24uqyyyd9gmxzpu9n7 HTTP/1.1\" 200 5 \"-\" \"Mashery Proxy\"",
    "type": "log",
    "tags": [
      "beats_input_codec_plain_applied"
    ]   },   "fields": {
    "@timestamp": [
      1500372624791
    ]   },   "sort": [
    1500372624791   ] }
Run Code Online (Sandbox Code Playgroud)

我缺少文档中指定的解析字段:https : //www.elastic.co/guide/en/beats/filebeat/current/exported-fields-nginx.html

为什么不解析日志行?

sum*_*mid 7

运行时filebeat -v -modules=nginx -setup,它将实质上创建4件事:

  • 映射模板
  • kibana仪表板
  • 机器学习工作
  • 提取节点中的过滤器

下面是解析过滤器:
- nginx的访问日志
- Nginx的错误日志

过滤器存储在摄取节点中。您可以通过以下方式访问它们:
http://YourElasticHost:9200/_ingest/pipeline

因此,如果您希望对日志进行解析,则需要通过摄取节点发送日志。

  • @UrosK您介意与那些转换为logstash过滤器的摄取过滤器共享文件吗?谢谢。 (3认同)