【问题标题】:Is it possible to access MongoDB's profile from the command line programatically?是否可以以编程方式从命令行访问 MongoDB 配置文件?
【发布时间】:2012-11-15 11:38:05
【问题描述】:

我想创建一个监控脚本,向我发送有关慢查询的警报。

所以我想以编程方式获取配置文件数据。我想我可以通过连接到 MongoDB 从 PHP 中做到这一点(虽然不确定)。

但如果我可以直接从 bash 脚本访问探查器会更好。这可能吗?

【问题讨论】:

  • 我想如果您要构建自己的 BSON 解码器,您可以只查找包含 db.system.profile 的文件并处理它,但真的;这在 PHP 之类的东西中更容易,并且在使用和界面方面可能要好得多。但是大多数使用 python 或其他代理。

标签: php bash shell mongodb


【解决方案1】:

除了直接运行js文件或者连接驱动外,还可以通过curl/wget直接从bash中查询mongodb。您只需要使用 --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
}

【讨论】:

    【解决方案2】:

    Mongo 控制台提供了一种脚本模式,您可以将其嵌入到 bash 脚本中。有关详细信息和用法,请参见以下页面: Scripting the MongoDB Shell

    如果您想使用 PHP 并直接连接,PHP 位于 MongoDB 支持的驱动程序列表中,它会为您提供比脚本 mongo 更好的界面。有关更多信息,请参阅以下内容: MongoDB Drivers

    【讨论】:

    • 只显示使用外部 javascript 文件的脚本,我没有看到任何提及 bash
    • 我的建议是从 bash 脚本中执行 mongo 控制台,传递 Javascript 代码来执行。最后,我认为使用 Mongo PHP 驱动程序在 PHP 中编写此代码会更好。
    • 啊好吧,有点混乱,听起来你可以直接将 bash 传递给 mongo
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2019-01-29
    • 2012-09-21
    相关资源
    最近更新 更多