标签: fluentd

如何监视非root用户的docker容器日志?

我想监视来自非root用户(td-agent)和主机服务器上的docker容器日志,

sudo chmod o+rx /var/lib/docker
sudo find /var/lib/docker/containers/ -type d -exec chmod o+rx {} \;
sudo find /var/lib/docker/containers/ -type f -exec chmod o+r {} \;
Run Code Online (Sandbox Code Playgroud)

但容器目录回滚600和每个容器目录保持600.

# find /var/lib/docker/containers -ls
143142    4 drwx------   4 root     root         4096 Aug 14 12:01 /var/lib/docker/containers
146027    4 drwx------   2 root     root         4096 Aug 14 12:00 /var/lib/docker/containers/145efa73652aad14e1706e8fcd1597ccbbb49fd756047f3931270b46fe01945d
146031    4 -rw-r--r--   1 root     root          190 Aug 14 12:00 /var/lib/docker/containers/145efa73652aad14e1706e8fcd1597ccbbb49fd756047f3931270b46fe01945d/hostconfig.json
146046    4 -rw-r--r--   1 root     root           13 Aug 14 12:00 /var/lib/docker/containers/145efa73652aad14e1706e8fcd1597ccbbb49fd756047f3931270b46fe01945d/hostname
146047    4 -rw-r--r--   1 root     root …
Run Code Online (Sandbox Code Playgroud)

fluentd docker

5
推荐指数
1
解决办法
2359
查看次数

Graylog vs Fluentd

在可用的开源日志管理工具中,我遇到过这两个,但无法弄清楚要使用哪一个.我尝试搜索Graylog vs Fluentd的文章,但找不到.

有人可以建议哪一个适合以下标准,
*生产master-slaves体系结构没有那么高端硬件,例如单核处理器具有4GB RAM和适当的驱动器大小以容纳日志
*通过UI
*日志搜索基于规则的警报
*最小化设置(如果可能)
*从VIP动态添加/删除从属主机

在此先感谢
米尔扎

open-source fluentd graylog

5
推荐指数
1
解决办法
4579
查看次数

流利的Elasticsearch目标索引

我正在使用Fluentd将数据传输到Elasticsearch中。

td-agent.conf

## ElasticSearch
<match es.**>
  type elasticsearch
  target_index_key @target_index  
  logstash_format true
  flush_interval 5s
</match>
Run Code Online (Sandbox Code Playgroud)

Elasticsearch索引:

