[Cacti] mongodb性能监控实战

前言:

为了更好的使用mongodb,需要监控出mongodb的一些基础使用情况,比如Flush数、连接数、内存使用率、Index操作,Slave延迟等等,这些可以通过配置cacti监控mongodb的模板来完成。
 

1,在cacti界面导入模板

在计算机本地,下载此tgz包:http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz

解压到任意目录,然后打开cacti的web界面,选择"Import/Export" — "Improt Templates",点击"选择文件",将cacti_host_template_x_mongodb_server_ht_0.8.6i-sver1.1.8.xml,导入到cacti里,这样,cacti的图形模板里就可以选择使用mongodb的图形项目了。

2,在cacti服务器端配置监控脚本

[[email protected] soft]#  wget http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz

[[email protected] soft]# tar zxvf better-cacti-templates-1.1.8.tar.gz

[[email protected] soft]# cd better-cacti-templates-1.1.8

[[email protected] better-cacti-templates-1.1.8]#  cp scripts/ss_get_by_ssh.php /var/www/html/cacti/scripts/ss_get_by_ssh.php

[[email protected] better-cacti-templates-1.1.8]# chown –R apache /var/www/html/cacti/scripts/ss_get_by_ssh.php

修改监控脚本ss_get_by_ssh.php

[[email protected] better-cacti-templates-1.1.8]# vim /var/www/html/cacti/scripts/ss_get_by_ssh.php

$ssh_user   = ‘root‘;                          # SSH username

$ssh_port   = 22;                               # SSH port

$ssh_iden   = ‘-i /var/www/html/cacti/id_rsa‘;  # SSH identity

这里mongodb由于使用了30000端口不是默认端口27018,所以还需要修改端口配置

function mongodb_cmdline ( $options ) {

return “echo \”db._adminCommand({serverStatus:1, repl:2})\” | /usr/local/mongo/mongodb/bin/mongo --port 30000″;

}

之后,重启cacti服务

[[email protected] templates]# service httpd restart

停止 httpd:                                               [确定]

正在启动 httpd:                                           [确定]

[[email protected] templates]#

3,使用SSH的方式登录监控

(1):创建SSH远曾登录账号

使用ssh-keygen命令生成秘钥,回车后输入key的路径/var/www/html/cacti/id_rsa,然后2个回车,密码为空,如下:

[[email protected] squid-2 soft]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): /var/www/html/cacti/id_rsa

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /var/www/html/cacti/id_rsa.

Your public key has been saved in /var/www/html/cacti/id_rsa.pub.

The key fingerprint is:

73:8e:77:45:a0:54:ef:c8:a4:2d:62:50:8d:da:d8:e4 [email protected]

The key‘s randomart image is:

+--[ RSA 2048]----+

|        .o..o    |

|       .o... o   |

|      .B  . . o  |

|      o.E  = +   |

|        S + + o  |

|       . * . .   |

|        . o .    |

|         . .     |

|                 |

+-----------------+

把key文件权限改成cacti的使用用户可以访问的权限:

[[email protected] squid-2 soft]# chown -R cacti_user /var/www/html/cacti/id_rsa*

[[email protected] squid-2 soft]#

将key加入到远程mongodb服务器上,也可在远程服务器建立一个cacti_user用户,将key加上到cactiuser目录下

[[email protected] squid-2 soft]# ssh-copy-id -i /var/www/html/cacti/id_rsa [email protected]

(2):配置各种参数

修改ss_get_by_ssh.php,设置好私钥文件路径:

$ssh_user   = ‘root‘;                          # SSH username

$ssh_port   = 22;                               # SSH port

$ssh_iden   = ‘-i /var/www/html/cacti/id_rsa‘;  # SSH identity

如果mongodb不使用默认端口,需要修改下面一段,把端口加上即可:

function mongodb_cmdline ( $options ) {

return “echo \”db._adminCommand({serverStatus:1, repl:2})\” | /usr/local/mongo/mongodb/bin/mongo --port 30000″;

}

(3)检测监控脚本

