tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

認証入れたmongodbでmongostat、mongotop、db.serverStatus()の使い方メモ

完全自分用です
mongotopなんかのhelp見ると--authenticationDatabase(dbを指定?)ってのがあったんですが
いまいち使い方わかってなかったのでメモ

はじめに

mongotopをおもむろに-hでヘルプ見てみます

View live MongoDB collection statistics.

options:
  --help                                produce help message
  -v [ --verbose ]                      be more verbose (include multiple times
                                        for more verbosity e.g. -vvvvv)
  --version                             print the program's version and exit
  -h [ --host ] arg                     mongo host to connect to ( <set
                                        name>/s1,s2 for sets)
  --port arg                            server port. Can also use --host
                                        hostname:port
  --ipv6                                enable IPv6 support (disabled by
                                        default)
  -u [ --username ] arg                 username
  -p [ --password ] arg                 password
  --authenticationDatabase arg          user source (defaults to dbname)
  --authenticationMechanism arg (=MONGODB-CR)
                                        authentication mechanism
  --locks                               use db lock info instead of top

--authenticationDatabaseはDBを指定すればよいのね、ってことでこんな感じで指定してみました
が、エラー。。。。

# mongotop -u hogeuser -p hogepass --authenticationDatabase hogedb
connected to: 127.0.0.1
error: { ok: 0.0, errmsg: "unauthorized" }
error: { ok: 0.0, errmsg: "unauthorized" }

結論

mongotop、mongostatはadmin DBを指定しなければいけないらしく

  • --authenticationDatabase…admin DB名
  • -u…admin DBのユーザ名
  • -p…admin DBのパスワード

と指定することで動きました

mongotop

使い方

mongotop -u adminユーザ名 -p adminパスワード --authenticationDatabase adminデータベース名

使用例
# mongotop -u adminユーザ名 -p adminパスワード --authenticationDatabase admin
connected to: 127.0.0.1

                             ns       total        read       write             2014-03-10T03:57:00
               local.oplog.rs         2ms         1ms         1ms
                 local.slaves         1ms         0ms         1ms
             hoge.test_201402         0ms         0ms         0ms
             hoge.test_201403         0ms         0ms         0ms
        hoge.test_play_201402         0ms         0ms         0ms
        hoge.test_play_201403         0ms         0ms         0ms
             hoge.item_201401         0ms         0ms         0ms

                             ns       total        read       write             2014-03-10T03:57:01
             hoge.test_201402         0ms         0ms         0ms
             hoge.test_201403         0ms         0ms         0ms
        hoge.test_play_201402         0ms         0ms         0ms
        hoge.test_play_201403         0ms         0ms         0ms
             hoge.item_201402         0ms         0ms         0ms
             hoge.item_201403         0ms         0ms         0ms

                             ns       total        read       write             2014-03-10T03:57:02
          hoge.quest_1_201403        17ms         0ms        17ms
             hoge.item_201403         2ms         0ms         2ms
               local.oplog.rs         1ms         1ms         0ms
             hoge.test_201402         0ms         0ms         0ms
             hoge.test_201403         0ms         0ms         0ms
        hoge.test_play_201402         0ms         0ms         0ms
        hoge.test_play_201403         0ms         0ms         0ms

                             ns       total        read       write             2014-03-10T03:57:03
             hoge.card_201403        27ms         0ms        27ms
               local.oplog.rs         1ms         1ms         0ms
             hoge.test_201402         0ms         0ms         0ms
             hoge.test_201403         0ms         0ms         0ms
        hoge.test_play_201402         0ms         0ms         0ms
        hoge.test_play_201403         0ms         0ms         0ms
             hoge.item_201402         0ms         0ms         0ms

mongostat

使い方

mongostat -u adminユーザ名 -p adminパスワード --authenticationDatabase adminデータベース名

