MongoDB监控方式

MongoDB版本:4.2

mongostat

官方文档: https://docs.mongodb.com/v4.2/reference/program/mongostat/

常用参数

--host: 服务器地址 Default: localhost:27017

--port: 服务器端口 Default: 27017

--username -u: MongoDB用户名 需要注意用户是否有权限

--password -p: MongoDB密码

--authenticationDatabase: 登录的库

--authenticationMechanism: 认证机制 Default: SCRAM-SHA-1

-o: 指定输出字段

-O: 为输出字段取别名 <field>=<customName>

--json: 以JSON格式返回mongostat的输出

--interactive: 不滚动显示

<sleeptime>: 指定刷新时间 Default:1秒

 

输出字段

inserts: 每秒插入数(带*的表示复制集的从库,下同)

query: 每秒查询数

update: 每秒更新数

delete: 每秒删除数

getmore: 每秒返回的游标数

command: 每秒的命令数 local|replicated

flusher: 每个查询间隔之间的checkpoint触发次数

dirty: wiredtiger特有的参数,记录wiredtiger缓存中脏数据的比例

used: wiredtiger特有的参数,记录wiredtiger缓存使用百分比

Vsize: 虚拟内存使用量,单位为MB

res: 物理内存使用量,单位为MB

qrw: 客户端等待从MongoDB实例读写数据的队列长度,|隔开 r|w

arw: 执行读写操作的活跃客户端数量,|隔开 r|w

netIn: MongoDB实例的网络进流量

netOut: MongoDB实例的网络出流量

conn: 连接数

set: 复制集名称

repl: 复制集中的状态 M:master | SEC:secondary | REC:recovering

UNK:unknown | RTR:mongos process (“router”) |

ARB:arbiter

 

mongotop

官方文档: https://docs.mongodb.com/v4.2/reference/program/mongotop/

常用参数

--host: 服务器地址 Default: localhost:27017

--port: 服务器端口 Default: 27017

--username -u: MongoDB用户名 需要注意用户是否有权限

--password -p: MongoDB密码

--authenticationDatabase: 登录的库

--authenticationMechanism: 认证机制 Default: SCRAM-SHA-1

--json: 以JSON格式返回mongostat的输出

<sleeptime>: 指定刷新时间 Default:1秒

 

输出字段

ns: 库表名

total: 当前库表名操作的总时间

read: 当前库表名读操作的总时间

write: 当前库表名写操作的总时间

当前时间时间

 

db.serverStatus

输出内容

