Graylog2 mongo profiler插件不会连接到mongo实例,错误:“异常打开套接字”(所有内容都是dockerized)

时间:2017-02-22 12:48:24

标签: mongodb graylog2

我正在尝试使用graylog的mongo profiler插件使用docker来运行所有内容。但我无法将任何分析日志记录到graylog中。

当我从graylog UI启动mongo输入时,它最终会超时并出现错误:

  

在等待与WritableServerSelector匹配的服务器时,在30000 ms后超时。簇状态的客户端视图是{式=未知,服务器= [{地址=本地主机:37017,类型=未知,状态= CONNECTING,异常= {com.mongodb.MongoSocketOpenException:异常开口插座},由{java.net。 ConnectException:Connection refused}}]。

这是我的设置基于graylog dockerhub installationmongo profiler plugin guide以及修改位:

(1)我使用docker-compose文件调出graylog,mongo和elastic:

version: '2'
services:
  some-mongo:
    image: "mongo:3"
  some-elasticsearch:
    image: "elasticsearch:2"
    command: "elasticsearch -Des.cluster.name='graylog'"
  graylog:
    image: graylog2/server:2.2.1-1
    environment:
      GRAYLOG_PASSWORD_SECRET: somepasswordpepper
      GRAYLOG_ROOT_PASSWORD_SHA2: 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
      GRAYLOG_WEB_ENDPOINT_URI: http://127.0.0.1:9000/api
    links:
      - some-mongo:mongo
      - some-elasticsearch:elasticsearch
    ports:
      - "9000:9000"
      - "514:514/udp"
      - "12202:12202"
      - "37017:37017"

到目前为止,这已经很好了,我已经能够发送syslog udp消息和gelf http消息。

(2)我创建了一个单独的mongo docker容器,其中映射了端口,因为我担心如果我使用27017,那个graylog可能会在其自己的内部mongodb容器中查找:

docker run -d -p 37017:27017 mongo:2.4

我启动一个mongo会话并启用“graylog”数据库的分析:

$ mongo --port 37017
> use graylog
> db.setProfilingLevel(2)
{ "was" : 0, "slowms" : 100, "ok" : 1 }
> db.foo.insert({_id:1})

// Check that profiling data is being written to system.profile:
> db.system.profile.find().limit(1).sort( { ts : -1 } ).pretty()
{
    "op" : "query",
    "ns" : "graylog.foo",
    "query" : {

    },
    "ntoreturn" : 0,
    "ntoskip" : 0,
    ....
    "allUsers" : [ ],
    "user" : ""
}

所以看起来mongod实例正在运行并且分析正在运行。

(3)我将插件jar和docker cp下载到graylog docker容器内的插件目录中。类似的东西:

docker cp graylog-plugin-mongodb-profiler-2.0.1.jar e89a2decda37:/usr/share/graylog/plugin

然后重启graylog。

我可以看到文件在那里:

$ docker exec -it e89a2decda37 /bin/sh
# ls /usr/share/graylog/plugin
graylog-plugin-anonymous-usage-statistics-2.2.1.jar  graylog-plugin-map-widget-2.2.1.jar
graylog-plugin-beats-2.2.1.jar               graylog-plugin-mongodb-profiler-2.0.1.jar
graylog-plugin-collector-2.2.1.jar           graylog-plugin-pipeline-processor-2.2.1.jar
graylog-plugin-enterprise-integration-2.2.1.jar

因此该部分似乎工作正常,我可以在graylog UI的输入类型列表中看到一个条目“Mongo profiler input”。

(4)我创建了一个“Mongo profiler input”输入:

  • hostname:localhost
  • port:37017
  • 数据库:graylog

(5)点击“保存”后,输入尝试启动,最终失败,如上所述。重新启动graylog或尝试重新启动输入会导致相同的故障。

我已尝试使用不同版本的mongo的步骤(2),以防有一些驱动程序不兼容但它们都失败并出现相同的错误。我试过码头图像:

  • 蒙戈:3
  • 蒙戈:2.6
  • 蒙戈:2.4

提前致谢!

0 个答案:

没有答案