注册

mongodb监控工具mongostat的使用及命令详解

下面是关于“mongodb监控工具mongostat的使用及命令详解”的完整攻略,包含两条示例说明。

mongostat是什么

mongostat是MongoDB自带的用于监控MongoDB服务器状态的命令行工具。它可以以统计数据、表格和图形的形式展示在终端中。通过mongostat,我们可以监控MongoDB服务器的常见性能指标、进程、连接、锁、操作等情况。

命令格式

mongostat的命令格式如下:

mongostat [options] [sleepTime [iterations]]

其中,options是命令的选项参数,sleepTime指定了每次更新之间的时间间隔(秒),iterations则指定了mongostat输出的次数。

常用选项参数

如下是mongostat常用的选项参数,更多设计参数请查阅MongoDB官网:

  • -h/--host:指定MongoDB服务器的主机名和端口
  • -u/--username:指定登录MongoDB服务器的用户名
  • -p/--password:指定登录MongoDB服务器的密码
  • -a/--authenticationDatabase:指定登录MongoDB服务器的身份验证数据库
  • -n/--noheaders:关闭表格输出的表头
  • -F/--format:以指定的格式输出数据,支持表格、CSV、JSON、TSV四种输出格式
  • -c/--rowcount:指定表格输出的行数
  • -i/--iso8601:时间戳使用ISO 8601格式
  • -t/--tcpkeepalive:启用TCP keepalive选项
  • -V/--version:输出mongostat的版本信息
  • -?/--help:输出mongostat的帮助信息

示例一:使用mongostat输出MongoDB服务器性能指标

我们可以使用mongostat命令来监控数据服务器的性能指标。使用如下命令:

mongostat -h 127.0.0.1:27017

执行后,可以看到输出形如:

insert query update delete getmore command dirty used flushes vsize  res       qrw   arw     netin  netout      conn       time
0      0      0       0      0          1        0     0.0%   1.8% 0     0|0     0|0     1.57b  948.4m  1       11:20:43
1      0      1       0      0          1        0     0.0%   1.8% 0     0|0     0|0     1.57b  948.4m  1       11:20:44
1      0      1       0      0          1        0     0.0%   1.8% 0     0|0     0|0     1.57b  948.4m  1       11:20:45
...

其中,每个列名代表的值的含义如下:

  • insert:每秒钟插入数目
  • query:每秒钟查询数目
  • update:每秒钟更新数目
  • delete:每秒钟删除数目
  • getmore:每秒钟获取更多指令的数目
  • command:每秒钟运行的命令数目
  • dirty:MongoDB实例中脏页所占用的百分比
  • used:MongoDB数据文件中使用的百分比
  • flushes:每秒刷回磁盘的大小
  • vsize:mongod进程的虚拟内存大小(单位:字节)
  • res:mongod进程在物理内存中占用的大小(单位:字节)
  • qrw:每秒行读写数
  • arw:每秒活跃读写数
  • netin:每秒钟从客户端接收的数据大小(单位:比特)
  • netout:每秒钟发送到客户端的数据大小(单位:比特)
  • conn:当前连接数

使用-n/--noheaders选项可以取消表头输出。使用-F/--format选项可以输出指定格式的数据。

示例二:使用mongostat查看MongoDB连接信息

我们可以通过mongostat查看MongoDB连接情况。使用如下命令:

mongostat --host example.com:27017 --ssl --username user --password pass --authenticationDatabase admin --humanReadable --discover

执行后,可以看到输出形如:

host            open   conn    used|l used|r   res  |   qrw  arw  netIn  netOut    cmd  |   query    update insert  delete qr|qw ar|aw  arw|qrw  awaited  h
example.com:27017    554   538   .7      .8     5.53 |    15    0  94k    25k       0 |       2       3       1       0   0|0 0|0  0|15    0        0:02:20
example.com:27017    554   538   .6      .7     5.53 |    15    0  94k    25k       0 |       2       3       1       0   0|0 0|0  0|15    0        0:02:21
example.com:27017    554   538   .6      .9     5.53 |    15    0  94k    25k       0 |       2       3       1       0   0|0 0|0  0|15    0        0:02:22
...

其中,每个列名的含义如下:

  • host:MongoDB服务器的主机名和端口
  • open:MongoDB服务器打开的连接数
  • conn:MongoDB服务器现有的连接数
  • used|1:每个连接的读取操作
  • used|2:每个连接的写入操作
  • res:服务器响应时间
  • qrw:每秒行读写数
  • arw:每秒活跃读写数
  • netIn:每秒从客户端接收的字节数
  • netOut:每秒从服务器发送到客户端的字节数
  • cmd:MongoDB服务器每秒执行的命令数
  • query:MongoDB服务器每秒执行的查询数
  • update:MongoDB服务器每秒执行的更新数
  • insert:MongoDB服务器每秒执行的插入操作数目
  • delete:MongoDB服务器每秒执行的删除操作数目
  • qr|qw:客户端请求队列和响应队列的长度
  • ar|aw:同步阻塞请求和同步阻塞响应的长度
  • arw|qrw:活跃读写数和行读写数
  • awaited:在等待的请求数量
  • h:mongostat输出的时间。

我们可以使用--ssl选项指定使用SSL连接,使用--username--password选项指定用户名和密码登录MongoDB服务器,使用--authenticationDatabase选项指定身份验证数据库,使用--discover选项自动发现MongoDB服务器。

结论

使用mongostat可以很方便地监控MongoDB服务器的状态,帮助我们快速发现问题并定位解决。在实际使用中,可以根据自己的需求选择不同的选项参数和输出格式。