Closed liuxin638507 closed 7 months ago
可能是因为"oplog.rs"集合为空或没有符合查询条件。 使用MongoDB命令行工具: 打开终端或命令提示符,然后运行以下命令连接到MongoDB并检查"oplog.rs"集合中是否有文档:
mongo
use local
db.oplog.rs.find()
这将列出"oplog.rs"集合中的所有文档。如果集合为空,你将不会看到任何结果。
代码里面使用空的查询条件,并按照$natural
字段升序排序,所以并不会过滤。
在MongoDB版本4.4及之前,复制操作日志存储在"oplog.rs"集合中。然而,在MongoDB版本4.4之后,它被重命名为"oplog.rs"集合到"oplog"集合。 因此,如果你的MongoDB版本是4.4或更高版本,应该使用"oplog"集合而不是"oplog.rs"集合
可能是因为"oplog.rs"集合为空或没有符合查询条件。 使用MongoDB命令行工具: 打开终端或命令提示符,然后运行以下命令连接到MongoDB并检查"oplog.rs"集合中是否有文档:
mongo use local db.oplog.rs.find()
这将列出"oplog.rs"集合中的所有文档。如果集合为空,你将不会看到任何结果。
代码里面使用空的查询条件,并按照
$natural
字段升序排序,所以并不会过滤。在MongoDB版本4.4及之前,复制操作日志存储在"oplog.rs"集合中。然而,在MongoDB版本4.4之后,它被重命名为"oplog.rs"集合到"oplog"集合。 因此,如果你的MongoDB版本是4.4或更高版本,应该使用"oplog"集合而不是"oplog.rs"集合
use local switched to db local db.oplog.rs.find() db.oplog.find()
这是mongo库执行的结果,结果是为空,我应该怎么处理categraf日志level=warning msg="cannot create metrics for oplog: mongo: no documents in result"出现的问题
新版本替换了原来的mongodb插件,可以用v0.3.31 再看看。
新版本替换了原来的mongodb插件,可以用v0.3.31 再看看。 就是用的v0.3.31版本,监控容器启动的mongodb单机版
单机版没有这个replica set, 这只是个warning 忽略就好了
W! warning
E! error
I! info
D! debug
单机版没有这个replica set, 这只是个warning 忽略就好了
W! warning E! error I! info D! debug
程序是否能支持处理下,一直警告输出也影响日志采集,减少不必要的显示
目前categraf-v0.3.31 启动日志监控mongodb,仍然还有如下启动异常日志
Relevant config.toml
Logs from categraf
System info
ubuntu2204
Docker
监控主机 db_docker-compose.yaml version: '3.1' services: mongo: image: mongo:4.4.22 container_name: mongo
network_mode: host #设置网络模式为host模式 restart: always environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: 123456 TZ: Asia/Shanghai
ports:
Steps to reproduce
1. 2. 3. ...
Expected behavior
数据库程序连接正常,但是categraf提示报错
Actual behavior
日志错误显示原因怎么处理
Additional info
No response