-
Notifications
You must be signed in to change notification settings - Fork 262
MongoDB Reader
Sun Jianbo edited this page May 23, 2017
·
8 revisions
MongoDB reader 是logkit提供的从MongoDB读取数据的配置方式。
"reader":{
"mongo_host":"localhost:27017",
"meta_path":"./meta",
"mode":"mongo",
"mongo_database":"app123",
"mongo_collection": "collection1",
"mongo_offset_key":"_id",
"mongo_cron":"00 00 04 * * *",
"mongo_exec_onstart":"true",
"mongo_filters":"{\"foo\": {\"i\": {\"$gt\": 10}}}",
"mongo_cacert": "/path/to/cert.pem"
},
- MongoDB reader 输出的是json字符串,需要使用json的parser解析。
-
mongo_hostmongo的host地址以及端口 -
meta_path是reader的读取offset的记录路径,记录mongo读取时的Offset,路径必须是一个文件夹。 -
mode是读取方式,使用MongoDB Reader必须填写mongo。 -
mongo_databasemongo的数据库名称 -
mongo_collectionmongo的表名 -
mongo_offset_key指定一个mongo的列名,作为offset的记录,类型必须是整型(比如unixnano的时间,或者自增的primary key)。 每次查询会指定这个key做where条件大于上次查询最后的记录这样的限制,避免单次查询性能消耗过大,同时也支持持续的数据导入过程中避免数据重复。 若不指定,则使用mongo的_id键,_id键是由时间戳(秒)+机器+进程号+自增位组成的,在低频数据写入的情况下是自增的,在多机器组成的mongo集群高并发写入的情况下,_id不是自增的,存在漏数据的可能。 默认使用_id,也保证了在纯粹从静态的mongo数据库导入pandora过程中,若重启logkit不会导致数据重复。 -
mongo_cron定时任务触发周期,支持两种写法。- crontab的写法,类似于
* * * * * *,对应的是秒(0~59),分(0~59),时(0~23),日(1~31),月(1-12),星期(0~6),填*号表示所有遍历都执行。 - 描述式写法,类似于"@midnight", "@every 1h30m",必须
@符合开头,目前支持@hourly,@weekly,@monthly,@yearly,@every <time duration>
- crontab的写法,类似于
-
mongo_exec_onstarttrue表示启动时执行一次,以后再按cron处理;false则表示到cron预设的时间才执行,默认为true。 -
mongo_filters表示collection的过滤规则,最外层是collection名称,里面对应的是json的规则。如示例所示,表示foo这个collection,i字段的值大于10的全部数据。 -
mongo_cacert存放mongo的鉴权证书,目前暂时不支持
快速开始 | Pandora | Readers | Parsers | Senders | Download | 七牛智能日志管理平台 | logkit-pro专业版