"logstash-2016.02.24" : {
    "aliases" : { },
    "mappings" : {
      "fluentd" : {
        "dynamic" : "strict",
        "properties" : {
          "@timestamp" : {
            "type" : "date",
            "format" : "strict_date_optional_time||epoch_millis"
          },
          "dummy" : {
            "type" : "string"
          }

        }
      }
    },
Run Code Online (Sandbox Code Playgroud)

传输json数据:

$ curl -X POST -d 'json={"@target_index": "logstash-2016.02.24","dummy":"test"}' http://localhost:8888/es.test
Run Code Online (Sandbox Code Playgroud)

它应该将数据写入给定索引而不是给定索引。它将创建新索引-logstash-2016.02.25,它将数据写入该索引。我想将数据写入给定的索引。

这是Fluentd elasticsearch github链接:https : //github.com/uken/fluent-plugin-elasticsearch

如果我缺少某些东西,请纠正我。

elasticsearch fluentd kibana

5
推荐指数
2
解决办法
6660
查看次数

docker compose oci runtime error,在$ PATH中找不到可执行文件

我正在关注这篇文章:

http://eric-price.net/blog/centralized-logging-docker-aws-elasticsearch

这是我的docker-compose.yml的样子:

version: "2"

services:

  fluentd:
    image: fluent/fluentd:latest
    ports:
      - "24224:24224"
    command: start.sh
    networks:
      - lognet

  nginx:
    image: nginx-pixel
    ports:
      - "80:80"
    logging:
      driver: fluentd
    networks:
      - lognet

networks:
  lognet:
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

my start.sh与yml文件位于同一目录中。当我运行时docker-compose up -d,我得到的是:

ERROR: for fluentd Cannot start service fluentd: oci runtime error: exec: "start.sh": executable file not found in $PATH ERROR: Encountered errors while bringing up the project.

我的码头工人组成信息:

docker-compose version 1.8.0, build f3628c7
docker-py version: 1.9.0
CPython version: 2.7.9
OpenSSL version: …
Run Code Online (Sandbox Code Playgroud)

yaml nginx fluentd docker docker-compose

5
推荐指数
1
解决办法
6319
查看次数

以流利的方式解析nginx入口日志

我想使用流利的Kubernetes来解析入口nginx日志.在Logstash中这很容易,但我对流利的语法感到困惑.

现在我有以下规则:

<source>
  type tail
  path /var/log/containers/*.log
  pos_file /var/log/es-containers.log.pos
  time_format %Y-%m-%dT%H:%M:%S.%NZ
  tag kubernetes.*
  format json
  read_from_head true
  keep_time_key true
</source>

<filter kubernetes.**>
  type kubernetes_metadata
</filter>
Run Code Online (Sandbox Code Playgroud)

结果我得到了这个日志但它没有被解析:

127.0.0.1 - [127.0.0.1] - user [27/Sep/2016:18:35:23 +0000] "POST /elasticsearch/_msearch?timeout=0&ignore_unavailable=true&preference=1475000747571 HTTP/2.0" 200 37593 "http://localhost/app/kibana" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Centos Chromium/52.0.2743.116 Chrome/52.0.2743.116 Safari/537.36" 951 0.408 10.64.92.20:5601 37377 0.407 200
Run Code Online (Sandbox Code Playgroud)

我想应用过滤规则,以便能够在Kibana中通过IP地址,HTTP方法等进行搜索.我该如何实现呢?

nginx fluentd kubernetes

5
推荐指数
1
解决办法
4531
查看次数

是否可以使用 stdout 作为 fluentd 源来捕获特定日志以写入 elasticsearch?

我是 fluentd 和 elasticsearch 的菜鸟,我想知道 fluentd 是否有可能从 stdout 捕获特定日志(在这种情况下,我们的应用程序生成的自定义审计日志) - 使用 stdout 作为源 - 并写入它们到 elasticsearch 中的特定索引。非常感谢您的回复。

elasticsearch fluentd

5
推荐指数
1
解决办法
1915
查看次数

FluentD 日志不可读。它被排除在外,下次会检查

面对:流畅的日志不可读。它被排除在外,下次会检查

我对在 kubernetes 设置中运行的 fluentD 守护程序集有一个简单的配置。

Fluentd 版本:fluentd-0.12.43

下面是我的配置。

  <source>
    @type tail
    path /var/log/containers/sample*.log
    time_format %Y-%m-%dT%H:%M:%S.%NZ
    tag sample.*
    format json
    read_from_head true
  </source>
  <match sample.**>
    @type forward
    heartbeat_type tcp
    send_timeout 60s
    recover_wait 10s
    hard_timeout 60s
    <server>
      name worker-node2
      host 10.32.0.15
      port 24224
      weight 60
    </server>
  </match>
Run Code Online (Sandbox Code Playgroud)

低于警告并且没有转发日志

2018-08-03 06:36:53 +0000 [警告]:/var/log/containers/samplelog-79bd66868b-t7xn9_logging1_fluentd-70e85c5d6328e7d.log 不可读。它被排除在外,下次会检查。

2018-08-03 06:37:53 +0000 [警告]:/var/log/containers/samplelog-79bd66868b-t7xn9_logging1_fluentd-70e85c5bc89ab24.log 不可读。它被排除在外,下次会检查。

日志文件权限:

[root@k8s-master fluentd-daemonset]# ls -lrt **/var/log/containers/**

**lrwxrwxrwx** Jun 25 06:25 sample-77g68_kube-system_kube-proxy-9f3c3951c32ee.log 
-> /var/log/pods/aa1f8d5b-746f-11e8-95c0-005056b9ff3a/sample/7.log
Run Code Online (Sandbox Code Playgroud)

守护进程集的 YAML 文件有挂载说明:

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: …
Run Code Online (Sandbox Code Playgroud)

logging fluentd kubernetes

5
推荐指数
2
解决办法
5474
查看次数

通过daemonset运行的流利的Pod在Google容器引擎上被警告终止

我正在尝试在kubernetes集群(GKE)上将fluentd作为守护程序运行。配置已成功解析,然后插件收到关闭信号,几乎没有警告消息。没有错误消息。我尝试增加详细程度,以下是pod的输出:

fluentd-7przp fluentd 2018-09-08 11:02:46 +0000 [info]: #0 fluent/log.rb:322:info: starting fluentd worker pid=9 ppid=1 worker=0
fluentd-7przp fluentd 2018-09-08 11:02:46 +0000 [info]: #0 fluent/log.rb:322:info: fluentd worker is now running worker=0
fluentd-sr764 fluentd 2018-09-08 11:02:50 +0000 [warn]: #0 fluent/log.rb:342:warn: dump an error event: error_class=NoMethodError error="undefined method `[]' for nil:NilClass" location="/fluentd/vendor/bundle/ruby/2.3.0/gems/fluent-plugin-elasticsearch-2.10.1/lib/fluent/plugin/out_elasticsearch_dynamic.rb:268:in `eval'" tag="fluent.info" time=2018-09-08 11:02:45.151774166 +0000 record={"worker"=>0, "message"=>"fluentd worker is now running worker=0"}
fluentd-dhwnx fluentd 2018-09-08 11:02:51 +0000 [warn]: #0 fluent/log.rb:342:warn: dump an error event: error_class=NoMethodError error="undefined method `[]' for nil:NilClass" location="/fluentd/vendor/bundle/ruby/2.3.0/gems/fluent-plugin-elasticsearch-2.10.1/lib/fluent/plugin/out_elasticsearch_dynamic.rb:268:in `eval'" …
Run Code Online (Sandbox Code Playgroud)

fluentd kubernetes google-kubernetes-engine td-agent

5
推荐指数
1
解决办法
566
查看次数

Fluentd 在单行中格式化 Java 异常日志

我在 GCP 中部署了一个 java 应用程序。使用 fluentd 将该日志文件指向 Stackdriver 日志记录。

Java exception log在单独的行中格式化。因此 Stackdriver 日志记录无法将其捕获为 error/warning 。

我需要在一行中格式化我的 java 应用程序异常跟踪。 需要区分信息、错误、警告。

我流畅的配置:

<source>
  type tail
  format none
  path /home/app/*-local-app-output.log
  pos_file /var/lib/google-fluentd/pos/local-app.pos
  read_from_head true
  tag local-app
</source>
Run Code Online (Sandbox Code Playgroud)

也试过

  format multiline
  format_firstline /\d{4}-\d{1,2}-\d{1,2}/
  format1 /^(?<time>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}) \[(?<thread>.*)\] (?<level>[^\s]+)(?<message>.*)/
  time_format %b %d %H:%M:%S
Run Code Online (Sandbox Code Playgroud)

当前显示输出: 在此处输入图片说明

而在 Kubernetes 引擎中部署相同的应用程序,它有单独的日志类别字段: info , warn , error , critical 。

谁可以帮我这个事 ?

fluentd google-cloud-stackdriver

5
推荐指数
0
解决办法
440
查看次数

为什么弹性搜索容器的内存使用量很少增加而不断增加?

我已经使用eks kubernetes集群在AWS中部署了Elastic-search容器。即使只有3个索引并且使用率不高,容器的内存使用量仍在增加。我正在使用FluentD将集群容器日志转储到弹性搜索中。除此之外,没有使用弹性搜索。我尝试使用来应用最小/最大堆大小-Xms512m -Xmx512m。它可以成功应用,但仍会在24小时内使内存使用率几乎翻倍。我不确定还必须配置其他哪些选项。我尝试将docker image从更改elasticsearch:6.5.4elasticsearch:6.5.1。但是问题仍然存在。我也尝试了-XX:MaxHeapFreeRatio=50Java选项。

查看kibana的屏幕截图。 在此处输入图片说明

编辑:以下是Elastic-search初创公司的日志:

[2019-03-18T13:24:03,119][WARN ][o.e.b.JNANatives         ] [es-79c977d57-v77gw] Unable to lock JVM Memory: error=12, reason=Cannot allocate memory
[2019-03-18T13:24:03,120][WARN ][o.e.b.JNANatives         ] [es-79c977d57-v77gw] This can result in part of the JVM being swapped out.
[2019-03-18T13:24:03,120][WARN ][o.e.b.JNANatives         ] [es-79c977d57-v77gw] Increase RLIMIT_MEMLOCK, soft limit: 16777216, hard limit: 16777216
[2019-03-18T13:24:03,120][WARN ][o.e.b.JNANatives         ] [es-79c977d57-v77gw] These can be adjusted by modifying /etc/security/limits.conf, for example: 
    # allow user 'elasticsearch' mlockall
    elasticsearch soft memlock unlimited
    elasticsearch hard memlock unlimited …
Run Code Online (Sandbox Code Playgroud)

java elasticsearch fluentd docker kubernetes

5
推荐指数
1
解决办法
726
查看次数