Kubernetes模块上的Filebeat无法正常工作

时间:2019-06-28 21:20:21

标签: kubernetes filebeat

我正在使用本指南在Kubernetes集群上运行filebeat。 https://www.elastic.co/guide/en/beats/filebeat/master/running-on-kubernetes.html#_kubernetes_deploy_manifests

  

filebeat版本:6.6.0

我使用以下命令更新了配置文件:

filebeat.yml: |-
filebeat.config:
  inputs:
    # Mounted `filebeat-inputs` configmap:
    path: ${path.config}/inputs.d/*.yml
    # Reload inputs configs as they change:
    reload.enabled: false
  modules:
    path: ${path.config}/modules.d/*.yml
    # Reload module configs as they change:
    reload.enabled: false
# To enable hints based autodiscover, remove `filebeat.config.inputs` configuration and uncomment this:
#filebeat.autodiscover:
#  providers:
#    - type: kubernetes
#      hints.enabled: true

filebeat.modules:
- module: nginx
  access:
    enabled: true
    var.paths: ["/var/log/nginx/access.log*"]
- module: apache2
  access:
    enabled: true
    var.paths: ["/var/log/apache2/access.log*"]
  error:
    enabled: true
    var.paths: ["/var/log/apache2/error.log*"]

但是,filebeat不会从PHP应用程序(/var/log/apache2/error.log)中获取日志。我通过exec进入filebeat窗格进行检查,发现没有启用apache2和nginx模块。

如何在上面的yaml文件中正确设置它。

更新

我使用以下设置更新了文件拍配置文件:

filebeat.autodiscover:
  providers:
    - type: kubernetes
      hints.enabled: true
      templates:
        - condition:
          config:
            - type: docker
              containers.ids:
                - "${data.kubernetes.container.id}"
              exclude_lines: ["^\\s+[\\-`('.|_]"]  # drop asciiart lines
        - condition:
            equals:
              kubernetes.labels.app: "my-apache-app"
          config:
            - module: apache2
              log:
                input:
                  type: docker
                  containers.ids:
                    - "${data.kubernetes.container.id}"

apiVersion: v1
kind: ConfigMap
metadata:
  name: filebeat-modules
  namespace: default
  labels:
    k8s-app: filebeat
data:
  apache2.yml: |-
    - module: apache2
      access:
    enabled: true
      error:
    enabled: true
  nginx.yml: |-
    - module: nginx
      access:
    enabled: true

现在,我正在/dev/stderr中记录apache错误,以便可以通过kubectl logs看到它。日志通过kibana仪表板获取。但是,仍然无法看到apache模块。

我尝试用./filebeat modules list进行检查:

Enabled:
apache2
nginx

Disabled:

Kibana仪表板

enter image description here

0 个答案:

没有答案