<ganglia+nagios>rhel6.5
由于linux下的office和win下有所区别,我只能把linux下的.dot文件打包成pdf,粘贴发送标出来,但有些图片还是没办法发表,要是有朋友感兴趣的话,可加我qq 215687833具体的文档可供参考,皆来自本人整理,扯犊子的请绕行。
ganglia 是分布式的监控系统,有两个 Daemon, 分别是:客户端 Ganglia Monitoring
Daemon (gmond)和服务端 Ganglia Meta Daemon (gmetad),还有 Ganglia PHP Web
Frontend(基于 web 的动态访问方式)组成
是一个 Linux 下图形化监控系统运行性能的软件,界面美观、丰富,功能强大
http://ganglia.sourceforge.net/ 软件下载
环境:RHEL6 x8664 disable selinux and iptables
2 台主机的解析分别为
192.168.2.79 node2.example.com
192.168.2.81 node3.example.com
ganglia 多播的配置。
配置在 192.168.2.79 node2.example.com
下载软件包:
ganglia3.6.0.tar.gz
gangliaweb3.5.10.tar.gz
libconfuse2.63.el6.x86_64.rpm
libconfusedevel2.63.el6.x86_64.rpm
rrdtooldevel1.3.86.el6.x86_64.rpm
yum install y rpmbuild 将 tar 包打压成 rpm 包。
[root@node2 ~]# rpmbuild tb ganglia3.6.0.tar.gz 打压的过程中所需要的依赖包。
error: Failed build dependencies:
libart_lgpldevel is needed by ganglia3.6.01.x86_64
gccc++ is needed by ganglia3.6.01.x86_64
pythondevel is needed by ganglia3.6.01.x86_64
libconfusedevel is needed by ganglia3.6.01.x86_64
pcredevel is needed by ganglia3.6.01.x86_64
expatdevel is needed by ganglia3.6.01.x86_64
rrdtooldevel is needed by ganglia3.6.01.x86_64
aprdevel > 1 is needed by ganglia3.6.01.x86_64
安装依赖关系。
# yum install y libart_lgpldevel gccc++ pythondevel pcredevel expatdevel rrdtooldevel aprdevel
安装完成后再次打压。
[root@node2 ~]# rpmbuild tb ganglia3.6.0.tar.gz
error: Failed build dependencies:
libconfusedevel is needed by ganglia3.6.01.x86_64
rrdtooldevel is needed by ganglia3.6.01.x86_64
发现还需要依赖关系,安装以下依赖包。
[root@node2 ~]# yum localinstall libconfusedevel2.63.el6.x86_64.rpm rrdtooldevel1.3.8
6.el6.x86_64.rpm
发现安装 上面 2 个包,又产生一个依赖包,还需要安装依赖 包。
[root@node2 ~]# yum localinstall libconfusedevel2.63.el6.x86_64.rpm rrdtooldevel1.3.8
6.el6.x86_64.rpm libconfuse2.63.el6.x86_64.rpm
再次将 tar 包打压成 rpm 包,ok
[root@node2 ~]# rpmbuild tb ganglia3.6.0.tar.gz
将 tarweb tar 包也打压成 rpm 包。
[root@node2 ~]# rpmbuild tb gangliaweb3.5.10.tar.gz
切换到下面的目录,ganglia 打压的 包放在这下面。
/root/rpmbuild/RPMS/x86_64
[root@node2 x86_64]# ls
gangliadevel3.6.01.x86_64.rpm
gangliagmetad3.6.01.x86_64.rpm
gangliagmond3.6.01.x86_64.rpm
gangliagmondmodulespython3.6.01.x86_64.rpm
libganglia3.6.01.x86_64.rpm
[root@node2 x86_64]# rpm ivh *
Preparing... ########################################### [100%]
1:libganglia ########################################### [ 20%]
2:gangliagmond ########################################### [ 40%]
3:gangliagmondmodulesp########################################### [ 60%]
4:gangliadevel ########################################### [ 80%]
5:gangliagmetad ########################################### [100%]
/root/rpmbuild/RPMS/noarch gangliaweb 打压的包放在这下面。
[root@node2 noarch]# yum localinstall gangliaweb3.5.101.noarch.rpm y
ganglia 的主配置文件都放在/etc/ganglia 目录下。
[root@node2 ganglia]# vim gmetad.conf 修改服务的配置文件。
data_source "my cluster" localhost 改个组名为 my cluster
[root@node2 ganglia]# vim gmond.conf
cluster {
name = "my cluster"
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
启动 ganglia 的服务端/客户端:
/etc/init.d/gmond start
/etc/init.d/gmetad start
在浏览器中输入: http://192.168.2.79/ganglia/
这下面放的是通过广播监控到的 ganglia 服务的信息。
/var/lib/ganglia/rrds/my cluster
[root@node2 my cluster]# ls
192.168.2.125 192.168.2.138 192.168.2.56 node2.example.com
192.168.2.133 192.168.2.207 192.168.2.71 __SummaryInfo__
192.168.2.134 192.168.2.220 192.168.2.85
下面配置另一台主机的 ganglia 客户端服务。
首先切换到当下目录,将 ganglia 包拷贝到远程主机。
/root/rpmbuild/RPMS/x86_64
scp gangliagmond* libganglia3.6.01.x86_64.rpm 192.168.2.81:/root/ 顺便也把 libconfuse2.6
3.el6.x86_64.rpm 也拷贝过去,会用到依赖关系。
安装客户端的软件包。
配置在 192.168.2.81 node3.example.com
[root@node3 ~]# yum localinstall gangliagmond* libganglia3.6.01.x86_64.rpm libconfuse2.6
3.el6.x86_64.rpm
一样 ganglia 的主配置文件也放在/etc/ganglia 目录下。
[root@node3 ganglia]# vim gmond.conf 编辑客户端的配置文件。
cluster {
name = "my cluster"
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
要是有多台客户端的主机,组一样都使用
cluster {
name = "my cluster"
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
重启服务:
# /etc/init.d/gmond start
在主配置的/var/lib/ganglia/rrds 目录下可以看到 ganglia 所监控到的主机信息。
单播 ganglia 的配置:
配置在 192.168.2.79 这台主机上。
单播的原理就是各自监控各自的,大家的组/端口都不一样,每个人起得组名字,端口都不一样。
首先把上面的 ganglia 服务给停了。
[root@node2 ganglia]# vim gmetad.conf 编辑服务端的配置
组名我改为 linux007 监控的主机为 192.168.2.79 和 192.168.2.81 端口为 8007
data_source "linux007" 192.168.2.79:8007 192.168.2.81:8007
[root@node2 ganglia]# vim gmond.conf 客户端主要修改以下几行
send_metadata_interval = 30 /*secs */ 发送的更新为 30 秒
cluster {
name = "linux007" 客户端的组名也为 linux007
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
mcast_join = 239.2.11.71
port = 8007
ttl = 1
udp_recv_channel {
mcast_join = 239.2.11.71
port = 8007 端口也为 8007
bind = 239.2.11.71
retry_bind = true
tcp_accept_channel {
port = 8007 tcp 的端口为 8007
# If you want to gzip XML output
gzip_output = no
}
重启服务:
/etc/init.d/gmond restart
/etc/init.d/gmetad restart
另一台客户端的配置;
192.168.2.81 node3 这台主机:
[root@node3 ganglia]# vim gmond.conf 客户端的配置文件修改以下几行。
send_metadata_interval = 30 /*secs */
cluster {
name = "linux007"
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
mcast_join = 239.2.11.71
port = 8007
ttl = 1
udp_recv_channel {
mcast_join = 239.2.11.71
port = 8007
bind = 239.2.11.71
retry_bind = true
tcp_accept_channel {
port = 8007
# If you want to gzip XML output
gzip_output = no
}
重启服务:
# /etc/init.d/gmond restart
在服务端的/var/lib/ganglia/rrds/linux007 目录下,会看到一下文件或目录。
node2.example.com node3.example.com __SummaryInfo__
在浏览器中会看到:linux007 的信息
[root@node2 contrib]# cp check_ganglia.py /usr/local/nagios/libexec/
[root@node2 contrib]# cd /usr/local/nagios/libexec/
[root@node2 libexec]# ./check_ganglia.py
Usage: check_ganglia h|host= m|metric= w|warning= c|critical= [s|server=] [p|port=]
h 可以写主机名,也可以写 ip,这怎么写,你在/var/lib/ganglia/rrds/linux007/看到的信息是一样
的。
[root@node2 libexec]# vim check_ganglia.py
ganglia_port = 8007
这下面的明显是不对的,我们写的是 20%警告,10%危险,先面的输出是危险,磁盘剩余空间
83.04,很明显是不对的。
[root@node2 libexec]# ./check_ganglia.py h node3.example.com m disk_free_percent_rootfs w 20
c 10
CHECKGANGLIA CRITICAL: disk_free_percent_rootfs is 83.04
修改脚本 check_ganglia.py,使其符合我们的要求输出。
[root@node2 libexec]# vim check_ganglia.py
if critical > warning:
if value >= critical:
print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)
sys.exit(2)
elif value >= warning:
print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)
sys.exit(1)
else:
print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)
sys.exit(0)
else:
if critical >= value:
print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)
sys.exit(2)
elif warning >= value:
print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)
sys.exit(1)
else:
print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)
sys.exit(0)
再次输出发现完全符合要求:
[root@node2 libexec]# ./check_ganglia.py h node3.example.com m disk_free_percent_rootfs w 20
c 10
CHECKGANGLIA OK: disk_free_percent_rootfs is 83.04
ganglia 擅长监控多台服务,nagios 擅长警告,现在把他们结合起来。
首先 nagios 没有 ganglia 的命令,我们添加 nagios 命令。
# cd /usr/local/nagios/etc/objects/
[root@node2 objects]# vim commands.cfg 要是上面的验证是 ip 则 HOSTADDRESS,我是域
名则
define command{
command_name check_ganglia
command_line $USER1$/check_ganglia.py h $HOSTNAME$ m $ARG1$ w $ARG2$ c
$ARG3$
}
[root@node2 objects]# vim templates.cfg
define service {
use genericservice
name gangliaservice
hostgroup_name gangliaservers
service_groups gangliametrics
register 0
}
[root@node2 objects]# vim hosts.cfg
define hostgroup {
hostgroup_name gangliaservers
alias gangliaservers
members node3.example.com
}
[root@node2 objects]# vim services.cfg
define servicegroup {
servicegroup_name gangliametrics
alias Ganglia Metrics
}
define service {
use gangliaservice
service_description 根分区
check_command check_ganglia!disk_free_percent_rootfs!20!10
}
define service {
use gangliaservice
service_description 系统负载
check_command check_ganglia!load_one!4!5
}
重启服务后校验语发是否错误:
[root@node2 etc]# /usr/local/nagios/bin/nagios v /usr/local/nagios/etc/nagios.cfg
校验成后重启服务:
# /etc/init.d/nagios restart
在浏览器输入 http://192.168.2.79/nagios/ 点击 servers 会看到下面:
下面额外的添加一台客户端 node4 192.168.2.82,为其添加服务主机,使用 ganglia+nagios 监控:
scp gangliagmond* libconfuse2.63.el6.x86_64.rpm libganglia3.6.01.x86_64.rpm
192.168.2.82:/root/
安装这些软件包:
rpm ivh *
把客户端的配置文件也给 node4 拷贝一份。
# scp gmond.conf 192.168.2.82:/etc/ganglia/
# /etc/init.d/gmond restart
在 node2 也就是服务端的/var/lib/ganglia/rrds/linux007 的目录下回收到 node4 这台主机的信息.
192.168.2.82 node2.example.com node3.example.com __SummaryInfo__
切换到 node2 这台主机,也就是 ganglia 和 nagios 这台主机的目录下。
/usr/local/nagios/etc/objects
[root@node2 objects]# vim hosts.cfg 额外添加的主机只需以,隔开;添加主机名
define host{
use linuxserver
host_name node4.example.com
alias node4
address 192.168.2.82
}
define hostgroup {
hostgroup_name gangliaservers
alias gangliaservers
members node3.example.com,node4.example.com
}
[root@node2 objects]# vim services.cfg 额外添加的服务,所有的主机都可以收到。
define service {
use gangliaservice
service_description 内存空间
check_command check_ganglia!mem_free!100!50
}
重启服务:
# /etc/init.d/gmond restart
# /etc/init.d/gmetad restart
# /etc/init.d/nagios restart
在浏览器中输入:http://192.168.2.79/nagios/ 得到下图:
<ganglia+nagios>rhel6.5的更多相关文章
- 《Openstack的搭建》RHEL6.5
Openstack就是搭建一个较为完整的虚拟化平台,把一个完整的物理机划分成若干个虚拟机来跑,从而实现资源的充分利用. Openstack对硬件的要求很高,要是你的物理机内存是4G的话,虚拟机的内存给 ...
- openstack自动化搭建脚本
Openstack平台部署+节点扩容 1)搭建脚本 #!/bin/bash #openstack私有云平台部署 #脚本使用前提:三台虚拟机openstack(ip地址:.11至少4G内存,100G硬盘 ...
- OpenStack上搭建Q版的公共环境准备(step1)
vmware14 centos7.5minimal版 controller1节点虚拟硬件配置: CPU:1颗2核 Memory:2G 硬盘:20G 网卡: VMnet1(仅主机模式):关闭DHCP,手 ...
- openstack环境搭建常用命令
1,编辑/etc/selinux/config文件,关闭selinux SELINUX=disabled 2,清空iptables规则并保存 # iptables -F # service iptab ...
- openstack 环境搭建
python单步调试配置(eclipse+pydev+keystone-2014.1.b2),catch捕获异常的时候eclipse里面也会中断的:建议搞个全新的eclipse解压缩副本,专门调试op ...
- neutron源码分析(一)OpenStack环境搭建
一.OpenStack安装 安装一个初始化的Mitaka版本的OpenStack环境用于分析,neutron源码 序号 角色 IP地址 版本 1 controller 172.16.15.161 mi ...
- OpenStack环境搭建
实验环境 CentOS-7-x86_64-Minimal-1708.iso openstack_N.tar.gz 创建虚拟机 controller部署 computer网络配置 OpenStack环境 ...
- 云计算OpenStack环境搭建(4)
准备工作: 准备3台机器,确保yum源是可用的,分别为控制节点(192.168.11.3).计算节点(192.168.11.4)和存储节点(192.168.11.5) 控制节点:OpenStack日常 ...
- 搭建Openstack云平台
实验室需要做一个大数据平台项目,临时接下需要部署实验室云平台的任务,由于之前没有接触过相关技术,仅以此篇作为纪录文,记录一下我的openstack的初步学习以及搭建过程. 1.openstcak及其组 ...
- 执行openstack命令报错【You must provide a username via either -...】
openstack环境搭建好后,openstack的服务都启动了,当执行openstack命令时如nova service list报如下错误 You must provide a username ...
随机推荐
- MySQL(介绍1)
数据库(Database)是按照数据结构来组织.存储和管理数据的仓库: 也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢. 在WEB应用方面MySQL是最好的RDBMS(Relational ...
- JavaScript之使用JavaScript模仿oop编程
第一, 首先,使用关键字function定义一个类 function Shape1(ax,ay) {//此时将function看成声明类的标志 ; ; var init=function () {// ...
- LAMP 2.0Apache日志切割
每次访问网站就会产生若干条日志,当然前提是已经配置了日志. 配置日志的文件在 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 把注释掉的这两行打 ...
- Matlab2012a下配置LibSVM—3.18
1.下载最新版LibSVM 点击此处打开网页,点击zip file下载最新版的文件并解压放在任何目录下,建议放在安装目录便于查找.如我的文件解压在路径C:\ProgramFiles\MATLAB\R2 ...
- 从Github远程库安装Node.JS
3)从Github远程库安装Node.JS在这个方法中我们需要一些步骤来把Node.js的从Github上的远程的仓库克隆到本地仓库目录 在开始克隆(克隆)包到本地并且配制之前,我们要先安装以下依赖包 ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- 阶段3-团队合作\项目-网络安全传输系统\sprint3-账号管理子系统设计\第2课-账号管理子系统设计
账号管理子系统的设计 客户端需要登录到服务器,在服务器去查询数据库,进行验证该用户. 打开client.c文件 编译之 把它复制到开发板里面去 这个程序是在本地数据库测试的!!!!!!!!!!!!!! ...
- MD5Init-MD5Update-MD5Final
MD5Init是一个初始化函数,初始化核心变量,装入标准的幻数 MD5Update是MD5的主计算过程,inbuf是要变换的字节串,inputlen是长度,这个函数由getMD5ofStr调用,调用之 ...
- angular使用base64的encode和decode
var app = angular.module("encodeDecode", []); app.controller("encodeDecodeCtrl", ...
- Citrix 未注册解决办法
Citrix 经常出现未注册的问题 是因为DNS的解析 问题 ping DDC 的全名你会发现ping 不通 解决方案如下 首先 在 192.168.1.145(图站)上饭解析一下DDC(控制中心19 ...