设为首页 收藏本站
查看: 1746|回复: 0

[经验分享] [Cacti] cacti监控mongodb性能实战

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-11 09:03:58 | 显示全部楼层 |阅读模式
前言:         为了更好的使用mongodb,需要监控出mongodb的一些基础使用情况,比如Flush数、连接数、内存使用率、Index操作,Slave延迟等等,这些可以通过配置cacti监控mongodb的模板来完成。

1,在cacti界面导入模板在计算机本地,下载此tgz包:http://mysql-cacti-templates.goo ... plates-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服务器端配置监控脚本[iyunv@squid-2 soft]#  wget http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz
[iyunv@squid-2 soft]# tar zxvf better-cacti-templates-1.1.8.tar.gz
[iyunv@squid-2 soft]# cd better-cacti-templates-1.1.8
[iyunv@squid-2 better-cacti-templates-1.1.8]#  cp scripts/ss_get_by_ssh.php /var/www/html/cacti/scripts/ss_get_by_ssh.php
[iyunv@squid-2 better-cacti-templates-1.1.8]# chown –R apache /var/www/html/cacti/scripts/ss_get_by_ssh.php

修改监控脚本ss_get_by_ssh.php
[iyunv@squid-2 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服务
[iyunv@squid-2 templates]# service httpd restart
停止 httpd:                                               [确定]
正在启动 httpd:                                           [确定]
[iyunv@squid-2 templates]#

3,使用SSH的方式登录监控1):创建SSH远曾登录账号
使用ssh-keygen命令生成秘钥,回车后输入key的路径/var/www/html/cacti/id_rsa,然后2个回车,密码为空,如下:
[iyunv@ 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 root@name01
The key's randomart image is:
+--[ RSA 2048]----+
|        .o..o    |
|       .o... o   |
|      .B  . . o  |
|      o.E  = +   |
|        S + + o  |
|       . * . .   |
|        . o .    |
|         . .     |
|                 |
+-----------------+

key文件权限改成cacti的使用用户可以访问的权限:
[iyunv@ squid-2 soft]# chown -R cacti_user /var/www/html/cacti/id_rsa*
[iyunv@ squid-2 soft]#
key加入到远程mongodb服务器上,也可在远程服务器建立一个cacti_user用户,将key加上到cactiuser目录下
[iyunv@ squid-2 soft]# ssh-copy-id -i /var/www/html/cacti/id_rsa root@10.254.3.62

(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)检测监控脚本
[iyunv@squid-2 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[iyunv@squid-2 templates]#
[iyunv@squid-2 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. 执行脚本进行测试,结果如下:
[iyunv@squid-2 ~]# 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
[iyunv@squid-2 ~]#
脚本有全角乱码,去掉,再执行脚本进行测试,结果如下:
[@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”按钮,为主机添加进监控图,如下所示:

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



  
6,查看mongodb监控图像

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


(1)MongoDB Background Flushes GT

26230597_141249688343Gs.jpg

(2)MongoDB Commands GT
    26230597_1412496915Sxsh.jpg

(3)MongoDB Connections GT
26230597_14124969390h8H.jpg

(4)MongoDB Index Ops GT
26230597_1412496956RSww.jpg

(5)MongoDB Memory GT
26230597_1412496976V6uQ.jpg

(6) MongoDB Slave Lag GT
26230597_1412497001j2W5.jpg ?




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-25806-1-1.html 上篇帖子: memcache安装运行、cacti监控memcache实战 下篇帖子: centos6.5安装cacti监控(一) 监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表