[[email protected] templates]# php /var/www/html/cacti/scripts/ss_get_by_ssh.php  --type mongodb --host 10.254.3.62 --items dc,de,df,dg,dh,di,dj,dk,dl,dm,dn,do,dp,dq,dr,ds,dt,du

dc:57 de:0 df:401604608 dg:-1 dh:-1 di:-1 dj:-1 dk:-1 dl:-1 dm:-1 dn:-1 do:46268320 dp:5245 dq:0 dr:6 ds:52 dt:46697435 du:-1[[email protected] templates]#

[[email protected] templates]#

看到有数据了,检测OK。

4,使用Mongodb远程连接的方式来监控

4.1. 修改mongodb_cmdline函数,通过授权帐号密码、指定端口进行登录。

function mongodb_cmdline ( $options ) {

// return "echo \"db._adminCommand({serverStatus:1, repl:2})\" | mongo";

return "echo \"db._adminCommand({serverStatus:1, repl:2})\" | /usr/local/mongodb/bin/mongo admin --port $options[port2] --username pluser --password !378zm13yt";

}

4.2. 修改get_command_result函数,采用远程登录的方式,而非默认SSH的方式。(数据库本来就可以远程连接), 大概在558行

// $final_cmd = $use_ssh ? "$ssh ‘$cmd‘" : $cmd;

$final_cmd = "$cmd --host $options[host]";

4.3 修改Data Input Methods

选择“Console”,在左侧菜单栏选择“Data Input Methonds”,再选择mongodb监控项连接“X Get Mongodb Stats…”,在中间的“Input String”后面的输入框里面,带上参数符合,如下所示:

<path_php_binary> -q <path_cacti>/scripts/ss_get_by_ssh.php --host <hostname> --type mongodb –port2 30000 --username pluser --password !378zm13yt --items dk,dl,dm,dn

4.4. 执行脚本进行测试,结果如下:

[[email protected] ~]# php ss_get_by_ssh.php --type mongodb --host 10.254.3.62 --port2 30000 --items jc,jd

PHP Parse error:  syntax error, unexpected T_STRING in /var/www/html/cacti/scripts/ss_get_by_ssh.php on line 1265

[[email protected] ~]#

脚本有全角乱码,去掉,再执行脚本进行测试,结果如下:

[@cacti scripts]# php ss_get_by_ssh.php --type mongodb --host 10.254.3.62 --port2 30000 --items jc,jd

jc:4 jd:5497683968

5,生成监控图

在界面,选择“Device”,选择mongodb服务器连接“3.X2_mongodb”,再选择右上角的“Create Graphs for this Host”,在“Graph Types”后的下拉框里面选择Mongodb服务项,就会看到列表中有mongodb监控服务,然后打勾选上,点击右下角的“Create”按钮,为主机添加进监控图,如下所示:



PS:在添加Device设备的时候,如果勾选了MongoDB的模板,需要指定Port2参数。

  
6,查看mongodb监控图像
    添加完毕之后,会有一下系列监控图,如下所示:


(1)MongoDB Background Flushes GT

(2)MongoDB Commands GT

(3)MongoDB Connections GT

(4)MongoDB Index Ops GT

(5)MongoDB Memory GT

(6) MongoDB Slave Lag GT

?

----------------------------------------------------------------------------------------------------------------

<版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!>
?本文章地址原始地址:http://blog.csdn.net/mchdba/article/details/39805039

----------------------------------------------------------------------------------------------------------------

参考文章地址:
http://blog.chinaunix.net/uid-21505614-id-3186756.html

http://c20031776.blog.163.com/blog/static/68471625201341424117630/

时间: 2024-10-29 19:05:49

[Cacti] mongodb性能监控实战的相关文章

MongoDB性能监控

1.mongostat 查看运行中的mongodb实例的统计信息 2.MMS(MongoDB Monitoring Service) 1)安装 rpm -U mongodb-mms-monitoring-agent-2.1.4.51-1.i386.rpm 2)配置 访问https://mms.mongodb.com/settings 选择monitoring agent下对应的os ,按照说明配置即可 完成后启动mms:service mongodb-mms-monitoring-agent s

第四部分 性能篇 第十一章 MongoDB 性能监控