#实例信息
"host": "mongodb001:27118", # 系统主机名
"version": "4.2.2",         # MongoDB版本
"process": "mongod",        # 当前进程类型 mongod or mongos
"pid": NumberLong("3380"),  # 进程ID号
"uptime": 17406691,         # 当前MongoDB进程处于活跃状态的秒数
"uptimeMillis": NumberLong("17406691571"),  # 进程处于活跃状态的毫秒数
"uptimeEstimate": NumberLong("17406691"),   # 正常运行时间秒数
"localTime": ISODate("2020-09-16T02:35:30.882Z"), # 当前时间减8小时((The ISODate representing the current time, according to the server, in UTC))
#断言信息
"asserts": {
    "regular": NumberInt("0"), # 服务启动后正常的asserts错误个数,可通过log查看更多该信息
    "warning": NumberInt("0"), # 服务启动后的warning个数
    "msg": NumberInt("3"),     # 服务启动后的message assert个数 
    "user": NumberInt("3057057"), # 服务启动后的user asserts个数
    "rollovers": NumberInt("0")   # 服务启动后的重置次数
},
#连接数信息
"connections": {
    "current": NumberInt("45"),          # 当前连接数
    "available": NumberInt("51155"),     # 可用连接数
    "totalCreated": NumberInt("109337"), # 截止目前为止总共创建的连接数      
    "active": NumberInt("2")             # 活动的连接数,活动客户端连接是指当前正在进行操作的客户端连接
},
# electionMetrics
# 提供有关此mongod实例为成为主要实例而进行的选举的信息
# 如有需要请查看官方文档:https://docs.mongodb.com/v4.2/reference/command/serverStatus/
# 提供有关基础系统的其他信息的文档
"extra_info": {
    "note": "fields vary by platform",   # 表示当前这个extra_info的显示信息依赖于底层系统
    "user_time_us": NumberLong("959372216071"),
    "system_time_us": NumberLong("213190273967"), 
    "maximum_resident_set_kb": NumberLong("34167464"),
    "input_blocks": NumberLong("4736"),
    "output_blocks": NumberLong("416808424"),
    "page_reclaims": NumberLong("129580505"),
   "page_faults": NumberLong("4"),  # 页面错误总数。该 extra_info.page_faults计数器可以表现不佳的时刻期间显着地增加,并且可以具有有限的存储器的环境和更大的数据集相关联。有限且偶发的页面错误不一定表示存在问题。
   "voluntary_context_switches": NumberLong("1442053776"),
   "involuntary_context_switches": NumberLong("3904063")
},   
# 流量控制,返回有关流控制的统计信息的文档
"flowControl": {
    "enabled": true,  # 一个布尔值,指示流控制是启用(true)还是禁用(false)
    "targetRateLimit": NumberInt("1000000000"),  # 
    "timeAcquiringMicros": NumberLong("30632862"), #在辅助服务器上运行时,返回的数字是占位符;在主服务器上运行时,总的写操作等待获取票证的时间
    "locksPerOp": 1.199,  # 在主服务器上运行时,近似于每个操作获取的锁数;在辅助服务器上运行时,返回的数字是占位符
    "sustainerRate": NumberInt("0"),  # 在主服务器上运行时,辅助服务器每秒维持提交点的每秒近似操作数;在辅助服务器上运行时,返回的数字是占位符
    "isLagged": false,  # 在主数据库上运行时,一个布尔值,指示是否已使用流控制。当大多数承诺滞后时间大于配置的某个百分比时,将启用流控制;在辅助服务器上运行时,返回的布尔值是一个占位符
    "isLaggedCount": NumberInt("9"),  # 在主服务器上运行时,自上次重新启动以来,流控制已参与的次数。当大多数承诺的滞后大于一定百分比时,进行流量控制;在辅助服务器上运行时,返回的布尔值是一个占位符
    "isLaggedTimeMicros": NumberLong("8999993")  # 在主服务器上运行时,自上次重新启动以来已花费了很多时间进行流控制。当大多数承诺的滞后大于一定百分比时,进行流量控制;在辅助服务器上运行时,返回的数字是占位符
},
# 免费云监控的信息
"freeMonitoring": {
    "state": "disabled",  # 状态有:启用|停用。如果启用免费监视遇到注册错误,则为等待
    "retryIntervalSecs": NumberLong("60"),  # 上传数据的频率(以秒为单位)
    "lastRunTime": "2020-08-14T16:34:00.589+0800",  # 上次运行指标上载的日期和时间
    "registerErrors": NumberLong("0"),  # 注册错误的数量,由于意外的HTTP状态或网络错误而增加
    "metricsErrors": NumberLong("0")  # 上载指标时遇到的错误数
},
# 全局锁信息
"globalLock": {
    "totalTime": NumberLong("17406691568000"),  # mongod启动后到现在的总时间,单位微秒
    "currentQueue": {
        "total": NumberInt("0"),    # 当前的全局锁等待锁等待的个数
        "readers": NumberInt("0"),  # 当前的全局读锁等待个数
        "writers": NumberInt("0")   # 当前全局写锁等待个数
    },
    "activeClients": {
        "total": NumberInt("0"),   # 当前活跃客户端的个数
        "readers": NumberInt("0"), # 当前活跃客户端中进行读操作的个数
        "writers": NumberInt("0")  # 当前活跃客户端中进行写操作的个数
    }
},
# 报告每个锁的文件
# locks
"locks": {
    "ParallelBatchWriterMode": { # 表示并行批处理写入器模式的锁
        "acquireCount": {
            "r": NumberLong("212105154"),
            "W": NumberLong("2")
        }
    },
    "ReplicationStateTransition": { # 表示用于副本集成员状态转换的锁定
        "acquireCount": {
            "w": NumberLong("5982090612"),
            "W": NumberLong("2")
        },
        "acquireWaitCount": {
            "w": NumberLong("2"),
            "W": NumberLong("2")
        },
        "timeAcquiringMicros": {
            "w": NumberLong("296"),
            "W": NumberLong("83")
        }
    },
    "Global": {  # 全局锁
        "acquireCount": {
            "r": NumberLong("5793186576"),
            "w": NumberLong("187543391"),
            "W": NumberLong("5")
        },
        "acquireWaitCount": {
            "r": NumberLong("1"),
            "W": NumberLong("1")
        },
        "timeAcquiringMicros": {
            "r": NumberLong("435"),
            "W": NumberLong("22")
        }
    },
    "Database": {  # 数据库锁
        "acquireCount": {
            "r": NumberLong("5756206026"),
            "w": NumberLong("185841307"),
            "R": NumberLong("3824"),
            "W": NumberLong("473")
        },
        "acquireWaitCount": {
            "r": NumberLong("26"),
            "w": NumberLong("2"),
            "R": NumberLong("1"),
            "W": NumberLong("18")
        },
        "timeAcquiringMicros": {
            "r": NumberLong("86303"),
            "w": NumberLong("106"),
            "R": NumberLong("140"),
            "W": NumberLong("20679856")
        }
    },
    "Collection": {  # 集合锁
        "acquireCount": {
            "r": NumberLong("5640843860"),
            "w": NumberLong("185801606"),
            "R": NumberLong("4162"),
            "W": NumberLong("3387")
        },
        "acquireWaitCount": {
            "r": NumberLong("73"),
            "W": NumberLong("22")
        },
        "timeAcquiringMicros": {
            "r": NumberLong("313493"),
            "W": NumberLong("5993")
        }
    },
    "Metadata": {  # 元数据锁
        "acquireCount": {
            "W": NumberLong("197")
        }
    },
    "Mutex": {  # 代表互斥体
        "acquireCount": {
            "r": NumberLong("361715139"),
            "W": NumberLong("2")
        }
    },
    "oplog": {  # oplog锁
        "acquireCount": {
            "r": NumberLong("117108152"),
            "w": NumberLong("3")
        }
    }
},

