Ruby操作MongoDB(进阶五)-数据库管理Administration
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Ruby操作MongoDB(进阶五)-数据库管理Administration,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3541字,纯文字阅读大概需要6分钟。
内容图文
client=Mongo::Client.new([‘127.0.0.1:27017‘],:auth_mech=>:plain,ssl:true,ssl_verify:true,ssl_cert:‘/path/to/client.pem‘,ssl_ca_cert:‘/path/to/ca.pem‘)
3.6 Kerbero(GSSAPI)验证机制
需要2.4及以上企业版本才支持。通过JRuby在Ruby驱动中使用Kerbero,需要经过如下步骤:
1. 设置几个具体的系统属性,这样底层的GSSAPI Java库就可以获取一个Kerberos入场券;
2. 通过在配置文件中提供一个密码,或者设置‘java.security.auth.login.config‘系统属性,从而可以索引到一个keytab文件。在Ruby驱动中通过Matz‘s Ruby Interpreter(MRI)使用Kerberos。通过kinit创建一个授予入场券。
client=Mongo::Client.new([‘127.0.0.1:27017‘],
:auth_mech=>:gssapi
user:‘test‘,
password:‘123‘)
4 日志Logger相关
除了可以使用默认的全局驱动日志,你也可以设置自己的日志服务。下面的例子设置了自己的日志服务:Mongo::Logger.logger=other_logger
4.1 修改日志级别
修改日志级别:
Mongo::Logger.logger.level=Logger::WARN
为了获得更多控制,我们可以在创建客户端连接时传递一个logger参数,在全局日志的基础上为每个客户端提供日志控制。
my_logger=Logger.new($stdout)
Mongo::Client.new([‘127.0.0.1:27017‘],:database=>‘test‘,:logger=>my_logger)
4.2 日志截断功能Truncate
默认的日志截断功能会在250个字符是进行截断,通过给client实例传递一个参数可以关闭这个功能。
Mongo::Client.new([‘127.0.0.1:27017‘],:database=>‘test‘,:truncate_logs=>false)
5 监控Monitoring
所有用户初始化时发送给服务器的指令产生的时间,都可以描述成好的细粒度信息。为了监控API针对每个指令都发布了一个保证质量的起始事件,也就是说要么成功,要么失败。一个用户必须实现started,succeeded和failed三个方法的一种,每一种都作为当前事件的一个简单参数。驱动中默认的日志用户就是一个实例
module Mongo
class Monitoring
class CommandLogSubscriber
include Loggable
attr_reader=>:options
LOG_STRING_LIMIT =250
def initialize(option ={})
@options=option
end
def started(event)
log_debug("#{prefix(event)}|STARTED|#{format_command(event.command)}")
end
def succeeded(event)
log_debug("#{prefix(event)}|SUCCEEDED|#{format_command(event.command)}")
end
def failed(event)
log_debug("#{prefix(event)}|FAILED|#{format_command(event.command)}")
end
private
def format_command(args)
begin
truncating?truncate(args):args.inspect
rescue Exception
‘<Unable to inspect arguments>‘
end
end
def prefix(event)
"#{event.address,to_s}|#{event.database_name}.#{event.command_name}"
end
def truncate(command)
((s=command.inspect).length>LOG_STRING_LIMIT ? "#{s[0..LOG_STRING_LIMIT]}...":s
end
def truncating?
@truncating||=(options[:truncate_logs]!=false)
end
end
end
end
如果想要注册一个通用的用户,你可以所有客户端的全局属性或者单个客户端的基础设置
Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::COMMAND,my_subscriber)
client=Mongo::Client.new([‘127.0.0.1:27017‘],:database=>‘test‘)
client.subscribe(Mongo::Monitoring::COMMAND,my_subscriber)
关闭监控只需要将监控参数设置为false
client=Mongo::CLient.new([‘127.0.0.1:27017‘],:database=>‘test‘,:monitoring=>false)
本篇文章讲述了数据库管理方面的知识和参数设置,主要包括数据库层面,集合层面,认证机制,日志,监控五个方面的知识讲解。
本文出自 “techFuture” 博客,谢绝转载!
Ruby操作MongoDB(进阶五)-数据库管理Administration
标签:collection logger monitroing
本文系统来源:http://wanght89.blog.51cto.com/6778304/1955191
内容总结
以上是互联网集市为您收集整理的Ruby操作MongoDB(进阶五)-数据库管理Administration全部内容,希望文章能够帮你解决Ruby操作MongoDB(进阶五)-数据库管理Administration所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。