我想玩與graylog的mongo探查器插件使用碼頭運行的一切。但是我無法將任何分析日誌記錄到graylog中。Graylog2 mongo探查器插件不會連接到mongo實例,錯誤:「異常打開套接字」(一切dockerized)
當我開始從graylog UI蒙戈輸入它最終超時併產生錯誤:
Timed out after 30000 ms while waiting for a server that matches WritableServerSelector. Client view of cluster state is {type=UNKNOWN, servers=[{address=localhost:37017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused}}].
這是基於以下的graylog dockerhub installation和mongo 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)我創建了映射,因爲我擔心如果我用27017,即graylog看起來可能會在其自身的內部MongoDB的集裝箱港口單獨蒙戈泊塢窗容器:
docker run -d -p 37017:27017 mongo:2.4
我開始蒙戈會話和啓用「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中的條目「蒙戈探查輸入」。
(4)創建一個 「蒙戈分析器輸入」 輸入與:
- 主機名:本地主機
- 端口:37017
- 數據庫:graylog
(5)後,我點擊保存,輸入嘗試啓動,然後最終失敗,如上所述。重新啓動Graylog或嘗試重新啓動輸入會導致相同的故障。
我曾嘗試步驟(2)不同版本的蒙戈的情況下,有一些驅動程序不兼容,但他們都失敗,同樣的錯誤。我試過泊塢窗圖片:
- 蒙戈:3
- 蒙戈:2。6個
- 蒙戈:提前2.4
謝謝!
a)您是否還需要與Graylog一起運行的「some-mongo」? b)似乎Graylog試圖使用「localhost」連接到外部Mongo。不知道這是否可以工作,因爲「localhost」會引用它自己的容器。嘗試使用Docker主機的IP地址。 – Thilo
@Thilo a)這就是graylog本身的mongo實例。它在其中存儲了一些元數據。 b)是的,這工作! Danke Thilo! :曲奇餅: – rmin