Можно ли получить программный доступ к профилю MongoDB из командной строки?

1

Я хочу создать сценарий мониторинга, который отправляет мне оповещения о медленных запросах.

Поэтому я хочу получить данные профиля программно. Я думаю, я мог бы сделать это с PHP, подключившись к MongoDB (хотя не уверен).

Но было бы лучше, если бы я мог получить доступ к профилировщику непосредственно из сценария bash. Это возможно?

  • 0
    Я полагаю, если бы вы собирали свой собственный декодер BSON, вы могли бы просто найти файл, содержащий db.system.profile и обработать его, но на самом деле; это легче в чем-то вроде PHP и, вероятно, намного лучше с точки зрения использования и интерфейса. Однако большинство используют питона или что-то еще.
Теги:

2 ответа

1
Лучший ответ

Помимо запуска js файлов напрямую или подключения к драйверу, вы также можете напрямую запрашивать mongodb из bash с curl/wget. Все, что вам нужно, это запустить ваш сервер с помощью --rest

mongod --rest

Если ваш сервер прослушивает 27017, добавьте 1000, чтобы получить порт http (в данном случае 28017). Страница, которую вы получаете, - это страница администратора. Здесь вы можете делать базовые запросы:

$ curl -i http://localhost:28017/<dbName>/<collectionName>/

т.е.

$ curl http://localhost:28001/test/foo/?filter_str=Hello   
{
  "offset" : 0,
  "rows": [
    { "_id" : { "$oid" : "50ab8a10df015a6dd00a44a7" }, "str" : "Hello" } ,
    { "_id" : { "$oid" : "50ab8a14df015a6dd00a44a8" }, "str" : "Hello", "x" : 1 }
  ],

  "total_rows" : 2 ,
  "query" : { "str" : "Hello" } ,
  "millis" : 0
}
  • 0
    Это безумие, спасибо
1

Консоль Mongo предоставляет сценарийный режим, который можно встроить в сценарий bash. Более подробную информацию и использование см. на следующей странице: Сценарии оболочки MongoDB

Если вы хотите использовать PHP и напрямую подключаться, PHP находится в списке поддерживаемых MongoDB драйверов и предоставит вам лучший интерфейс, а затем скрипт mongo. Для получения дополнительной информации см. Следующие сведения: Драйверы MongoDB

  • 0
    Это показывает только сценарии с внешним файлом javascript, я не вижу упоминания о bash
  • 0
    Мое предложение состояло в том, чтобы выполнить консоль Монго из скрипта bash, передавая код JavaScript для выполнения. В конце я думаю, вам лучше будет написать это на PHP, используя драйвер Mongo PHP для интерфейса.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню