Tag: logstash

在EC2容器服务上使用Docker的ELK堆栈

我正在考虑在AWS上使用Docker镜像设置ELK(ElasticSearch,LogStash和Kibana)堆栈。 但是我不确定性能和持久存储。 如果我只是使用我的configuration将Docker映像部署到EC2容器服务,那么我想我还需要指出一个位置,用于LogStash和ElasticSearch的持久存储。 S3存储速度是否足够快,或者当我谈论日志时,这一点甚至是很重要的。 我非常肯定,我可以在索引上延迟一些分钟,但是使用Kibana,我希望能够合理快速地获得数据。 这是一个可行的解决scheme,每天都有一些价值的日志的生产设置。 一旦我们看到这个价值,我预计日志量会上升,并开始更多的日志以获得更多的洞察力。 所以: 使用S3存储日志文件足够快吗? 对于每天生产5个以上数据的生产站点,这是一个可行的解决scheme吗?

docker运行如何与容器中的shell运行命令有所不同

当我试图在容器中运行logstash并访问通过主机卷提供的configuration时,我遇到了拒绝权限的问题。 但是,如果我明确地运行在一个shell内的命令,它工作正常。 $ docker run -it –rm -v "$PWD/logstash/config":/etc/logstash/conf.d:Z logstash:latest logstash -f /etc/logstash/conf.d The error reported is: Permission denied – /etc/logstash/conf.d/logstash.conf $ docker run -it –rm -v "$PWD/logstash/config":/etc/logstash/conf.d:Z logstash:latest sh -c 'logstash -f /etc/logstash/conf.d' Settings: Default pipeline workers: 4 Logstash startup completed $ docker run -it –rm -v "$PWD/logstash/config":/etc/logstash/conf.d:Z logstash:latest ls -lZ /etc/logstash/conf.d total 4 […]

Docker:无法将数据从logstash容器发送到Kafka容器

我有2个docker集装箱,1个运行Logstash,另一个运行Zookeeper和Kafka。 我试图将数据从Logstash发送到Kafka,但似乎无法将数据传到我在Kafka的主题中。 我可以login到Docker Kafka容器,并从terminal向我的主题发送消息,然后将其消耗。 我正在使用输出kafka插件: output { kafka { topic_id => "MyTopicName" broker_list => "kafkaIPAddress:9092" } } 运行docker inspect kafka2 当我运行./bin/logstash agent –config /etc/logstash/conf.d/01-input.conf我得到这个错误。 Settings: Default pipeline workers: 4 Unknown setting 'broker_list' for kafka {:level=>:error} Pipeline aborted due to error {:exception=>#<LogStash::ConfigurationError: Something is wrong with your configuration.>, :backtrace=>["/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.3-java/lib/logstash/config/mixin.rb:134:in `config_init'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.3-java/lib/logstash/outputs/base.rb:63:in `initialize'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.3-java/lib/logstash/output_delegator.rb:74:in `register'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.3-java/lib/logstash/pipeline.rb:181:in `start_workers'", […]

从pythonlogin到logstash

我有一些麻烦从Pythonlogin到logstash。 我使用sebp / elk( http://elk-docker.readthedocs.io )和python-logstash( https://pypi.python.org/pypi/python-logstash )作为日志处理程序的docker镜像 Docker镜像显示Beats界面的端口5044( http://elk-docker.readthedocs.io/#usage )。 每当我尝试login到这个端口没有任何反应 …有一些其他的端口,我应该使用? 我已经validationlogstash是这样做的: /opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }' –path.data /root/data Python代码(来自python-logstash的官方示例): import logging from logging import StreamHandler import logstash import sys host = 'localhost' test_logger = logging.getLogger('python-logstash-logger') test_logger.setLevel(logging.INFO) test_logger.addHandler(logstash.TCPLogstashHandler(host, 5044, version=1)) test_logger.addHandler(StreamHandler()) […]

Docker日志,stderr

是否有可能将泊坞窗日志分开stderr \ stdout? 通过fluentd \ logstash等。最终目标 – 将日志发送到elasticsearch并通过stderr \ stdout进行过滤

日志级别作为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运行

build立我的Docker镜像并运行docker run -t imageName后,我得到一个连接被拒绝 在容器内部,我的python脚本正在做Web请求(外部API调用),然后通过localhost:5000与logstash套接字进行通信。 我的dockerfile非常简单: FROM ubuntu:14.04 RUN apt-get update -y RUN apt-get install -y nginx git python-setuptools python-dev RUN easy_install pip #Install app dependencies RUN pip install requests configparser EXPOSE 80 EXPOSE 5000 #Add project directory ADD . /usr/local/scripts/ #Set default working directory WORKDIR /usr/local/scripts CMD ["python", "logs.py"] 但是,当我尝试运行此操作时,出现[ERROR] Connection refused消息。 对我来说,我在这里做错了什么不是很明显 – […]

Docker系统日志驱动程序与logstash中的multithreading分析

我通过syslog驱动程序将我的docker日志转发到logstash。 这对于正常的日志行很有效,但是有多行的问题。 我遇到的问题是docker日志转发添加系统日志消息格式到每个日志行。 如果我使用logstashfilter多行(不build议使用logstash),我可以成功组合多行并删除附加行上的系统日志消息…但是,这不是线程安全的。 我无法通过Logstashbuild议的input编解码器来获取逻辑。 举个例子: Docker命令: docker run –rm -it \ –log-driver syslog \ –log-opt syslog-address=tcp://localhost:15008 \ helloWorld:latest logindocker集装箱 : Log message A <<ML>> Log message B more B1 more B2 more B3 Log message C logging收到logstash <30>Jul 13 16:04:36 [1290]: Log message A <30>Jul 13 16:04:37 [1290]: <<ML>> Log message B <30>Jul 13 […]

docker上的logstash:设置多个pipe道

我在docker上使用这个弹性search堆栈 。 我希望能够运行多个logstash实例,因为logstash实例不支持多个pipe道 怎么做? 是否有可能在同一个docker容器中运行多个实例? 谢谢!

将python日志文件写入logstash

我正在使用Docker提供的ELK堆栈: https://github.com/deviantony/docker-elk 要login我的python程序,我正在使用python-logstash库: https://github.com/vklochan/python-logstash 我正在尝试使用python-logstash github页面上的示例将日志写入logstash(并在Kibana中查看后续数据): LOGGER = logging.getLogger('python-logstash-logger') LOGGER.setLevel(logging.INFO) LOGGER.addHandler(logstash.LogstashHandler(127.0.0.1, 5000, version=1)) LOGGER.error('python-logstash: test logstash error message.') 但是,这不会将任何数据写入ElasticSearch,如下所示: http://127.0.0.1:9200/_search?pretty=true python-logstash库也没有返回错误或debugging信息。 任何人都可以指出我做错了吗? 我的logstash.conf包含以下内容: input { tcp { port => 5000 codec => json } } output { elasticsearch { hosts => "elasticsearch:9200" codec => rubydebug } }