gpt4 book ai didi

mongodb - MongoDB 的简单 HTTP/TCP 健康检查

转载 作者:IT老高 更新时间:2023-10-28 13:18:10 26 4
gpt4 key购买 nike

我需要为 Docker 容器内的 MongoDB 实例创建健康检查。

虽然我可以通过 CLI 解决并使用 Mongo Ping,但最好的选择是创建一个简单的 HTTP 或 TCP 测试。标准 ping 测试默认 27017 端口无响应。

有什么值得信赖的方法吗?

最佳答案

我为 mongodb 创建了一个简单的健康检查,它使用 mongo 客户端发送一个简单的查询请求(例如 db.stats())到服务器。

$ mongo 192.168.5.51:30000/test

MongoDB shell version: 3.2.3
connecting to: 192.168.5.51:30000/test

mongos> db.stats()
{
"raw" : {
"set1/192.168.5.52:27000,192.168.5.53:27000" : {
"db" : "test",
"collections" : 8,
"objects" : 50,
"avgObjSize" : 73.12,
"dataSize" : 3656,
"storageSize" : 53248,
"numExtents" : 8,
"indexes" : 8,
"indexSize" : 65408,
"fileSize" : 469762048,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 6
},
"extentFreeList" : {
"num" : 28,
"totalSize" : 184807424
},
"ok" : 1
}
},
"objects" : 50,
"avgObjSize" : 73,
"dataSize" : 3656,
"storageSize" : 53248,
"numExtents" : 8,
"indexes" : 8,
"indexSize" : 65408,
"fileSize" : 469762048,
"extentFreeList" : {
"num" : 28,
"totalSize" : 184807424
},
"ok" : 1
}

你也可以在一行中做到这一点:

$ echo 'db.stats().ok' | mongo 192.168.5.51:30000/test --quiet
1

希望对你有所帮助。

更新:

正如@luckydonald 所说,ping 命令更好,所以你可以这样做:

$ mongo --eval 'db.runCommand("ping").ok' localhost:27017/test --quiet
1

感谢@luckydonald。

关于mongodb - MongoDB 的简单 HTTP/TCP 健康检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37839365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com