概述
简介
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点,Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用
工作原理
gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中,由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端,gmond带来的系统负载非常少,这使得它成为在集群中各台机器中只运行一段代码,并不会影响用户性能,但是当大量小消息同时出现时,会发生网络 “抖动”影响节点性能,可以通过使节点时钟保持一致,来避免这个问题
前期准备
准备三台Centos7虚拟机,配置IP地址和hostname,同步系统时间,关闭防火墙和selinux,修改IP地址和hostname映射
ip | hostname |
---|---|
192.168.29.147 | monitor |
192.168.29.134 | node |
从官网下载confuse-2.7.tar.gz、ganglia-3.7.2.tar.gz、ganglia-web-3.7.2.tar.gz源码包
安装epel源
[root@monitor ~]# yum install epel-release -y
[root@node ~]# yum install epel-release -y
安装基础包
[root@monitor ~]# yum install wget lrzsz vim lynx lsof unzip -y
[root@node ~]# yum install wget lrzsz vim lynx lsof unzip -y
安装依赖
[root@monitor ~]# yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc gcc-c++ expat-devel python-devel libXrender-devel libart_lgpl-devel pcre-devel libtool rrdtool rrdtool-devel
[root@node ~]# yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc gcc-c++ expat-devel python-devel libXrender-devel libart_lgpl-devel pcre-devel libtool rrdtool rrdtool-devel
部署基础服务
[root@monitor ~]# yum install httpd httpd-devel php rsync -y
部署ganglia监控本机
安装confuse
[root@monitor ~]# tar -zvxf confuse-2.7.tar.gz
[root@monitor ~]# cd confuse-2.7
[root@monitor ~]# ./configure --prefix=/usr/local/ganglia-tools/confuse CFLAGS=-fPIC --disable-nls --libdir=/usr/local/ganglia-tools/confuse/lib64
[root@monitor ~]# make && make install
安装ganglia
[root@monitor ~]# tar zxf ganglia-3.7.2.tar.gz
[root@monitor ~]# cd ganglia-3.7.2
[root@monitor ~]# ./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status --with-gmetad --with-libconfuse=/usr/local/ganglia-tools/confuse
[root@monitor ~]# make && make install
[root@monitor ~]# mkdir -p /usr/local/ganglia/var/run
修改配置文件
[root@monitor ~]# vi /usr/local/ganglia/etc/gmetad.conf
data_source "my cluster" 192.168.29.147:8649
安装可视化界面
[root@monitor ~]# tar -zxvf ganglia-web-3.7.2.tar.gz
[root@monitor ~]# mv ganglia-web-3.7.2 /var/www/html/ganglia
[root@monitor ~]# cd /var/www/html/ganglia/
[root@monitor ~]# useradd -M -s /sbin/nologin www-data
[root@monitor ~]# make install
[root@monitor ~]# chown apache:apache -R /var/lib/ganglia-web/
[root@monitor ~]# mkdir /var/lib/ganglia/rrds -p
[root@monitor ~]# chown -R nobody:nobody /var/lib/ganglia/rrds
启动服务
[root@monitor ~]# systemctl start httpd.service
[root@monitor ~]# systemctl start gmetad.service
[root@monitor ~]# systemctl start gmond.service
[root@monitor ~]# netstat -tnlp |grep gmetad
tcp 0 0 0.0.0.0:8651 0.0.0.0:* LISTEN 16874/gmetad
tcp 0 0 0.0.0.0:8652 0.0.0.0:* LISTEN 16874/gmetad
[root@monitor ~]# netstat -tnlp |grep gmond
tcp 0 0 0.0.0.0:8649 0.0.0.0:* LISTEN 17217/gmond
访问http://192.168.29.147/ganglia
部署监控node
node结点安装confuse
[root@node ~]# tar -zxvf confuse-2.7.tar.gz
[root@node ~]# cd confuse-2.7/
[root@node ~]# ./configure --prefix=/usr/local/ganglia-tools/confuse CFLAGS=-fPIC --disable-nls --libdir=/usr/local/ganglia-tools/confuse/lib64
[root@node ~]# make && make install
node结点安装ganglia
[root@node ~]# tar -zxvf ganglia-3.7.2.tar.gz
[root@node ~]# cd ganglia-3.7.2/
[root@node ~]# ./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status --with-libconfuse=/usr/local/ganglia-tools/confuse
[root@node ~]# make && make install
[root@node ~]# mkdir -p /usr/local/ganglia/var/run
#启动服务
[root@node ~]#systemctl start gmond.service
[root@node ~]# netstat -tnlp |grep 8649
tcp 0 0 0.0.0.0:8649 0.0.0.0:* LISTEN 14797/gmond
修改monitor配置文件
[root@monitor ~]# vi /usr/local/ganglia/etc/gmetad.conf
data_source "my cluster" 192.168.29.147:8649 192.168.29.134:8649
重启服务
[root@monitor ~]# systemctl restart gmetad.service
访问http://192.168.29.147/ganglia
扩展监控项nginx
开源扩展监控脚本可从https://github.com/ganglia/gmond_python_modules获取
部署nginx服务
[root@monitor ~]# yum install nginx -y
#修改配置文件
[root@monitor ~]# vi /etc/nginx/conf.d/default.conf
server {
listen 8000;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /nginx_status {
stub_status on;
access_log off;
allow all;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#启动服务
[root@monitor ~]# systemctl start nginx
编写监控配置文件
[root@monitor ~]# mv /gmond_python_modules-master/nginx_status/conf.d/nginx_status.pyconf /usr/local/ganglia/etc/conf.d/
[root@monitor ~]# /usr/local/ganglia/etc/conf.d/nginx_status.pyconf
modules {
module {
name = 'nginx_status'
language = 'python'
param status_url {
value = 'http://192.168.29.147:8000/nginx_status'
}
param nginx_bin {
value = '/usr/sbin/nginx'
}
param refresh_rate {
value = '15'
}
}
}
部署监控收集文件和绘图文件
[root@monitor ~]# mkdir /usr/local/ganglia/lib64/ganglia/python_modules
[root@monitor ~]# mv /gmond_python_modules-master/nginx_status/python_modules/nginx_status.py /usr/local/ganglia/lib64/ganglia/python_modules/
[root@monitor ~]# mv /gmond_python_modules-master/nginx_status/graph.d/* /usr/share/ganglia-webfrontend/graph.d/
重启服务
[root@monitor ~]# systemctl restart gmetad.service gmond.service
查看图像
最后
以上就是有魅力衬衫为你收集整理的Centos7部署ganglia监控的全部内容,希望文章能够帮你解决Centos7部署ganglia监控所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复