MongoDB的简单HTTP/TCP运行状况检查 [英] Simple HTTP/TCP health check for MongoDB

查看:284
本文介绍了MongoDB的简单HTTP/TCP运行状况检查的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要为Docker容器内的MongoDB实例创建运行状况检查.

I need to create a Health Check for a MongoDB instance inside a Docker container.

尽管我可以做出解决方法,并通过CLI使用Mongo Ping,但最好的选择是创建简单的HTTP或TCP测试.在标准ping测试中,默认的27017端口没有响应.

Although I can make a workaround and use the Mongo Ping using the CLI, the best option is to create a simple HTTP or TCP testing. There is no response in the default 27017 port in standard ping testings.

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

Is there any trustworthy way to do it?

推荐答案

我为mongodb创建了简单的运行状况检查,它使用mongo客户端将简单的查询请求(例如db.stats())发送到服务器.

I've created a simple health check for mongodb, it uses the mongo client to send a simple query request (eg. db.stats()) to the server.

$ 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
}

您也可以在一行中执行此操作:

You can also do this in one line:

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

希望有帮助.

更新:

正如@luckydonald所说,ping命令更好,因此您可以像这样:

As @luckydonald said, the ping command is better, so you can do it like:

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

感谢@luckydonald.

Thanks for @luckydonald.

这篇关于MongoDB的简单HTTP/TCP运行状况检查的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