概述
序言:
说道监控问题,官网推介了很多工具,有的是命令行形式,比如mongostat,mongotop,有的是图形界面模式,但也有收费免费之分,
比如官网自己的Cloud Manager,Compass就是收费企业版才能用的,当然也可以试用
免费开源的官网也推介了很多,比如Ganglia、Zabbix等等
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。
主要是用来监控系统性能,如:cpu 、mem、硬盘利用率、 I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、
分配系统资源,提高系统整体性能起到重要作用
配置环境:
OS:Red Hat Enterprise Linux Server release 7.2
MongoDB:3.2.10
python:2.7.5
Ganglia:3.7.2
下载地址:
下载mongodb的ganglia配置模板和python脚本:https://github.com/ganglia/gmond_python_modules
安装:
1、安装epel源:
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
注:如果你已经可以直接使用下一步的命令进行yum安装,那就忽略第1步
2、安装依赖包:
yum -y install httpd-devel automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig
3、安装ganglia的相关软件:
# yum list | grep ganglia
ganglia.x86_64 3.7.2-2.el7 @epel
ganglia-gmetad.x86_64 3.7.2-2.el7 @epel
ganglia-gmond.x86_64 3.7.2-2.el7 @epel
ganglia-gmond-python.x86_64 3.7.2-2.el7 @epel
ganglia-web.x86_64 3.7.1-2.el7 @epel
ganglia-devel.x86_64 3.7.2-2.el7 epel
# yum install -y ganglia-gmetad.x86_64 ganglia-web.x86_64 ---安装相关软件
# rpm -qa | grep ganglia ---查看是否安装上
ganglia-3.7.2-2.el7.x86_64
ganglia-gmetad-3.7.2-2.el7.x86_64
ganglia-web-3.7.1-2.el7.x86_64
4、配置gmetad.conf:
#vim /etc/ganglia/gmetad.conf ---如果是用yum安装的话,一般就是在此路径下,没有的话,可以使用find命令查找
。。。。。
data_source "mongodb_1" hostname:8649 ---找到此行数据,并修改红色字体部分
。。。。。
注:mongo_1:为你集群的名称,可随意命名
hostname:为当前服务器主机的主机名或IP
5、修改Appache的配置:
# vim /etc/httpd/conf.d/ganglia.conf
<Location /ganglia>
Order deny,allow ---如果此句话也没有,则直接添加上即可
Deny from all ---修改为Allow from all
#Require local
# Require ip 10.1.2.3
# Require host example.org
</Location>
注:如果文件中没有Deny from all,则直接在此位置添加Allow from all即可
6、关闭防火墙,SELINUX,修改hosts文件
#systemctl stop firewalld ---关闭防火墙
#systemctl status firewalld
.....
Active: inactive (dead) ---有这样一句话就表示已关闭
.....
#getenforce ---查看SELINUX状态,enforcing表示开启
Enforcing
#setenforce 0 ---临时关闭方法,重启系统后失效,如果想永久关闭SELINUX,则直接修改/etc/sysconfig/selinux就好
# getenforce
Permissive ---表示已关闭SELINUX
#vim /etc/hosts
192.168.1.100 mongodb01 ---添加一笔这样的数据就行,用于主机名解析
7、安装gmond搜集监控数据后台进程,并配置:
#yum -y install ganglia-gmond.x86_64 ---可以使用上面使用的yum list 查看gmond具体名称
#rpm -qa | grep ganglia
配置gmond:
#vim /etc/ganglia/gmond.conf
cluster {
name = "mongodb_1"------ 集群名称,是你在gmetad.conf里配置的集群名称
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
.....
udp_send_channel {
latlong = "unspecified"
url = "unspecified"
}
.....
udp_send_channel {
#mcast_join = 239.2.11.71 ----- 组播
host = 192.168.1.100 -------------- 单播 gmeta服务器主机的ip或主机名
port = 8649
ttl = 1
}
.....
udp_recv_channel {
#mcast_join = 239.2.11.71
ttl = 1
}
.....
udp_recv_channel {
#mcast_join = 239.2.11.71
port = 8649
#bind = localhost ------------- 本机的ip/hostname,因为登录不上ganglia的web页面,所以这个地方我屏蔽掉了
}
8、启动所有服务
#service gmetad start
#service gmond start
#service httpd start
#service gmetad status ---查看开启状态
#service gmond status
9、登录web验证:
地址:http://192.168.1.100/ganglia
问题:
如果到这一步没有实现上述界面,则可能是你的SELINUX、防火墙没有关闭,注意查看,以及第5步配置Appache,注意添加的Allow from all,我就是忘了添加Order deny,allow这句话,所以无法显示web界面
配置MongoDB监控项
10、安装ganglia的python模板:
因为我们的监控脚本都是用python写的,所以要安装此模板
#yum -y install ganglia-gmond-python
#rpm -qa | grep ganglia ---查看是否安装上
ganglia-gmond-python-3.7.2-2.el7.x86_64
11、查看配置,脚本等相关路径
在ganglia的安装路径下,一般是/etc/ganglia,找到conf.d/modpython.conf文件,内容如下:
modules {
module {
name = "python_module"
path = "/usr/lib64/ganglia/modpython.so" ---ganglia-gmond-python安装正确的话,就会在此路劲下看到此文件
params = "/usr/lib64/ganglia/python_modules" ---存放python的py脚本的位置
}
}
include ("/etc/ganglia/conf.d/*.pyconf") ---#ganglia扩展存放配置脚本的路径,注意文件后缀识别pyconf
12、创建mongodb.pyconf 和 修改mongodb.py文件
首先上传根据文章开头下载下来的配置模板文件mongodb.conf和python脚本文件mongodb.py
分别在conf.d和python_modules文件夹下,如图:
注:上传文件到Linux系统,你可以使用任何工具,我用的是WinSCP工具
请将mongodb.py文件放到/usr/lib64/ganglia/python_modules路径下
# ll /usr/lib64/ganglia/python_modules/mongodb.py
-rw-r--r--. 1 root root 14937 Jan 17 10:28 /usr/lib64/ganglia/python_modules/mongodb.py
将mongodb.conf文件放到/etc/ganglia/conf.d/路径下,并改名为mongodb.pyconf,(因为在第11步的时候最后一行路径的识别后缀是pyconf)
# ll /etc/ganglia/conf.d/mongodb.pyconf
-rw-r--r--. 1 root root 2791 Jan 17 10:19 /etc/ganglia/conf.d/mongodb.pyconf
修改mongodb.py配置,如下:
注意将红色部分修改为你本机mongo所在的路径,以及需要监控的mongo的端口,如果有auth认证的话,需要加username、password
NAME_PREFIX = 'mongodb_'
PARAMS = {
'server_status' : '/apps/mongo/bin/mongo --host 192.168.1.100 --port 27017 --quiet --eval "printjson(db.serverStatus())"',
'rs_status' : '/apps/mongo/bin/mongo --host 192.168.1.100 --port 27017 --quiet --eval "printjson(rs.status())"'
}
METRICS = {
'time' : 0,
'data' : {}
}
修改mongodb.pyconf,如下:
也是注意红色部分的修改
#vim /etc/ganglia/conf.d/mongodb.pyconf
modules {
module {
name = "mongodb" ---模块名,该模块名必须与开发的存放于"/usr/lib64/ganglia/python_modules"指定的路径下的python脚本名称一致
language = "python" ---声明使用python语言
#参数列表,所有的参数作为一个dict(即map)传给python脚本的metric_init(params)函数。
param server_status {
value = "/apps/mongo/bin/mongo --host 10.25.161.15 --port 27017 --quiet --eval 'printjson(db.serverStatus())'"
}
param rs_status {
value = "/apps/mongo/bin/mongo --host 10.25.161.15 --port 27017 --quiet --eval 'printjson(rs.status())'"
}
}
}
13、重启gmetad gmond服务
#service gmetad restart
#service gmond restart
即可在web界面中看到mongodb的监控项:
注:如果仍然无法看到mongodb监控项,则可能是上述红色字体部分没有配置正确,请仔细检查
选择上述步骤后,就可以看到mongo监控项了:
参考网址:http://www.cnblogs.com/admln/p/ganglia-install-yum.html
http://blog.csdn.net/silent_strings/article/details/50879870
http://www.cnblogs.com/jaredyang/p/3573377.html
最后
以上就是平淡夕阳为你收集整理的监控系统---使用Ganglia监控MongoDB的全部内容,希望文章能够帮你解决监控系统---使用Ganglia监控MongoDB所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复