R: 表示共享锁 S
W: 表示排他锁 X
r: 表示共享意图锁 IS
w: IX锁
# 提供有关服务器会话缓存的指标
"logicalSessionRecordCache": {
    "activeSessionsCount": NumberInt("4"),  # 自上一次刷新周期以来,由mongod或mongos实例缓存在内存中的所有活动本地会话的数量
    "sessionsCollectionJobCount": NumberInt("58023"),  # 跟踪刷新进程在config.system.sessions集合上运行的次数的数目
    "lastSessionsCollectionJobDurationMillis": NumberInt("7"),  # 上次刷新的长度(以毫秒为单位)
    "lastSessionsCollectionJobTimestamp": ISODate("2020-09-16T02:34:00.159Z"),  # 上次刷新的时间
    "lastSessionsCollectionJobEntriesRefreshed": NumberInt("2"),  # 上次刷新期间刷新的会话数
    "lastSessionsCollectionJobEntriesEnded": NumberInt("0"),  # 上次刷新期间结束的会话数
    "lastSessionsCollectionJobCursorsClosed": NumberInt("0"),  # 上次config.system.sessions集合刷新期间关闭的游标数
    "transactionReaperJobCount": NumberInt("58023"),  # 跟踪事务记录清理进程在config.transactions 集合上运行的次数的数目
    "lastTransactionReaperJobDurationMillis": NumberInt("1"),  # 上次事务记录清理的长度(以毫秒为单位)
    "lastTransactionReaperJobTimestamp": ISODate("2020-09-16T02:34:00.159Z"),  # 最后一次事务记录清理的时间
    "lastTransactionReaperJobEntriesCleanedUp": NumberInt("0"),  # 在上次事务记录清理期间删除的config.transactions集合中的条目数
    "sessionCatalogSize": NumberInt("3")  # config.transactions 条目的内存缓存大小
}, 
# 报告有关MongoDB网络使用情况数据的文档
"network": {
    "bytesIn": NumberLong("93751993843"),  # 反映网络流量的接收量的字节数通过这个数据库。使用此值可确保发送到该mongod进程的网络流量与期望值和整个应用程序间流量一致
    "bytesOut": NumberLong("341281988614"),  # 反映从此数据库发送的网络流量的字节数 。使用此值可确保该mongod进程发送的网络流量与期望值和整个应用程序间流量一致
    "physicalBytesIn": NumberLong("77786895069"),
    "physicalBytesOut": NumberLong("273504229448"),
    "numRequests": NumberLong("112271508"),  # 服务器已收到的不同请求的总数。使用此值为network.bytesIn和network.bytesOut 值提供上下文, 以确保MongoDB的网络利用率与期望和应用程序使用一致
    "compression": {
        "snappy": {
            "compressor": {
                "bytesIn": NumberLong("112019679714"),
                "bytesOut": NumberLong("43319161087")
            },
            "decompressor": {
                "bytesIn": NumberLong("32878177071"),
                "bytesOut": NumberLong("53090243207")
            }
        },
        "zstd": {
            "compressor": {
                "bytesIn": NumberLong("0"),
                "bytesOut": NumberLong("0")
            },
            "decompressor": {
                "bytesIn": NumberLong("0"),
                "bytesOut": NumberLong("0")
            }
        },
        "zlib": {
            "compressor": {
                "bytesIn": NumberLong("0"),
                "bytesOut": NumberLong("0")
            },
            "decompressor": {
                "bytesIn": NumberLong("0"),
                "bytesOut": NumberLong("0")
            }
        }
    },
    "serviceExecutorTaskStats": {
        "executor": "passthrough",
        "threadsRunning": NumberInt("45")
    }
},
# 实例的操作延迟                                                            
"opLatencies": {
    "reads": {  # 读请求的延迟统计信息
        "latency": NumberLong("790381679186"),
        "ops": NumberLong("34544821")
    },
    "writes": {  # 写操作的延迟统计信息
        "latency": NumberLong("32984480609"),
        "ops": NumberLong("9472437")
    },
    "commands": {  # 数据库命令的延迟统计信息 
        "latency": NumberLong("6323105420"),
        "ops": NumberLong("68254248")
    },
    "transactions": {  # 事务的延迟统计信息
        "latency": NumberLong("13406008070"),
        "ops": NumberLong("40833")
    }
},
# 报告自上次启动以来对mongod实例查询操作指定 的读取关注级别的文档
"opReadConcernCounters": {
    "available": NumberLong("0"),    # 指定读取关注级别"available"的查询操作数
    "linearizable": NumberLong("0"), # 指定读取关注级别"linearizable"的查询操作数
    "local": NumberLong("0"),        # 指定读取关注级别"local"的查询操作数
    "majority": NumberLong("0"),     # 指定读取关注级别"majority"的查询操作数
    "snapshot": NumberLong("4"),     # 指定读取关注级别"snapshot"的查询操作数
    "none": NumberLong("12334969")   # 未指定读取关注级别的查询操作数,而是使用默认读取关注级别
},
# 报告自上次启动以来特定write concerns 下mongod实例的写入操作的文档            
# opWriteConcernCounters
"wmajority": 指定w: "majority"的插入操作数
"wnum": 指定w: <num>的插入操作数。计数按<num>具体分组
"wtag": 指定w: <tag>的插入操作数。计数按<tag>具体分组
"none": 未指定w值的插入操作数。这些操作使用w默认值1
# 自mongod上次启动实例以来,  按数据库操作类型报告的文档
"opcounters": {
    "insert": NumberLong("31357950"), # 自上次启动mongod实例以来收到的插入操作总数
    "query": NumberLong("12334973"),  # 自上次启动mongod实例以来收到的查询总数
    "update": NumberLong("8150111"),  # 自上次启动mongod实例以来收到的更新操作总数
    "delete": NumberLong("99731"),    # 自上次启动mongod实例以来的删除操作总数
    "getmore": NumberLong("18278216"),# 自上次启动mongod实例以来“getmore”(从游标获取数据)操作的总数。即使查询数目较低,此计数器也可能很高。作为复制进程的一部分,Secondary节点将发送 getMore操作
    "command": NumberLong("72401180") # 自mongod上次启动实例以来向数据库发出的命令总数
},
# 自上次启动mongod实例以来按类型报告数据库复制操作的文档。当前主机是副本集的成员时才会显示这些值。
"opcountersRepl": {
    "insert": NumberLong("0"), # 自上次启动mongod实例以来复制插入操作的总数
    "query": NumberLong("0"),  # 自上次启动mongod实例以来复制查询的总数
    "update": NumberLong("0"), # 自上次启动mongod实例以来复制更新操作总数
    "delete": NumberLong("0"), # 自上次启动mongod实例以来复制的删除操作总数
    "getmore": NumberLong("0"),# 自上次启动mongod实例以来“getmore”操作的总数。即使查询数目较低,此计数器也可能很高。作为复制进程的一部分,secondary节点发送getMore操作
    "command": NumberLong("0") # 自上次启动mongod实例以来发送到数据库的复制命令总数
},
# oplog 删除的报告
"oplogTruncation": {
    "totalTimeProcessingMicros": NumberLong("1137"),     # 扫描或采样oplog以确定oplog清理点所花费的总时间(以微秒为单位)
    "processingMethod": "scanning",                      # 启动时用于确定oplog截断点的方法。该值可以是"sampling"或"scanning"
    "totalTimeTruncatingMicros": NumberLong("10465465"), # 执行oplog清理所花费的累积时间(以微秒为单位)
    "truncateCount": NumberLong("197")                   # 清理的次数
},
# 复制集群的信息                                                           
# repl
# 存储引擎信息                                                               
"storageEngine": {
    "name": "wiredTiger", 
    "supportsCommittedReads": true,
    "oldestRequiredTimestampForCrashRecovery": Timestamp(1600223710, 1),
    "supportsPendingDrops": true,
    "dropPendingIdents": NumberLong("0"),
    "supportsSnapshotReadConcern": true,
    "readOnly": false,
    "persistent": true,
    "backupCursorOpen": false
},
# 包含有关可重试写入和 多文档事务的数据的文档
"transactions": {
    "retriedCommandsCount": NumberLong("0"), # 相应的可重试写入命令已经提交之后收到的重试总数。也就是说,即使写入已成功并且在config.transactions 集合中存在的事务和会话的关联记录,可重试写入继续尝试,例如客户端的初始写入响应丢失。
    "retriedStatementsCount": NumberLong("0"),
    "transactionsCollectionWriteCount": NumberLong("860856"),
    "currentActive": NumberLong("0"),
    "currentInactive": NumberLong("0"),
    "currentOpen": NumberLong("0"),
    "totalAborted": NumberLong("753"),
    "totalCommitted": NumberLong("40080"),
    "totalStarted": NumberLong("40833"),
    "totalPrepared": NumberLong("0"),
    "totalPreparedThenCommitted": NumberLong("0"),
    "totalPreparedThenAborted": NumberLong("0"),
    "currentPrepared": NumberLong("0"),
    "lastCommittedTransaction": {
        "operationCount": NumberLong("2"),
        "oplogOperationBytes": NumberLong("1731"),
        "writeConcern": { }
    }
},

其他请参考官方文档:https://docs.mongodb.com/v4.2/reference/command/serverStatus/

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值