当前位置: 首页 > 知识库问答 >
问题:

Docker Filebeat Nginx日志

洪国兴
2023-03-14

我使用filebeat作为docker,当ıpoint我的nginx登录filebeat时。ymlım在kibana看不到nginx日志这是我的filebeat。yml。我准备好了elastichsearch和kibana容器。当我在日志中启动filebeat容器时,它表示已配置给定的日志路径。但ı无法在kibana上看到任何nginx日志

  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false

# filebeat.autodiscover:
#   providers:
#     - type: docker
#       hints.enabled: true

filebeat.autodiscover:
    providers:
      - type: docker
        hints.enabled: true
        templates:
          - condition:
              contains:
                docker.container.image: nginx
            config:
              - type: docker
                containers.ids:
                    - "${data.docker.container.id}"
              - module: nginx
                access:
                  enabled: true
                  var.paths: ["/var/log/nginx/user_service_access.log"]
                  containers:
                      stream: "stdout"
                error:
                  enabled: true
                  var.paths: ["/var/log/nginx/user_service_access.log"]
                  containers:
                      stream: "stderr"
                      
processors:
- add_cloud_metadata: ~

output.elasticsearch:
  hosts: '${ELASTICSEARCH_HOSTS:ip_address:9200}'

以及我的nginx站点配置的一个例子


    listen 80;
    listen [::]:80;

    # For https
    # listen 443 ssl;
    # listen [::]:443 ssl ipv6only=on;
    # ssl_certificate /etc/nginx/ssl/default.crt;
    # ssl_certificate_key /etc/nginx/ssl/default.key;

    server_name user_service.test;
    root /var/www/user_service/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
        proxy_pass http://ip_address:5601;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php-upstream;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fixes timeouts
        fastcgi_read_timeout 600;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt/;
        log_not_found off;
    }

    error_log /var/log/nginx/user_service_error.log;
    access_log /var/log/nginx/user_service_access.log;
}```

共有2个答案

颛孙子民
2023-03-14

尝试在调试模式下运行filebeat,以检查filebeat配置中的任何故障。从filebeat主页,尝试运行:

filebeat -e -c filebeat.yml -d "*"
韩嘉祯
2023-03-14

filebeat 7.9的自动发现配置。x看起来像这样,它允许从容器的流中解析nginx日志

filebeat.autodiscover:
  providers:
    - type: docker
      hints.enabled: true
      templates:
        - condition.contains:
            docker.container.image: nginx
          config:
            - module: nginx
              access.input:
                type: docker
                containers:
                  ids: "${data.docker.container.id}"
                  stream: "stdout"
              error.input:
                type: docker
                containers:
                  ids: "${data.docker.container.id}"
                  stream: "stderr"
 类似资料:
  • Seafile 服务器有如下日志文件: seafile.log: Seafile服务器的日志 controller.log: 控制器的日志 seahub_django_request.log: Seahub的日志 seahub.log: Django 框架和电子邮件发送的日志 Ccnet Log: logs/ccnet.log (内部 RPC 的日志, 没有实际用处) 专业版特有日志文件: sea

  • 我希望由log4j2创建的日志文件在其文件名中包含日期模式,包括当前活动文件。也就是说,如果今天的日期是2016-12-15,我希望当前日志文件是lager-2016-12-15.log。当日期改变时,我希望创建一个名为lager-2016-12-16.log的新文件。 使用,我无法使当前活动日志文件的文件名中具有日期模式。我的log4j2.xml: 使用此配置,翻转时的复制被搞乱了。从fileN

  • 日志快速入门 Django 使用Python 内建的logging 模块打印日志。该模块的用法在Python 本身的文档中有详细的讨论。如果你从来没有使用过Python 的logging 框架(或者即使使用过),请参见下面的快速导论。 logging 的组成 Python 的logging 配置由四个部分组成: Loggers Handlers Filters Formatters Loggers

  • Nginx 日志主要有两种:access_log(访问日志) 和 error_log(错误日志)。 access_log 访问日志 access_log 主要记录客户端访问 Nginx 的每一个请求,格式可以自定义。通过 access_log 你可以得到用户地域来源、跳转来源、使用终端、某个 URL 访问量等相关信息。 log_format 指令用于定义日志的格式,语法: log_format n

  • Yii提供了一个强大的日志框架,这个框架具有高度的可定制性和可扩展性。使用这个框架, 你可以轻松地记录各种类型的消息,过滤它们, 并且将它们收集到不同的目标,诸如文件,数据库,邮件。 使用Yii日志框架涉及下面的几个步骤: 在你代码里的各个地方记录 记录日志消息就跟调用下面的日志方法一样简单: Yii::trace():记录一条消息去跟踪一段代码是怎样运行的。这主要在开发的时候使用。 Yii::i

  • 介绍 为了帮助你了解你的应用的运行状况,Laravel 提供了强大的日志记录服务,以便你将信息、系统错误记录到文件中,甚至还可以用 Slack 通知你的团队。 Laravel 的日志系统基于 Monolog 库,Monolog 提供了多种强力的日志处理程序。在 Laravel 中可以简单地配置这些处理程序,你可以通过混合使用配置项来自定义应用日志处理程序。 配置 所有日志系统相关的配置都在 con

  • Logger 是一个接口,默认使用 https://github.com/lunny/log 作为Log。你也可以实现你自己的Logger。 type Logger interface { Debugf(format string, v ...interface{}) Debug(v ...interface{}) Infof(format string, v ...int

  • 首先,我们没有从头实现一个日志,我们不过是 适配 日志。我们适配了 log4j 。但是为什么呢? 为什么不直接依赖 slf4j 呢? 我必须要在这里重申一下 Nutz 框架的目标: 尽量让程序员在 设立开发环境 以及 部署应用 的时候获得最佳的体验 如果你下载了 Nutz 的 jar,满心欢喜的加到你的项目里,然后,运行你的项目,你会发现从 Nutz.jar 里会迅速抛出 一个异常。经过一番查阅,