mikoomi-zabbix-mongodb-monitoring, 从这里的mikoomi模板项目派生

分享于 

12分钟阅读

GitHub

  繁體 雙語
Forked from the mikoomi-templates project from here: https://code.google.com/p/mikoomi but only containing the MongoDB Zabbix Plugin
  • 源代码名称:mikoomi-zabbix-mongodb-monitoring
  • 源代码网址:http://www.github.com/nightw/mikoomi-zabbix-mongodb-monitoring
  • mikoomi-zabbix-mongodb-monitoring源代码文档
  • mikoomi-zabbix-mongodb-monitoring源代码下载
  • Git URL:
    git://www.github.com/nightw/mikoomi-zabbix-mongodb-monitoring.git
    Git Clone代码到本地:
    git clone http://www.github.com/nightw/mikoomi-zabbix-mongodb-monitoring
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/nightw/mikoomi-zabbix-mongodb-monitoring
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    MongoDB Zabbix监视器插件插件概述

    插件插件可以用于监控独立。复制以及集群的MongoDB实例,带有 Zabbix。 插件监视MongoDB环境的可用性。资源利用率。健康状况。性能和其他重要。 Coupled插件提供了大量的peace和大量数据,可以用来对MongoDB进行监控。可以伸缩性。故障排除和支持。

    关于Zabbix和MongoDB版本的重要说明

    : 尝试使用Zabbix和MongoDB版本的"关闭"彼此,并使用来自右目录的脚本。 将会有一个版本的合并,并且在稍后的某个时间点只支持MongoDB和Zabbix的新版本,然后希望这种混乱将被清除。

    • Zabbix 3.0. x 和向上: 有一个部分完成的工作脚本,这个Zabbix版本。 请使用 mongodb-3.2 目录作为basline来测试它。 对于这个工具的这一部分,对这一点的任何改进都是受欢迎的。 脚本还应该支持MongoDB版本 3.2作为目录建议。
    • 你应该使用目录 mongodb-2.4 中的文件,并使用前缀 -24 ( prefixes ) MongoDB_Plugin_template_export-24.xmlmikoomi-mongodb-plugin-24.phpmikoomi-mongodb-plugin-24.sh ) 在本自述文件告诉你有关没有后缀的版本的任何地方。 这也可以能与 MongoDB 3.0一起工作,但它并不保证。
    • Zabbix和下面的: 你应该只使用 mongodb-2.2 目录和下面的文档中的文档。
    设置和配置

    MongoDB插件使用了MongoDB驱动程序,它需要安装在被监视的MongoDB node 上。 为此,安装并安装以下软件包:

    • 个 php5-dev ( 或者 php5-devel ) = 文件,用于 PHP5 MODULE 开发
    • php5-pear = pear - PHP扩展和应用程序存储库
    • gcc = GNU C 编译器
    • 使 = make

    对于上述情况,请为你的分发分配正确的包管理器( aptitude。yum。等等 )

    现在,使用命令安装php驱动程序。

    此外,你还需要使用mongo软件包,它可以通过发行版管理器或者这个PECL命令安装:

    
    pecl install mongo
    
    
    
    

    如果你通过PECL命令安装了MongoDB驱动程序,那么你需要为PHP启用它。 编辑服务器的PHP配置( 比如: /etc/php5/cli/php.ini ) 并确保在其中存在以下行:

    
    extension=mongo.so
    
    
    
    

    确保通过测试MongoDB驱动程序( http://us2.php.net/manual/en/mongo.tutorial.php )的一个示例php程序来设置和配置for驱动程序。

    https://github.com/nightw/mikoomi-zabbix-mongodb-monitoring/find/master 下载MongoDB插件 shell script 和php文件,并将它们复制到 externalscripts ( 比如。 /etc/zabbix/externalscripts ) 要监视的MongoDB node 上的目录。 确保php脚本和 shell script 是可以执行的。

    接下来打开一个浏览器并下载MongoDB模板。 现在登录到Zabbix前端( 如果它仍然有默认用户和密码,那么它应该是 admin/Zabbix )。

    按如下方式导航:

    • 配置>> 模板
    • 点击右上角的"导入模板"按钮
    • 在"导入文件"对话框中,browse/search/enter 下载的that模板的文件名。
    • 上传模板
    监视MongoDB环境( 单一服务器。或者集群)

    按照以下步骤开始监视MongoDB服务器

    • 设置服务器Zabbix端
      • 确保主机运行MongoDB之前添加到Zabbix主机( 见这里的主机添加 )
      • 登录到Zabbix前端,并导航到位的配置>> 主机
      • 单击左侧运行MongoDB按钮的主机
      • 点击顶部菜单栏中的模板
      • 使用右侧的选择按钮
      • 在右上角选择 Mikoomi模板
      • 检查 Template_MongoDB
      • 点击选择按钮
      • 点击添加按钮
      • 单击
    • 设置MongoDB服务器 node
      • 向用户的Zabbix crontab添加类似这里( 注意变量,它必须满足Zabbix服务器在前面步骤中将模板附加到的node 服务器的NAME )的内容:
    
    ZABBIX_HOSTNAME=$(hostname -f)
    
    
    * * * * */etc/zabbix/externalscripts/mikoomi-mongodb-plugin.sh -z $ZABBIX_HOSTNAME
    
    
    
    

    注意,在切分和/或者复制的MongoDB环境中,你需要监视一个进程。 然而这个过程需要知道整个Mongo环境( 或者群集) - 换句话说,所有碎片和每个replicaset中的所有副本。

    现在,数据应该在 60秒的间隔内由模板收集。

    如果出现错误,那么你应该在调试模式下使用选项运行脚本,然后查看/tmp/mikoomi-mongodb-plugin. php_*。log文件的输出。

    监视的度量

    MongoDB插件在每个周期中监视以下指标或者项目:

    • 断言:总的Msg断言
    • 断言:总规则断言
    • 断言:总 assert 转换
    • 断言:总用户断言
    • 断言:总警告断言
    • 后台刷新:后台刷新平均时间( 毫秒)
    • 后台刷新:最后 1分钟内刷新的次数
    • 后台刷新:上次后台刷新时间( 毫秒)
    • 后台刷新:最后 1分钟内的后台刷新时间( ms )
    • 游标:客户端光标大小
    • 游标:光标超时
    • 游标:打开 Curors
    • 数据库连接:可用连接
    • 数据库连接:当前连接
    • 数据库和集合:所有数据库统计信息的列表
    • 数据库和集合:数据库平均对象大小列表
    • 数据库和集合:数据库收集计数列表
    • 数据库和集合:数据库计数
    • 数据库和集合:数据库数据大小列表
    • 数据库和集合:数据库文件大小列表
    • 数据库和集合:数据库索引计数列表
    • 数据库和集合:数据库索引大小列表
    • 数据库和集合:所有数据库的总集合
    • 数据库和集合:所有集合的总索引
    • 数据库和集合:所有数据库中的总对象
    • 数据库和集合:所有数据库的总大小( MB )
    • 数据库和集合:数据库范围计数列表
    • 数据库和集合:数据库对象计数列表
    • 数据库和集合:数据库存储大小列表
    • 全局锁定:当前读取器队列长度
    • 全局锁定:当前队列长度
    • 全局锁定:当前写入程序队列长度
    • 全局锁定:最后 1分钟内的总锁定时间( 微秒)
    • 索引有效性:最后 1分钟内的总Btree访问
    • 索引有效性:最后 1分钟内的Btree Hits
    • 索引有效性:最后 1分钟内的总Btree缺失
    • 指数有效性:Btree未命中率
    • 索引有效性:Btree Resets重置
    • 日志:在最后 1分钟提交
    • 日志:在最后 1分钟内提交 Writelocks
    • 日志:数据文件在最后 1分钟写入时间( ms )
    • 日志:数据文件在最后 1分钟写入( MB )
    • 日志:最后 1分钟的早期提交
    • 日志:最后 1分钟的日志写入时间( ms )
    • 日志:日志在最后 1分钟写入( MB )
    • 日志:日志缓冲区准备时间( ms ) 在最后 1分钟
    • 内存:堆内存大小( MB )
    • 内存:页面错误/分钟
    • 内存:内存寻址( 32/64位)
    • 内存:常驻内存大小( MB )
    • 内存:虚拟内存大小( MB )
    • 杂项:MongoDB插件校验和
    • 杂项:MongoDB插件数据收集时间( 秒)
    • 杂项:MongoDB插件版本
    • 杂项:MongoDB版本
    • 杂项:MongoDB运行时间( 秒)
    • 网络活动:网络入站流量( MB )
    • 网络活动:网络出站流量( MB )
    • 网络活动:网络请求
    • 性能:是否有任何写回操作排队
    • OpCounters: 最后 1分钟内的总命令
    • OpCounters: 最后 1分钟的总删除操作
    • OpCounters: 最后 1分钟内总计更多的行动
    • OpCounters: 最后 1分钟内的总插入操作
    • OpCounters: 最后 1分钟内的查询操作总数
    • OpCounters: 最后 1分钟的总更新操作
    • 复制:Mongo服务器是ReplicatSet的一部分
    • 复制:oplog.rs 集合中的条目
    • 复制:需要注意的ReplicaSet成员数
    • 复制:注意状态的ReplicaSet成员列表
    • 复制:ReplicaSet主机名称
    • 复制:ReplicaSet成员计数
    • 复制:ReplicaSet名称
    • 分片:Mongo服务器是集群路由器( mongos进程)
    • 分片:分片数据库和集合的列表
    • 分片:块总数
    • 切分:碎片总数
    • 分片:集群中的碎片列表
    • 分片:集群中分片集合的列表
    • 切分:分片集合的总数
    预封装触发器

    Zabbix中的触发器是与被监视的度量相关的事件。 例如插件跟踪集合的总数量。 如果这里计数发生更改,它将通过触发触发器来标记此事件。 你可以选择忽略这个触发器,也可以选择采取行动- 比如 发送电子邮件或者运行 shell 脚本。

    MongoDB插件附带了以下内置触发器:

    • 已经创建一个或者多个数据库
    • 已经销毁一个或者多个数据库
    • 5分钟内没有收到数据
    • 一个或者多个复制成员需要注意
    • 已经从ReplicaSet中删除一个或者多个成员
    • 已经将一个或者多个成员添加到 ReplicaSet
    • 已经创建一个或者多个新碎片块
    • 已经将一个或者多个碎片添加到群集中
    • 一个或者多个碎片已经从群集中删除
    • 已经创建一个或者多个新分片集合
    • 已经删除一个或者多个收藏集
    • 已经添加一个或者多个收藏集
    • 已经删除一个或者多个索引
    • 已经添加一个或者多个索引
    预封装图

    Zabbix允许创建一个或者多个被监视的指标,插件附带以下预先封装的图表,以使你立即得到生产率:

    以MB为单位的MongoDB累计数据库大小为

    的MongoDB内存占用: 这个图绘制以下度量

    • 虚拟内存大小( MB )
    • 堆内存大小( MB )
    • 常驻内存大小( MB )

    数据库操作: 这个图绘制以下度量

    • 最后 1分钟的查询操作总计
    • 最后 1分钟的总更新操作
    • 最后 1分钟内的总插入操作
    • 最后 1分钟的总删除操作
    • 最后 1分钟的总命令操作
    • 在最后 1分钟内获得更多的行动

    :这个图绘制了遵循的标准

    • 在最后 1分钟提交
    • 数据数据文件在最后 1分钟写入( MB )
    • 数据文件在最后 1分钟写入时间( ms )
    • 日志:日志在最后 1分钟写入( MB )
    • 日志:最后 1分钟的日志写入时间( ms )

    for  proj  TEMP  template  FORK