使用例
# mongostat -u adminユーザ名 -p adminパスワード --authenticationDatabase admin 
connected to: 127.0.0.1
insert  query update delete getmore command flushes mapped  vsize    res faults  locked db idx miss %     qr|qw   ar|aw  netIn netOut  conn  set repl       time
     8     *0      1     *0      12     7|0       0   106g   214g  3.41g      0      .:0.6%          0       0|0     0|0     8k    11k    27 repl  PRI   13:16:23
    21     *0      1     *0      18     4|0       0   106g   214g  3.41g      2 hogedb:1.1%          0       0|0     0|0    16k    21k    27 repl  PRI   13:16:24
     1     *0      1     *0       2     3|0       0   106g   214g  3.41g      0      .:0.7%          0       0|0     0|0     1k     4k    27 repl  PRI   13:16:25
     1     *0      1     *0       2     2|0       0   106g   214g  3.41g      0     .:11.1%          0       0|0     0|0   857b     4k    27 repl  PRI   13:16:26
    58     *0      1     *0      22     5|0       0   106g   214g  3.42g      0 hogedb:0.7%          0       0|0     0|0    47k    55k    27 repl  PRI   13:16:27
    17     *0      1     *0      10     2|0       0   106g   214g  3.42g      1 hogedb:2.1%          0       0|0     0|0    11k    16k    27 repl  PRI   13:16:28
    38     *0     *0     *0      15     3|0       0   106g   214g  3.42g      1 hogedb:1.3%          0       0|0     0|0    25k    31k    27 repl  PRI   13:16:29
    *0     *0      1     *0       0     1|0       0   106g   214g  3.41g      0  local:0.1%          0       0|0     0|0    62b     3k    27 repl  PRI   13:16:30
    *0     *0     *0     *0       0     2|0       0   106g   214g  3.41g      0  local:0.0%          0       0|0     0|0   189b     3k    27 repl  PRI   13:16:31
    42     *0      1     *0      18     2|0       0   106g   214g  3.42g      2 hogedb:1.8%          0       0|0     0|0    29k    36k    27 repl  PRI   13:16:32
insert  query update delete getmore command flushes mapped  vsize    res faults   locked db idx miss %     qr|qw   ar|aw  netIn netOut  conn  set repl       time
    *0     *0     *0     *0       0     2|0       0   106g   214g  3.41g      0      .:0.1%          0       0|0     0|0   189b     3k    27 repl  PRI   13:16:33
     9     *0      1     *0      11     5|0       0   106g   214g  3.42g      0 hogedb:0.3%          0       0|0     0|0     8k    12k    27 repl  PRI   13:16:34
    23      4      1     *0      14     5|0       0   106g   214g  3.42g      0 hogedb:0.7%          0       0|0     0|0    18k    23k    27 repl  PRI   13:16:35
    10     *0      1     *0       5     2|0       0   106g   214g  3.42g      0      .:0.5%          0       0|0     0|0     9k    13k    27 repl  PRI   13:16:36
    *0     *0     *0     *0       0     2|0       0   106g   214g  3.41g      0  local:0.0%          0       0|0     0|0   189b     3k    27 repl  PRI   13:16:37
    55     *0     *0     *0      21     3|0       0   106g   214g  3.42g      1 hogedb:1.5%          0       0|0     0|0    44k    52k    27 repl  PRI   13:16:38
    49     *0      1     *0      13     3|0       0   106g   214g  3.42g      0 hogedb:0.4%          0       0|0     0|0    30k    37k    27 repl  PRI   13:16:39

db.serverStatus()

ついで的にserverStatusも。
結果が長いのでjsでの出力 -> リダイレクトでファイル書き出しを行って表示してみます

使用例
  • db.serverStatus.js

1行だけですがw

printjson(db.serverStatus());

結果

# mongo admin -u adminユーザ名 -p adminパスワード db.serverStatus.js > db.serverStatus.txt

※結果表示
# cat db.serverStatus.txt
MongoDB shell version: 2.4.8
connecting to: admin
{
        "host" : "hoge.com",
        "version" : "2.4.8",
        "process" : "mongod",
        "pid" : 13116,
        "uptime" : 3547461,
        "uptimeMillis" : NumberLong("3547460577"),
        "uptimeEstimate" : 3514414,
        "localTime" : ISODate("2014-03-10T05:12:06.214Z"),
        "asserts" : {
・・・省略・・・
                        },
                        "preload" : {
                                "docs" : {
                                        "num" : 0,
                                        "totalMillis" : 0
                                },
                                "indexes" : {
                                        "num" : 0,
                                        "totalMillis" : 0
                                }
                        }
                },
                "ttl" : {
                        "deletedDocuments" : NumberLong(0),
                        "passes" : NumberLong(59122)
                }
        },
        "ok" : 1
}

最初は見たいDB名を指定してしまってましたが、全部admin指定なんですね
なるほどなるほど。