|
|
Ganglia由gmond、gmetad和gweb三部分组成
' r% I, u4 K0 Y ?: {2 T, Y7 i( V& q$ y1 s- }
gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。+ M+ r% E: |6 P. m
$ f: h+ j+ _4 Z* W$ ]- R0 w6 P
gmetad(Ganglia Meta Daemon)是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。
/ p. f8 T% b1 U" b0 E' e g% p5 |" b5 P
gweb(Ganglia Web)gweb是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。
0 L, X# D$ b8 V( c' D+ M
* k6 z9 a6 O1 _! V
- C% q b1 v R& `- J3 y准备环境- f' q+ t4 l; ]1 N" _+ V
# lsb_release -a
. H+ _8 }8 I* J/ Z LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
$ S. m- {8 E6 p6 [1 t' Z Distributor ID: CentOS: |1 V3 y6 Z0 J( y. R7 @' \
Description: CentOS release 6.5 (Final)5 Q+ j1 |7 e! j9 [0 G3 w
Release: 6.5: J1 k8 E4 l% W0 v0 P' j
Codename: Final
1 N, |( y( |4 n; m
, Y9 u9 K+ F/ {! W. jS1、安装gmond$ M# U8 V2 \; m6 n0 j
在本地软件库中搜索gmond安装包: S2 ~2 H2 o' }, f- P! M/ u7 X0 J
[root@stonex ~]# yum search ganglia-gmond
+ A; ]( s6 W; |. |- A Loaded plugins: fastestmirror
) B- D+ e$ |/ z6 p9 S& e Loading mirror speeds from cached hostfile
! R: \. V* q5 ^$ A * base: centos.ustc.edu.cn
, ~+ |; f+ b" P" t6 I9 \ * extras: centos.ustc.edu.cn
' j, b9 k1 F3 L; j/ X/ @ * updates: centos.ustc.edu.cn. P8 g( e! b$ l0 V h
Warning: No matches found for: ganglia-gmond
# x2 F5 S' H7 b' f, \ G* F No Matches found$ G. ?6 k" P0 G1 R. q x
) J8 I3 A, j \
显示搜索失败,可能是当前RPM发行版中没有Ganglia安装包。: P+ f1 o" [" ]8 I4 `* d$ e1 ~
; Y [: r. Y! B+ v6 x [root@stonex ~]# rpm -Uvh \
. a8 q6 b' b2 O* T > http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm6 ^: ~ C. @0 E% e5 h7 U# O: p% ~
Retrieving http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm
/ s5 r( k6 q1 B' h, ]% ] warning: /var/tmp/rpm-tmp.L2dC50: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
& s& Q: R7 P& [1 _" \- t9 m Preparing... ########################################### [100%]$ L- g& r0 h5 a1 U; s& Z
1:epel-release ########################################### [100%]
8 D9 s$ s! j7 h: R0 M. I [root@stonex ~]#: U5 j0 I6 f( s* v/ I
( Y, W+ M; o: Q, }" M8 ]
再搜索(首次执行会下载epel/primary_db)9 L1 u4 O) s% ]9 d
[root@stonex ~]# yum search ganglia-gmond
1 B/ Q* h- d' f2 a3 T Loaded plugins: fastestmirror
* t& P g, W9 ~" Z4 O1 O9 Q y- } Loading mirror speeds from cached hostfile9 H% }2 {8 {! N8 F. J% j
省略了一些行......
# n/ D. _' U2 s ganglia-gmond.x86_64 : Ganglia Monitoring daemon
. l# L; z4 k: v4 D5 ~0 z& S ganglia-gmond-python.x86_64 : Ganglia Monitor daemon python DSO and metric modules' P% z/ A# M$ I# u% ?5 x
省略了一些行......
F# K, m- z' {1 A6 ?" c- B, c# g [root@stonex ~]# ) _, S/ O- C$ f0 S( W0 K$ b! O
e8 p+ M" S. K5 {9 n( b6 s
安装 q& a+ G8 z5 a1 ?. a
[root@stonex ~]# yum install ganglia-gmond -y2 @, y; r/ A/ B& k3 a
yum安装会自动解决头疼的依赖包问题
1 W# S- W- v9 d. X + y+ x& I' {' {) q2 {/ o( d
S2、安装gmetad9 B" K# L' p6 m/ p g/ }+ o& ~1 A
和gmond安装中介绍的相同,如果本地软件库不提供gmetad,那么需要安装EPEL。; @. [8 t/ n% b5 U8 @7 f
[root@stonex ~]# yum install ganglia-gmetad -y! L& Y$ X6 L1 W( f& {
会发现安装了以下依赖包:/ @1 Q3 `* M2 A0 l, v- Z% o% s
Dependency Installed:" x3 M4 E: @4 r4 L( Z5 O( j
dejavu-fonts-common.noarch 0:2.30-2.el6 dejavu-lgc-sans-mono-fonts.noarch 0:2.30-2.el6 dejavu-sans-mono-fonts.noarch 0:2.30-2.el6 fontpackages-filesystem.noarch 0:1.41-1.1.el6 rrdtool.x86_64 0:1.3.8-6.el6+ |. D/ t4 B @, z$ g8 S! q8 j+ M
2 G& t k+ _+ o3 |S3、安装gweb+ {/ P' f( ^- k r
Wiki:http://sourceforge.net/apps/trac ... -web-2#Installation
- u; S' }5 D \2 i+ P$ h$ W' _2 }
% t. j; D+ J7 b( Z) A3 z6 x, N7 d: q' B
在进行gweb的安装和配置前,请先检查是否已经
* R$ r# Z3 K9 X+ D 满足下面需求:, [) A+ S4 c. B. ^0 P2 f
Apache Web Server7 C3 f$ j1 `& Z- E
PHP 5.2及更新版本
. l0 m* U1 e% k8 P8 e/ S PHP JSON 扩展的安装和启用
+ J9 `& d- T1 W1 C' O/ k8 u
0 j! {5 x% r( S% k4 ~5 H4 F v) S 首先安装Apache和PHP 58 y4 Z) _8 y! m6 q: ]' i
[root@stonex ~]# yum install httpd php
9 I8 y7 R9 g8 C+ f, K, W8 @ 会发现安装了以下依赖包:
- |2 n( x; |; F' z# g Dependency Installed:
: |& R" t& f4 u1 ]; V. O apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 httpd-tools.x86_64 0:2.2.15-29.el6.centos mailcap.noarch 0:2.1.31-2.el6 php-cli.x86_64 0:5.3.3-27.el6_5 php-common.x86_64 0:5.3.3-27.el6_5
) O2 A# I4 V9 _6 X' j# w; a" V( R + E. D0 q! w/ S* U% P1 r5 [
需要启用PHP的JSON扩展,JSON已经包含在PHP 5.2及更新版本中。; I! L' ^" v: E2 l. ]# u1 l
通过检查/etc/php.d/json.ini文件来检查JSON扩展的状态,如果已经启用JSON扩展,在该文件中应该包含类似下面语句的内容:) U: B1 K" s6 {9 c3 w. ~$ ~
extension=json.ini
]& z* s: S+ d! U& v; Z: \% ?% n
; P6 M; w% Y1 ^; H 下载最新版本的gweb(https://sourceforge.net/projects/ganglia/files/gweb/), X& a: @. l* N; }, f' \) g! W1 j3 _$ P
本示例当前最新版本为3.5.12& h h7 x: u& Q0 _% E5 F- Q9 j
[root@stonex ~]# wget http://ncu.dl.sourceforge.net/pr ... a-web-3.5.12.tar.gz) h. n# m R1 L' a, p
[root@stonex down]# tar -zxvf ganglia-web-3.5.12.tar.gz
! H8 O8 k3 E, t6 [/ q2 ` [root@stonex down]# cd ganglia-web-3.5.12
( k4 o. X$ l# U, i
8 Z4 \1 B, f6 G4 t7 e% x) p 编译Makefile6 T' Z( }8 J$ }& t6 y0 G
[root@stonex ganglia-web-3.5.12]# vim Makefile
4 z7 |+ ]; w2 c, T4 ?$ Q% L 可以查看一些用户默认配置:! p. e% A; H- ?" i
##########################################################
0 s( ^: p; ~7 v3 E9 d # User configurables:9 @: o( m5 s2 q
##########################################################
* b7 z9 ^: y2 H* h1 X # Location where gweb should be installed to (excluding conf, dwoo dirs).
& T" b5 a9 m/ w/ e' p6 V! S GDESTDIR = /usr/share/ganglia-webfrontend+ V% o L6 K) S/ \/ \' a, r7 U Z
& U$ y3 f/ @0 [7 ~
; b" Q8 A$ e1 X7 `$ N1 {3 j' z # Location where default apache configuration should be installed to.3 r' }; J* l2 {8 A) @2 c0 o
GCONFDIR = /etc/ganglia-web
; M$ W, Z1 x$ T. w: o( z* K4 w1 ~! _& [
8 A4 _8 m! H! I f
# Gweb statedir (where conf dir and Dwoo templates dir are stored)3 W) N0 } c4 t
GWEB_STATEDIR = /var/lib/ganglia-web
! M- [9 L, |/ |# ~4 L. A/ @
# o$ @( ^% @* J2 o2 P z$ ]' i) s- Y) x" E' c9 a& q4 j( p
# Gmetad rootdir (parent location of rrd folder)' h! M" h- j4 p9 O/ e) {: c
GMETAD_ROOTDIR = /var/lib/ganglia
3 J1 z" {$ J3 ^, @6 {( `4 l7 ?. t
4 w9 t6 o) e& ?
5 W$ u# P& p; |8 j APACHE_USER = www-data
3 H8 K0 Y3 X t- k+ }* ?. L ##########################################################3 R8 P$ D7 W8 Q) D, V* B
k1 Z c0 K1 Z9 o8 B3 {: ^ ` 修改默认配置:# r% S0 v6 r s$ r, x% z
GDESTDIR = /var/www/html/ganglia2
2 A4 j% y9 K) O& I: f* _ APACHE_USER = apache
: C2 f& D/ I* H0 i 注意:GDESTDIR 和 APACHE_USER 要与APACHE的配置文件(/etc/httpd/conf/httpd.conf)中的 DocumentRoot 、 apache保持一致! Q* N3 A5 j. d8 p' w
$ k: _8 O. u- K/ `
make install
( \, \' h* S1 N% p7 S" T: B* L- ~) `7 M' W4 T
$ J/ a% L3 e# S6 L2 z- B+ E- dS4、状态检查
V5 j4 m1 d" @3 J% |! V/ \! z 检查httpd是否启动:
9 t+ H/ S1 \$ W [root@stonex ~]# service httpd status( i2 l2 c0 m' J. {. t
启动httpd:3 C0 u- v( t; q
[root@stonex ~]# service httpd start
. p& a) ~ k' K1 b) b# R
9 E- Y4 |+ X5 O2 z- H- x, p 检查gmetad是否启动:7 k7 a) B' _) [- n# g
[root@stonex ~]# service gmetad status
4 f% O( B+ } w5 N* x 启动gmetad:
$ ]$ I D" [+ g5 q [root@stonex ~]# service gmetad start1 }& Q V/ J0 l
. e' I& t( Z! M2 W0 A# w' Y; Q* Y 检查本地gmond是否启动:, r7 w3 @. q$ L+ R. s3 n
[root@stonex ~]# service gmond status
3 c7 ] ^1 ]% s3 |& m3 }: p9 X- L5 U 启动gmond:5 L7 Q6 |- i8 f. r( D
[root@stonex ~]# service gmond start
1 v0 ]* \' h9 Q ' ` a8 m: ~1 T, s$ N- [0 p
S5、关闭SELinux
" A) H$ ] T: F t7 D- x4 Q 如果你跳过这一步,打开http://<server ip address>/ganglia2会出现以下异常:
4 I: W4 z. N: y* h/ S# ]& q# e There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied
& x, V* \6 ], G+ |& A + Q9 O! }, T: u8 e* t7 K: P3 H
SELinux是什么?4 j1 i& j* o' D. l% `0 V' c9 Y
http://wiki.centos.org/zh/HowTos/SELinux
0 ]$ ]+ D! f1 O- `
L9 K* D2 x0 s( _7 N! W0 G: N 查看SELinux状态:
, }8 R; w, a! o9 C3 p. _8 k7 x [root@stonex ~]# sestatus
: v E8 \2 P! `! w% i SELinux status: enabled3 V l! d/ D! h( @ \3 e( }
SELinuxfs mount: /selinux
. ~0 v7 @0 ^# Y$ z& i: m8 K Current mode: permissive
0 `9 R' M+ C5 Q' Q6 w) O& R% ^ Mode from config file: enforcing
' b9 l+ W- y1 _ Policy version: 24' v9 u& e+ U& b2 \0 E
Policy from config file: targeted
& |4 s$ t* \/ J, Z
0 E( m& U+ S8 ~! g 关闭SELinux:
( r _8 u9 H& Z [root@stonex ~]# setenforce 0
8 q' ]& d h7 e3 ^7 Q) O setenforce 这个指令可以即时切换 Enforcing 及 Permissive 这两个模式,但这些改动在系统重新开机时不会被保留。# j$ g- d& e/ Y# \/ D# p
要想在下次开机后生效,需要在 /etc/selinux/config 内修改 SELINUX= 这一行为 enforcing。* `5 u: U3 V' N2 e: b
& k' Y7 z0 M9 R1 m9 l" \+ g
S6、访问Ganglia监控平台
4 \* `6 X7 j4 q; Z http://<server ip address>/ganglia2/
! R, o) X) I( j( x
( q k! M/ l3 m4 X% x m2 A 目录“/ganglia2”可以在 ganglia-web的Makefile文件中GDESTDIR被修改,修改后需要重新编译+ M o. }* n5 u- _% l0 y9 \( H9 L
|
|