Tag: elk stack

docker-elk – 如何保持elasticsearch索引?

我只是要抓住Docker和docker-compose,试图为Elasticsearch创build一个开发环境,我将在稍后部署。 我一直在使用docker-elk作为参考,并且设法创build了一个工作的Elasticsearch容器,将其种子,并在我的项目中使用它。 据我了解,除非您使用Volumes API并在容器访问( 在此处阅读)之外创build一个容器,否则Docker容器不会持久化数据。 然而docker-elk只使用卷来共享一个configurationyml文件,但不知何故,当我重新启动容器时,我的弹性索引仍然存在。 从docker麋鹿自述: 存储在Elasticsearch中的数据将在容器重启后保留,但不会在容器移除后保留。 有人可以请解释下面的configuration是什么部分允许docker集装箱坚持索引? 泊坞窗,compose.yml version: '2' services: elasticsearch: build: context: build/elasticsearch/ volumes: – ./build/elasticsearch/config.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro ports: – "9200:9200" – "9300:9300" environment: ES_JAVA_OPTS: "-Xmx256m -Xms256m" networks: – elk networks: elk: driver: bridge build立/ elasticsearch / Dockerfile FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.0.0 build立/ elasticsearch / config.yml cluster.name: "docker-cluster" network.host: 0.0.0.0 discovery.zen.minimum_master_nodes: 1 discovery.type: single-node

Kibana 5.5.1后面的一个nginx 1.13代理(dockerized)

目标: 我想在Docker容器中运行麋鹿堆栈。 为了能够通过nginx代理访问ELK栈来绕过服务的各个端口。 Kibana服务(默认端口5601) http://<server>.com:5601 应通过以下地址可达: http://<server>.com/kibana 问题: 问题是,在将server.basePath设置添加到configuration后,无法到达kibana站点。 如果我将Kibana的每个base API调用添加到nginxconfiguration(/ api,/ ui,…),我只能提供服务。 configuration: Kibana的configuration: /opt/kibana/config/kibana.yml 有以下条目: server.host: "0.0.0.0" server.basePath: "/kibana" 其他一切都是默认的 Doku server.basePath # Enables you to specify a path to mount Kibana at if you are running behind a proxy. This only affects # the URLs generated by Kibana, your proxy is expected […]

使用Logstash自动检测并读取日志文件更改

上周我一直在使用ELK Stack的集中式日志logging解决scheme。 我目前使用的环境基本上是Elasticsearch,Logstash,Kibana和Logspout的4个容器。 我正在使用带有本地计算机上的共享卷的文件input来收集logstash日志。 我目前使用的logstashconfiguration文件是这样的(logstash.sample.conf): input { file { path => "/share-logs/lumen.log" stat_interval => 1 type => applumen #sincedb_path => "/share-logs/lumen.log.sincedb" sincedb_path => "/dev/null" } file{ path => "/share-logs/laravel.log" type => applaravel #sincedb_path => "/share-logs/laravel.log.sincedb" stat_interval => 1 sincedb_path => "/dev/null" } file { path =>"/share-logs/server.log" type => appjava #sincedb_path => "/share-logs/server.log.sincedb" sincedb_path => "/dev/null" […]

日志级别作为Docker GELF日志logging驱动程序的字段

我想从docker容器获取stdout日志,并将它们发送到ELK堆栈。 到目前为止,我知道Docker中有一个GELF日志logging驱动程序。 然而,我不知道如何parsing消息中的ERROR , WARNING或DEBUG消息,并将它们放入日志消息中的log_level类的新字段中,然后Docker将它们发送给ELK。 日志消息应该是这样的: { "client": "127.0.0.1", "user": "frank", "timestamp": "2000-10-10 13:55:36 -0700", "method": "GET", "uri": "/apache_pb.gif", "protocol": "HTTP/1.0", "status": 200, "size": 2326, "message": "[ERROR] Error connecting to MongoDB", "_logLevel" : "ERROR" } 哪个docker在发送到ELK之前添加了"_logLevel" : "ERROR" 。 谢谢。

Docker应用程序使用Filebeat和Logstash进行日志logging

我有一套dockerized应用程序分散在多个服务器上,并尝试使用ELK设置生产级集中式日志logging。 我对ELK部分本身可以,但是我对如何将日志转发到我的logstash有点困惑。 我试图使用Filebeat,因为它的负载均衡function。 我还想避免将Filebeat(或其他任何东西)包装到我的所有docker中,并将它们分开,dockerized或不。 我如何继续? 我一直在尝试以下。 我的Dockerslogin标准输出,所以configuration了一个非dockerized Filebeat从标准input读取我做: docker日志-f mycontainer | ./filebeat -e -c filebeat.yml 这似乎开始工作。 第一个日志被转发到我的logstash。 caching的我猜。 但是在某个时候,它会卡住并继续发送相同的事件 这只是一个错误,或者我是在一个错误的方向? 你有什么解决scheme?