声明:该文章主要来自<MongoDB实战>一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用. 1.MongoStat 此工具可以快速的查看某组运行中的MongoDB实例的统计信息,用法如下: [[email protected] bin]# ./mongostat connected to: 127.0.0.1 insert query update delete g

011.MongoDB性能监控

一 MongoDB 监控 1.1 监控概述 MongoDB自带了mongostat 和 mongotop 这两个命令来监控MongoDB的运行情况.这两个命令用于处理MongoDB数据库变慢等等问题非常有用,能详细的统计MongoDB当前的状态信息.除此之外,还可以用db.serverStatus().db.stats().开启profile功能通过查看日志进行监控分析. 1.2 模拟插入数据 1 [[email protected] ~]# mongo --host 172.24.8.71 -

mongodb 性能监控

使用/var/soft/mongodb2.2/bin/mongostat --port 端口号 可以实时监控 ·inserts/s 每秒插入次数 ·query/s 每秒查询次数 ·update/s 每秒更新次数 ·delete/s 每秒删除次数 ·getmore/s 每秒执行getmore次数 ·command/s 每秒的命令数,比以上插入.查找.更新.删除的综合还多,还统计了别的命令 ·flushs/s 每秒执行fsync将数据写入硬盘的次数. ·mapped/s 所有的被mmap的数据量,单

服务性能监控指标

Apache性能监控支持以下指标: Apache吞吐率 Apache并发连接数 Apache并发连接数详细统计,包括读取请求.持久连接.发送响应内容.关闭连接.等待连接 Lighttpd性能监控支持以下指标: Lighttpd吞吐率 Lighttpd并发连接数 Lighttpd并发连接数详细统计,包括建立连接.读取请求.读取POST数据.处理请求.发送响应内容.关闭连接 Nginx性能监控支持以下指标: Nginx吞吐率 Nginx并发连接数 Nginx并发连接数详细统计,包括读取请求.处理请求

MongoDB运行状态、性能监控,分析

转自http://tech.lezi.com/archives/290 MongoDB运行状态.性能监控,分析 Posted by neilxp on 十月 26, 2011Leave a comment (2)Go to comments 这篇文章的目的是让你知道怎么了解你正在运行的Mongdb是否健康. mongostat详解 mongostat是mongdb自带的状态检测工具,在命令行下使用.它会间隔固定时间获取mongodb的当前运行状态,并输出.如果你发现数据库突然变慢或者有其他问题的

【干货】Mysql的&quot;事件探查器&quot;-之Mysql-Proxy代理实战一(安装部署与实战sql拦截与性能监控)

1:资料参考 https://blog.csdn.net/coldljy/article/details/3168906 https://www.cnblogs.com/jwentest/p/8552075.html https://www.cnblogs.com/ExMan/p/10396298.html 一:原理 Mysql-Proxy是一个处于你的client端和Mysql Server端之间的一个简单程序,它可以监测.分析和改变他们的通信.它使用灵活没有限制,常见的用途包括:负载平衡,故

Docker 监控实战 教你如何监控 Docker 容器内部

如今,越来越多的公司开始使用 Docker 了,现在来给大家看几组数据: 2 / 3 的公司在尝试了 Docker 后最终使用了它 也就是说 Docker 的转化率达到了 67%,而转化市场也控制在 60 天内. 越大型的公司越早开始使用 Docker 研究发现主机数量越多的公司,越早开始使用 Docker.而主机数量多,在这个研究里就默认等同于是大型公司了. Docker 优势 那为什么 Docker 越来越火呢?一谈起 Docker 总是会跟着让人联想到轻量这个词,甚至会有一种通过 Dock

[转载]前端数据之美 -- 七天打造前端性能监控系统

开始行动 本文中的性能主要指 web 页面加载性能,对性能还不了解?不用担心,接下来的“每一天”跟我一起进入前端性能的世界. Day 1 为什么要监控性能? “If you cannot measure it, you cannot improve it” ———— William Thomson 这是一个最基本的问题,为什么要关注和监控前端性能?对于公司来说,性能在一定程度上与利益直接相关.国外有很多这方面的调研数据: 性能 收益 Google 延迟 400ms 搜索量下降 0.59% Bin