Как я могу увидеть, какие порты Монго слушает из оболочки Монго? - PullRequest
90 голосов
/ 19 февраля 2012

Если у меня запущен экземпляр mongo, как я могу проверить, какие номера портов он прослушивает из оболочки? Я думал, что db.serverStatus() сделает это, но я этого не вижу. Я вижу это

"connections" : {
    "current" : 3,
    "available" : 816

Что близко ... но нет. Предложения? Я прочитал документы и не могу найти команду, которая сделает это.

Ответы [ 4 ]

212 голосов
/ 19 февраля 2012

Вы можете сделать это из оболочки операционной системы, запустив:

sudo lsof -iTCP -sTCP:LISTEN | grep mongo
66 голосов
/ 20 февраля 2012

В системной оболочке вы можете использовать lsof (см. Ответ Дерика ниже) или netstat -an, чтобы посмотреть, что на самом деле делает процесс.Однако, если у вас есть доступ только к оболочке mongo (что подразумевает заголовок вашего вопроса), вы можете выполнить команду serverCmdLineOpts().Эти выходные данные дадут вам все аргументы, переданные в командной строке (argv) и аргументы из конфигурационного файла (проанализированы), и вы можете сделать вывод, что порты mongod прослушивает на основе этой информации.Вот пример:

db.serverCmdLineOpts()
{
    "argv" : [
        "./mongod",
        "-replSet",
        "test",
        "--rest",
        "--dbpath",
        "/data/test/r1",
        "--port",
        "30001"
    ],
    "parsed" : {
        "dbpath" : "/data/test/r1",
        "port" : 30001,
        "replSet" : "test",
        "rest" : true
    },
    "ok" : 1
}

Если вы не передали определенные параметры порта, подобные указанным выше, то mongod будет прослушивать 27017 и 28017 ( http console ) по умолчанию,Примечание: есть пара других аргументов, которые могут изменять порты, не будучи явными, см. Здесь:

https://docs.mongodb.org/manual/reference/configuration-options/#sharding.clusterRole

26 голосов
/ 07 декабря 2015

Попробуйте это:

db.runCommand({whatsmyuri : 1})

Будет отображаться как IP-адрес, так и номер порта.

10 голосов
/ 19 февраля 2012

MongoDB прослушивает только один порт по умолчанию (27017).Если интерфейс --rest активен, порт 28017 (27017 + 1000) также будет открыт для обработки веб-запросов на получение подробной информации.

MongoDB поддерживает команду getParameter, но это работает, только если вы уже подключеныв базу данных (в этот момент вы уже знаете порт).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...