Tag: 麋鹿堆栈

我无法让Filebeat读取使用Docker json-file驱动程序生成的日志文件

我试图在容器中运行Filebeat并将日志转发到另一个容器中的Logstash。 我希望它监视我在其他docker容器中运行的各种pipe道的日志。 在运行我的pipe道容器(在/var/lib/docker/containers/目录下创build日志文件)时,我正在使用log-driver json-file参数。 然后,我将这个目录映射到filebeat容器上的一个卷,如下所示: -v /var/lib/docker/containers:/srv/logs 并与勘探者在看: – /srv/logs/*/*.log 问题是,当我试图猛击Filebeat容器,并尝试查看/srv/logs/中的日志文件,我得到一个权限被拒绝的错误,权限如下所示: ??????????? ? ? ? ? ? 54c80fb1e1e46137b561869369945d3a6ff89ee17f06ca3f1af3c5333ede2978-json.log 有没有办法控制docker创build的日志文件的文件权限? Filebeat访问由其他容器生成的日志文件的最佳方式是什么? 谢谢您的帮助。

在达到限制时限制elasticsearch索引的大小和翻转

我有一个运行elasticsearch的docker容器,最近我遇到了容器因为空间不足而停下来的情况。 现在我无法启动(立即停止)并清理磁盘。 我知道我可以在一些时间基础上(日常)将日志写入不同的索引(然后我已经这样做了),然后清理它们,但即使采用这种方法,当我的容器生成如此多的日志时,我的清理工作开始之前,空间不足,将被打破。 我今后如何通过elasticsearch来防止这种情况,以确保我的索引不超过我定义的限制? 是否有更好的方法来pipe理elasticsearch日志占用的磁盘空间?

将数据从docker容器保存到主机

我正在运行在Windows 10笔记本电脑的docker,我已经build立了我的第一个容器运行Elasticsearch使用Dockerfile,它的工作原理。 每当我停止容器并重新启动,数据就消失了。 在我的Windows机器上,我创build了位置C:/Docker/esdata的文件夹,并在我的C:/Docker/esdata中添加了path.data: /usr/share/elasticsearch/data是数据。 在Dockerfile中我添加了: VOLUME /c/Docker/esdata:/usr/share/elasticsearch/data 但这仍然行不通,有人可以告诉我我做错了什么。

Docker ELK堆栈与docker-py

我试图在运行Ubuntu 14.04的VirtualBox虚拟机上部署docker-py的ELK栈。 目前运行docker 1.7版,并使用Docker Hub库官方容器进行elasticsearch,kibana和logstash。 我写了一个简短的脚本来拉取,configuration和启动容器。 elasticsearch和kibana容器运行成功,但logstash容器在大约23秒后退出。 我的logstash.start.py: from docker import Client import docker import simplejson as json import os c = Client() ##### LOGSTASH ##### ### configure container logstash = c.create_container( image = 'logstash:latest', name = 'logstash', volumes = ['/home/ops/projects/dockerfiles/scripts/elk/conf-dir', '/data/csv'], ports = [25826], host_config = docker.utils.create_host_config( binds={ '/home/projects/dockerfiles/scripts/elk/conf-dir': { 'bind': '/conf-dir', 'ro': True […]

在Docker中运行命令

我从这里克隆了一个ELK栈docker: https://github.com/deviantony/docker-elk docker-compose.yml包含以下docker-compose.yml文件: elasticsearch: image: elasticsearch:latest command: elasticsearch -Des.network.host=0.0.0.0 ports: – "9200:9200" – "9300:9300" logstash: image: logstash:latest command: logstash -f /etc/logstash/conf.d/logstash.conf volumes: – ./logstash/config:/etc/logstash/conf.d ports: – "5000:5000" links: – elasticsearch kibana: build: kibana/ volumes: – ./kibana/config/:/opt/kibana/config/ ports: – "5601:5601" links: – elasticsearch 现在我可以使用docker docker-compose up -d命令启动docker守护进程docker-compose up -d – 但现在我想用logstash导入一些东西,所以我需要使用logstash命令 – 我该怎么做? 在docker位置,我得到一个错误,指令无法find。

使用KitematicconfigurationELK – 弹性search不会启动 – localhost不可用

我试图用Kitematicbuild立ELK(Elasticsearch,Logstash,Kibana)。 我在这里跟着这些互动。 采取的步骤: 安装Kitematic 下载了ELK包 运行容器 我给了以下端口: 我可以访问http://192.168.99.100:32839/app/kibana上的 Kibana,但看到这个错误: http:// localhost:9200返回服务器未find错误。 然后我ssh进入容器,并尝试运行service start elasticsearch但收到以下失败: * Starting Elasticsearch Server sysctl: setting key "vm.max_map_count": Read-only file system [fail] 我的问题: 我是否期望能够通过http:// localhost访问容器服务? 为什么弹性search不能启动? 我可以通过指定弹性search容器url将我自己的脚本(twitter情绪分析数据)的输出连接到弹性search吗? 我自己的调查: 第三条 第1条 第二条 新来的Docker,如果我失去了一些明显的道歉,我很抱歉。

Docker + ELK堆栈占用了更多的空间

所以我有一个docker撰写文件,看起来像这样 elasticsearch: image: elasticsearch:latest command: elasticsearch volumes: – ./elasticsearch/data:/usr/share/elasticsearch/data – ./elasticsearch/config:/usr/share/elasticsearch/config – ./elasticsearch/logs:/usr/share/elasticsearch/logs ports: – "9200:9200" – "9300:9300" restart: always environment: – ES_HEAP_SIZE=1g logstash: build: logstash/ command: logstash -f /config/logstash.conf volumes: – ./logstash/config:/config ports: – "5044:5044" links: – elasticsearch environment: – LS_HEAP_SIZE=512m kibana: build: kibana/ volumes: – ./kibana/config/:/opt/kibana/config/ ports: – "5601:5601" links: – elasticsearch 当检查索引大小/磁盘使用情况时,似乎有一些偏差。 […]

Docker群集和elasticsearch,使用约束将服务绑定到特定节点

我希望这里有人能够给我一些问题,我有一些input。 我有一个3节点的Docker群集,想运行ELK堆栈,但我不知道如何存储我的数据。 version: '3' services: master01: image: elasticsearch:5.2.2 ports: – 9200:9200 – 9300:9300 networks: – es volumes: – /es/data:/usr/share/elasticsearch/data command: > elasticsearch -E network.host=_eth0_ -E node.master=true -E discovery.zen.ping.unicast.hosts=es_master01,es_master02,es_master03 -E discovery.zen.minimum_master_nodes=3 -E cluster.name=ElasticCluster -E node.name=es_master01 -E transport.tcp.port=9300 -E http.port=9200 -E node.max_local_storage_nodes=3 deploy: replicas: 1 master02: image: elasticsearch:5.2.2 ports: – 9201:9200 – 9301:9300 networks: – es volumes: […]

docker工人:发送日志到本地主机不起作用,但0.0.0.0确实工作,为什么?

更新:现在我有一个问题。 在logstash之前启动容器时,UDP日志不会到达logstash。 根据这个错误报告,这是因为 linux内核保持每个连接的状态。 即使udp是无连接的 据我了解,这些连接被caching。 Logstash收到一个新的IP,因此没有包,当我使用localhost(而不是0.0.0.0)时不会发生这种情况,因为IP永不改变,docker将消息转发到暴露的端口。 任何想法如何使它与本地主机(或服务名称,因为我使用docker群)工作? 我有一个dockerized应用程序(logstash),它发布端口12201 / udp来监听日志。 这符合docker文档 这将容器的端口8080绑定到主机的127.0.0.1上的端口80。 但是,如果我发送消息与netcat到本地主机:12201 / udp应用程序收到什么。 而当我发送消息到0.0.0.0:12201/udp一切按预期工作。 为什么? 这是否会引入性能/安全问题? 它可能是一个错误? 据我所知0.0.0.0被翻译成机器的所有IP地址,机器有自己的IP地址和一些172.0 。 docker根据Docker容器联网文档创build的地址/networking。 出于某种原因,似乎发布的端口不是映射到本地主机,而是一些其他networking。 我正在群中运行我的应用程序,并且从群中的任何机器运行0.0.0.0。 这里是我撰写文件的相关部分: networks: logging: volumes: logging_data: services: logstash: image: docker.elastic.co/logstash/logstash:5.3.1 logging: driver: "json-file" networks: – logging ports: – "12201:12201" – "12201:12201/udp" entrypoint: logstash -e 'input { gelf { } } output […]

ELK泊坞窗通过本地主机访问

我已经在windows上安装了docker,克隆了ELK堆栈机器,进入克隆文件夹,运行以下命令: docker-compose up 而当我尝试访问http://localhost:5601 ,或5600端口,我得到page not found错误。 怎么了? 我如何访问docker?